From 6f45f4a6b5a65ab12db71623877ce075f218e98c Mon Sep 17 00:00:00 2001 From: Rob Austein Date: Mon, 16 Apr 2012 19:11:35 +0000 Subject: Add flat text and PDF translations of documentation from http://trac.rpki.net/, which is now the primary documentation source. This partially addresses #224, although there is no doubt still a way to go on content of the new documentation, given the complaints\\\\\\\\\\helpful suggestions I'm getting from my esteemed group of alpha testers. svn path=/trunk/; revision=4423 --- doc/doc.RPKI.Installation | 207 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 doc/doc.RPKI.Installation (limited to 'doc/doc.RPKI.Installation') diff --git a/doc/doc.RPKI.Installation b/doc/doc.RPKI.Installation new file mode 100644 index 00000000..3ea73ed7 --- /dev/null +++ b/doc/doc.RPKI.Installation @@ -0,0 +1,207 @@ +****** Installation ****** + +At present, the entire RPKI tools collection is a single source tree with a +shared autoconf configuration. This may change in the future, but for now, this +means that the build process is essentially the same regardless of which tools +one wants to use. Some of the tools have dependencies on external packages, +although we've tried to keep this to a minimum. + +Most of the tools require an RFC-3779-aware version of the OpenSSL libraries. +If necessary, the build process will generate its own private copy of the +OpenSSL libraries for this purpose. + +Other than OpenSSL, most of the relying party tools are fairly self-contained. +The CA tools have a few additional dependencies, described below. + +Note that initial development of this code has been on FreeBSD, so installation +will probably be easiest on FreeBSD. We do, however, test on other platforms, +such as Fedora, Ubuntu, and MacOSX. + +***** Prerequisites ***** + +Before attempting to build the tools, you need to install any missing +prerequisites. + +Some of the relying party tools and most of the CA tools are written in Python. +Note that the Python code requires Python version 2.5, 2.6, or 2.7. + +On some platforms (particularly MacOSX) the simplest way to install most of the +Python packages may be the easy_install tool that comes with Python. + +Packages you will need: + +* We do not (yet) have binary packages for any platform, so you will need a C + compiler. gcc is fine, others such as Clang may also work. + +* http://www.python.org/, the Python interpreter, libraries, and sources. On + some platforms the Python sources (in particular, the header files and + libraries needed when building Python extensions) are in a separate + "development" package, on other platforms they are all part of a single + package. If you get compilation errors trying to build the POW code later in + the build process and the error message says something about the file + "Python.h" being missing, this is almost certainly your problem. + + o FreeBSD: + + # /usr/ports/lang/python27 + + o Ubuntu: + + # python + # python-dev + +* 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://www.mysql.com/, MySQL client and server. How these are packaged varies + by platform, on some platforms the client and server are separate packages, + on others they might be a single monolithic package, or installing the server + might automatically install the client as a dependency. On MacOSX you might + be best off installing a binary package for MySQL. The RPKI CA tools have + been tested with MySQL 5.0, 5.1, and 5.5; they will probably work with any + other reasonably recent version. + + o FreeBSD: + + # /usr/ports/databases/mysql55-server + # /usr/ports/databases/mysql55-client + + o Ubuntu: + + # mysql-client + # mysql-server + +* http://sourceforge.net/projects/mysql-python/, the Python "db" interface to + MySQL. + + o FreeBSD: /usr/ports/databases/py-MySQLdb + o Fedora: MySQL-python.i386 + o Ubuntu: python-mysqldb + +* http://www.djangoproject.com/, the Django web user interface toolkit. The GUI + interface to the CA tools requires this. + + o FreeBSD: /usr/ports/www/py-django + +* 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 + +***** Configure and build ***** + +Once you have the prerequesite packages installed, you should be able to build +the toolkit. 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 +building a private copy of the OpenSSL libraries with the right options if +necessary and linking the POW module against either the system OpenSSL +libraries or the private OpenSSL libraries, as appopriate. + +In theory, ./configure will complain about any required packages which might be +missing. + +***** Testing the build ***** + +Assuming the build stage completed without obvious errors, the next step is to +run some basic regression tests. + +Some of the tests for the CA tools 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