Version 33 (modified by zooko, at 2009-11-28T16:21:12Z) (diff)

separate i386 and amd64 for Debian sid

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.


(note, the contents of this table have not yet been verified)

platformapt-get installabledeb buildabletahoe deb availablesupport debs availableruns-from-sourceincluded in distributionpriority
Debian 3.1 "sarge"nononono?
Debian 4.0 "etch" i386noyesyesno (missing pycryptopp)yes
Debian 5.0 "lenny" i386yes?yesyes (use etch)yes (use etch for zfec/foolscap)yes? *
Debian 5.0 "lenny" armv5telno ? nonoyes
Debian "squeeze" (unreleased) ? ? ? ? ?
Debian "sid" (unreleased) i386yesyesnoyesyes *
Debian "sid" (unreleased) amd64yesyesno?yes
Ubuntu 6.06LTS "dapper" i386nonononoyes
Ubuntu 6.10 "edgy" i386?yesyesno (missing pycryptopp)yes
Ubuntu 7.04 "feisty" i386no?yesyesno (missing pycryptopp)yes
Ubuntu 7.10 "gutsy" i386no (#149)yesyesno (missing pycryptopp)yes
Ubuntu 8.04LTS "hardy" i386yesyesyesyesyes *
Ubuntu 8.04LTS "hardy" amd64noyesyesno (missing pycryptopp, zfec)yes *
Ubuntu 8.10 "intrepid" i386noyesnono?
Ubuntu 9.04 "jaunty" i386noyesnonoyes
Ubuntu 9.04 "jaunty" amd64noyesnono (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 (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 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 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 build on it, then run ./bin/tahoe to use it. This approach is described on the "Install Tahoe" page. The buildbot automatically tests run-from-source on most debian platforms.

Downloading/Installing? Binary Packages hosts an APT repository at . 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  $DIST  main tahoe
deb-src  $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.



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:

  1. use Python 2.5 instead of Python 2.4.
  2. sudo apt-get install sqlite3-dev && sudo easy_install pysqlite.


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:

  1. use Python 2.5 instead of Python 2.4.
  2. 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/", 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/ and not use the 'webport' feature. Another is to modify formless/ and try to fix that import problem. A third is to find a backport of a newer version of nevow.


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 . 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 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.