Version 32 (modified by zooko, at 2009-10-26T21:13:07Z) (diff) |
---|
Debian Packages
Tahoe is compatible with various releases of Debian/Ubuntu?. There are two forms of compatibility: "apt-get installable" and "runs-from-source". Both are pretty easy. If you just want to download a binary package and install it, you'll need the "apt-get installable" kind of compability.
Compability
(note, the contents of this table have not yet been verified)
platform | apt-get installable | deb buildable | tahoe deb available | support debs available | runs-from-source | included in distribution | priority |
Debian 3.1 "sarge" | no | no | no | no | ? | ||
Debian 4.0 "etch" i386 | no | yes | yes | no (missing pycryptopp) | yes | ||
Debian 5.0 "lenny" i386 | yes? | yes | yes (use etch) | yes (use etch for zfec/foolscap) | yes? | * | |
Debian 5.0 "lenny" armv5tel | no | ? | no | no | yes | ||
Debian "squeeze" (unreleased) | ? | ? | ? | ? | ? | ||
Debian "sid" (unreleased) | yes | yes | no | yes | yes | * | |
Ubuntu 6.06LTS "dapper" i386 | no | no | no | no | yes | ||
Ubuntu 6.10 "edgy" i386 | ? | yes | yes | no (missing pycryptopp) | yes | ||
Ubuntu 7.04 "feisty" i386 | no? | yes | yes | no (missing pycryptopp) | yes | ||
Ubuntu 7.10 "gutsy" i386 | no (#149) | yes | yes | no (missing pycryptopp) | yes | ||
Ubuntu 8.04LTS "hardy" i386 | yes | yes | yes | yes | yes | * | |
Ubuntu 8.04LTS "hardy" amd64 | no | yes | yes | no (missing pycryptopp, zfec) | yes | * | |
Ubuntu 8.10 "intrepid" i386 | no | yes | no | no | ? | ||
Ubuntu 9.04 "jaunty" i386 | no | yes | no | no | yes | ||
Ubuntu 9.04 "jaunty" amd64 | no | yes | no | no (missing zfec, foolscap) | yes | ||
Ubuntu "karmic" (unreleased) i386 | ? | ? | ? | ? | ? | * | * |
Ubuntu "karmic" (unreleased) amd64 | ? | ? | ? | ? | ? | * | * |
"apt-get installable" means that it is possible to download a pre-built Tahoe binary package from the APT repository on allmydata.org (as well as packages for any dependencies that are not otherwise available in the Debian/Ubuntu? release), and then run /usr/bin/tahoe to use that installation. Follow the instructions below to edit your /etc/apt/sources.list file. "apt-get installable" = ("tahoe deb available" AND "support debs available").
"deb buildable" means that a tahoe .deb package can be built from a source tree. "tahoe deb available" means the allmydata.org buildbot does this automatically, to populate the APT repository. We do not have automatic builders for all platforms, so there are holes in this table.
"support debs available" means that the allmydata.org APT repository has debian packages available for everything that Tahoe needs (those which are not already in that debian release: over time, many of the packages are being added to debian proper, and no longer need to be hosted here). This is required to make tahoe be "apt-get installable" on any given platform.
"runs-from-source" means that it is possible to take a Tahoe source tree (either from a downloaded tarball or from a darcs checkout) and run python setup.py build on it, then run ./bin/tahoe to use it. This approach is described on the "Install Tahoe" page. The allmydata.org buildbot automatically tests run-from-source on most debian platforms.
Downloading/Installing? Binary Packages
allmydata.org hosts an APT repository at http://allmydata.org/debian/ . To install packages from this repository, add the following lines to your /etc/apt/sources.list, replacing the word $DIST with one of etch, sid, edgy, etc, as appropriate.
deb http://allmydata.org/debian/ $DIST main tahoe deb-src http://allmydata.org/debian/ $DIST main tahoe
Then update and install the allmydata-tahoe package:
sudo apt-get update sudo apt-get install allmydata-tahoe
apt-get will automatically acquire other dependency packages from the same repository (including foolscap, zfec, pycryptopp, and others). The "tahoe" section contains the Tahoe debian packages, while the "main" section contains the support libraries.
Note that these allmydata-tahoe packages are generated each time the code is changed, and represent the most up-to-date (read "unstable") version available. The usual warnings about no guarantees apply: it might cause your computer to catch fire, might steal your dog, etc. In the future, we will add a section to the repository that only contains released versions of Tahoe, probably called "tahoe-releases". The packages in this section should be more stable than the bleeding-edge packages in the "tahoe" section.
After installing see the docs/running.html for how to use it.
There are no pre-built packages available for dapper or sarge, as these releases are too old to provide the necessary support packages (python-central, setuptools, etc). You can probably still install from source on these releases, however.
Problems
Etch
Debian Etch (4.0, "oldstable") has a python-pysqlite2 for Python 2.4 that lacks a .egg-info, so it is invisible to setuptools. Workarounds:
- use Python 2.5 instead of Python 2.4.
- sudo apt-get install sqlite3-dev && sudo easy_install pysqlite.
Edgy
Ubuntu Edgy (6.10) has a python-pysqlite2 for Python 2.4 that has a .egg-info marked as being for Python 2.5, so it is invisible to setuptools. Workarounds:
- use Python 2.5 instead of Python 2.4.
- sudo apt-get install sqlite3-dev && sudo easy_install pysqlite.
It appears that the version of Nevow (0.7.0) which shipped with edgy is broken (ubuntu bug #61423), preventing the tahoe node's webserver from running. The symptom is an exception at node startup that looks like this:
File "/var/lib/python-support/python2.4/formless/annotate.py", line 17, in ? from nevow.compy import Interface, MetaInterface exceptions.ImportError: cannot import name MetaInterface
We do not yet know of a solid workaround for this. One suggestion is to comment out the "from allmydata.webish import WebishServer?" line from allmydata/client.py and not use the 'webport' feature. Another is to modify formless/annotate.py and try to fix that import problem. A third is to find a backport of a newer version of nevow.
Lenny
The combination of Twisted-8.1 and pyopenssl-0.7 triggers a bug (#402) that causes many unit tests to fail. This bug does not appear to impact actual operations. The current workaround is to upgrade to Twisted-8.2, downgrade to pyopenssl-0.6, or refrain from running unit tests.
#768 (need .deb's of pycryptopp and zfec) #785 (lenny (onwards) packages should depend on python-pysqlite2 not python-sqlite2)
Building From Source On Debian Systems
If your platform is not listed as "apt-get installable" above, or if you don't have root access, or simply want to run Tahoe without installing it, you can use the regular run-from-source procedure described in http://allmydata.org/source/tahoe/trunk/docs/install.html . As long as you run this as a normal (non-root) user and don't use "sudo" at any time, this will not modify your system and will not interfere with the normal apt-get tools. Building from a source tree and then symlinking ~/bin/tahoe to the tree's bin/tahoe executable is a convenient way to use Tahoe without installing it to your /usr directory.
Many of Tahoe's build dependencies can be satisfied by first installing certain debian packages, and the Tahoe build process will download and build many of the others. Please see source:docs/debian.txt for details about building Tahoe on a debian-based system. The following text is a copy of source:docs/debian.txt .
The Tahoe build process will download and install many of its dependencies when you run make or setup.py build. The base set of functionality that it cannot build on its own are provided by the following debian packages, so you must have these installed before you will be able to do much of anything. (note that the authoritative list of packages is in the "Build-Depends:" clause of misc/sid/debian/control):
- build-essential (this includes gcc, g++, make, and the headers in libc-dev)
- debhelper
- cdbs
- python-central
- python-setuptools
- python
- python-dev
In addition, to use the "make deb-PLATFORM-head" target, you will also need the "debchange" utility from the "devscripts" package, and the "fakeroot" package.
To actually run a Tahoe node from a debian package, you will need the following supporting libraries installed. (again, the authoritative list of packages is in the Depends: clause of misc/sid/debian/control)
- python-twisted-core
- python-twisted-names
- python-foolscap
- python-pyopenssl
- python-nevow
- python-simplejson
- python-zfec
- python-pycryptopp
Even if you don't intend to create a Tahoe .deb package, you can install the supporting libraries from debian packages to reduce the build-time download-and-compile work. The Tahoe build process will use any pre-installed libraries it can find, and will download+build everything else.
Building a Debian Package
Please see source:docs/debian.txt for details about building your own debian packages from a Tahoe source tree. You will need to install the packages described above, including the "devscripts" and "fakeroot" packages, and you will use the make deb-$PLATFORM-head target.
Note that this is entirely optional. Tahoe will run just fine from a source tree: creating a debian package is merely a convenience for sysadmins to help them manage large numbers of Tahoe nodes with established tools like apt-get.