diff options
Diffstat (limited to 'rpkid.with_tls/doc/Installation')
-rw-r--r-- | rpkid.with_tls/doc/Installation | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/rpkid.with_tls/doc/Installation b/rpkid.with_tls/doc/Installation new file mode 100644 index 00000000..2e169842 --- /dev/null +++ b/rpkid.with_tls/doc/Installation @@ -0,0 +1,139 @@ +****** Installation Guide ****** + +Installation instructions for rpkid et al. + +These are the production-side RPKI tools, for Internet Registries (RIRs, LIRs, +etc). See the "rcynic" program for relying party tools. + +rpkid is a set of Python modules supporting generation and maintenance of +resource certificates. Most of the code is in the rpkid/rpki/ directory. rpkid +itself is a relatively small program that calls the library modules. There are +several other programs that make use of the same libraries, as well as a +collection of test programs. + +At present the package is intended to be run out of its build directory. +Setting up proper installation in a system area using the Python distutils +package would likely not be very hard but has not yet been done. + +Note that initial development of this code has been on FreeBSD, so installation +will probably be easiest on FreeBSD. + +Before attempting to build the package, you need to install any missing +prerequisites. Note that the Python code requires Python version 2.5 or 2.6. +rpkid et al are mostly self-contained, but do require a small number of +external packages to run. + +* If your Python installation does not already include the sources files needed + to compile new Python extension modules, you will need to install whatever + package does include those source files. The need for and name of this + package varies from system to system. On FreeBSD, the base Python interpreter + package includes the development sources; on at least some Linux + distributions, you have to install a separate "python-devel" package or + something similar. If you get compilation errors trying to build the POW code + (below) and the error message says something about the file "Python.h" being + missing, this is almost certainly your problem. + +* http://codespeak.net/lxml/, a Pythonic interface to the Gnome LibXML2 + libraries. lxml in turn requires the LibXML2 C libraries. + + o FreeBSD: /usr/ports/devel/py-lxml + o Fedora: python-lxml.i386 + o Ubuntu: python-lxml + +* http://sourceforge.net/projects/mysql-python/, the Python "db" interface to + MySQL. MySQLdb in turn requires MySQL client and server. rpkid et al have + been tested with MySQL 5.0 and 5.1. + + o FreeBSD: /usr/ports/databases/py-MySQLdb + o Fedora: MySQL-python.i386 + o Ubuntu: python-mysqldb + +rpkid et al also make heavy use of a modified copy of the Python OpenSSL +Wrappers (POW) package, but this copy has enough modifications and additions +that it's included in the subversion tree. + +The next step is to build the OpenSSL and POW binaries. At present the OpenSSL +code is just a snapshot of the OpenSSL development sources, compiled with +special options to enable RFC 3779 support that ISC wrote under previous +contract to ARIN. The POW (Python OpenSSL Wrapper) library is an extended copy +of the stock POW release. + +To build these, cd to the top-level directory in the distribution, run the +configure script, then run "make": + + $ cd $top + $ ./configure + $ make + +This should automatically build everything, in the right order, including +linking the POW extension module with the OpenSSL library to provide RFC 3779 +support. If you get errors building POW, see the above discussion of Python +development sources. + +The architecture is intended to support hardware signing modules (HSMs), but +the code to support them has not been written. + +At this point, you should have all the necessary software installed to run the +core programs, but you will probably want to test it. The test suite requires a +few more external packages, only one of which is Python code. + +* http://pyyaml.org/. Several of the test programs use PyYAML to parse a YAML + description of a simulated allocation hierarchy to test. + + o FreeBSD: /usr/ports/devel/py-yaml + o Ubuntu: python-yaml + +* http://xmlsoft.org/XSLT/. Some of the test code uses xsltproc, from the Gnome + LibXSLT package. + + o FreeBSD: /usr/ports/textproc/libxslt + o Ubuntu: xsltproc + +All tests should be run from the rpkid/ directories. + +Some of the tests require MySQL databases to store their data. To set up all +the databases that the tests will need, run the SQL commands in rpkid/tests/ +smoketest.setup.sql. The MySQL command line client is usually the easiest way +to do this, eg: + + $ cd $top/rpkid + $ mysql -u root -p <tests/smoketest.setup.sql + +To run the tests, run "make all-tests": + + $ cd $top/rpkid + $ make all-tests + +If nothing explodes, your installation is probably ok. Any Python backtraces in +the output indicate a problem. + +There's a last set of tools that only developers should need, as they're only +used when modifying schemas or regenerating the documentation. These tools are +listed here for completeness. + +* http://www.doxygen.org/. Doxygen in turn pulls in several other tools, + notably Graphviz, pdfLaTeX, and Ghostscript. + + o FreeBSD: /usr/ports/devel/doxygen + o Ubuntu: doxygen + +* http://www.mbayer.de/html2text/. The documentation build process uses + xsltproc and html2text to dump flat text versions of a few critical + documentation pages. + + o FreeBSD: /usr/ports/textproc/html2text + +* http://www.thaiopensource.com/relaxng/trang.html. Trang is used to convert + RelaxNG schemas from the human-readable "compact" form to the XML form that + LibXML2 understands. Trang in turn requires Java. + + o FreeBSD: /usr/ports/textproc/trang + +* http://search.cpan.org/dist/SQL-Translator/. SQL-Translator, also known as + "SQL Fairy", includes code to parse an SQL schema and dump a description of + it as Graphviz input. SQL Fairy in turn requires Perl. + + o FreeBSD: /usr/ports/databases/p5-SQL-Translator + +Once you've finished with installation, the next thing you should read is the +Configuration_Guide. |