зеркало из https://github.com/mozilla/gecko-dev.git
134 строки
4.6 KiB
Plaintext
134 строки
4.6 KiB
Plaintext
|
$Id: README,v 1.3 2007/11/21 00:09:10 adamcain Exp $
|
||
|
|
||
|
nrappkit 1.0b2
|
||
|
Copyright (C) 2006 Network Resonance, Inc.
|
||
|
|
||
|
|
||
|
nrappkit is a toolkit for building standalone applications and
|
||
|
appliances. It provides:
|
||
|
|
||
|
- registry-based configuration (with change callbacks)
|
||
|
- extensible command and configuration shell
|
||
|
- extensible statistics system
|
||
|
- configurable logging system
|
||
|
- event and timer handling
|
||
|
- generic plugin system
|
||
|
- launcher daemon
|
||
|
|
||
|
The contents of nrappkit were extracted from Network Resonance's
|
||
|
product on the theory that they were generally useful for
|
||
|
application developers.
|
||
|
|
||
|
THIS PACKAGE DOES NOT GRANT A LICENSE OR RIGHT TO ANY OTHER NETWORK
|
||
|
RESONANCE TECHNOLOGY OR SOFTWARE.
|
||
|
|
||
|
|
||
|
|
||
|
BUILDING
|
||
|
|
||
|
Builds are done semi-manually with port directories for each
|
||
|
platform. There are pre-existing ports to FreeBSD, Linux (Ubuntu
|
||
|
and Fedora Core), and Darwin (MacOSX). To build the system:
|
||
|
|
||
|
cd src/make/<platform>
|
||
|
gmake
|
||
|
|
||
|
Some of the platforms come in several variants. Most notably,
|
||
|
if a platform exists in "regular" and "-appliance" variant,
|
||
|
this means that the regular variant just builds binaries intended
|
||
|
to be run out of the make directory (for development) and the
|
||
|
appliance variant is intended to be installed in a real system.
|
||
|
|
||
|
By default we want to install things owned as user "pcecap".
|
||
|
Either make this user or edit the Makefile to be a user you
|
||
|
like (e.g., nobody).
|
||
|
|
||
|
If you want to include the 'nrsh' command-line configuration
|
||
|
tool in your build, you will need to make sure the line
|
||
|
BUILD_NRSH=yes
|
||
|
appears (uncommented-out) in your platform Makefile. You will
|
||
|
also need to to build OpenSSL and libedit and point your nrappkit
|
||
|
Makefile to the correct paths. You can obtain these packages at:
|
||
|
openssl-0.9.7l
|
||
|
http://www.openssl.org/source/openssl-0.9.7l.tar.gz
|
||
|
|
||
|
libedit-20060829-2.9
|
||
|
http://freshmeat.net/redir/editline/53029/url_tgz/libedit-20060829-2.9.tar.gz
|
||
|
|
||
|
|
||
|
INSTALLING
|
||
|
If you're doing an appliance as opposed to a development build,
|
||
|
you'll want to install it. This is easy:
|
||
|
|
||
|
su
|
||
|
gmake install
|
||
|
|
||
|
Most binaries and libraries ends up in /usr/local/pcecap while
|
||
|
data files are in /var/pcecap. However, you can tweak
|
||
|
this in the Makefile. By default it's all owned by pcecap.
|
||
|
|
||
|
To ensure that dynamic libraries are loaded correctly at runtime,
|
||
|
you'd want to make sure the right directory is included in your
|
||
|
LD_LIBRARY_PATH or via ldconfig.
|
||
|
|
||
|
|
||
|
QUICK TOUR
|
||
|
The build makes the following binaries that you may find useful:
|
||
|
|
||
|
- captured -- the launcher (the name is historical)
|
||
|
- registryd -- the registry daemon
|
||
|
- nrregctl -- a registry control program
|
||
|
- nrsh -- the command shell (when included in build)
|
||
|
- nrstatsctl -- the stats control program
|
||
|
|
||
|
Using the nrcapctl script is the easiest way to interact with
|
||
|
the applications. It is run as "nrcapctl <command>" with the
|
||
|
following commands recognized:
|
||
|
|
||
|
startup -- fires up captured, which in turn runs and
|
||
|
initializes the registry
|
||
|
|
||
|
shutdown -- kills captured and its child processes
|
||
|
|
||
|
status -- prints the running status of captured in
|
||
|
human-readable form
|
||
|
|
||
|
stat -- prints the running status of captured in
|
||
|
a form easily parsed by scripts
|
||
|
|
||
|
enable -- alters the mode.txt file so that captured
|
||
|
starts
|
||
|
|
||
|
disable -- alters the mode.txt file so that captured
|
||
|
does not start
|
||
|
|
||
|
clear-statistics -- equivalent to "nrstatsctl -z" (requires
|
||
|
that captured be running)
|
||
|
|
||
|
Note: the "start" and "stop" nrcapctl commands do nothing as they
|
||
|
use components not included in nrappkit. However the associated
|
||
|
script logic in nrcapctl demonstrates how additional applications
|
||
|
might be launched using nrcapctl and particular registry settings.
|
||
|
|
||
|
|
||
|
EXTENDING
|
||
|
When things come up, they're pretty dumb. You'll probably want to
|
||
|
write your own applications, otherwise it's not clear why you're doing
|
||
|
this. The general idea is that you write your application using the
|
||
|
facilities that nrappkit provides and then write plugins to the
|
||
|
nrappkit components as necessary. So, for example, say you want
|
||
|
to write a network daemon. You would:
|
||
|
|
||
|
- configure the launcher to launch your daemon (using the registry,
|
||
|
naturally).
|
||
|
- make calls to the registry to get configuration data
|
||
|
- make calls to the logging system to log data
|
||
|
- implement a stats module to record statistics
|
||
|
- write a plugin to nrsh to let people configure your parameters
|
||
|
|
||
|
Examples of some of this stuff can be found in examples/demo_plugin.
|
||
|
Otherwise, read the source. More documentation will be on the way,
|
||
|
hopefully.
|
||
|
|
||
|
|