Version 22 (modified by zooko, at 2009-08-02T03:16:59Z) (diff)

add warning about sadly broken apt-get

NOTE: at the time of this writing (2009-08-01), the latest release of Tahoe-LAFS, v1.5.0, can't be installed with apt-get because we haven't yet built .deb's for all of its dependencies and installed them on our apt repository hosted at . Until we fix that, you can follow the install process documented on . This will work fine on Debian/Ubuntu? and it will not change your system configuration in any way, so it won't interfere with your normal apt-get administration. (You can be sure of this because you don't run with sudo, so it couldn't mess up your system configuration even if it tried.)

Debian Packages

Tahoe is compatible with various releases of Debian/Ubuntu?. There are two forms of compatibility: "runs-from-source" and "runs-from-package". Both are pretty easy. If you just want to download a binary package and install it, you'll need the "runs-from-package" kind of compability.


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

platformruns-from-sourceruns-from-packagesupport packages available
Debian "etch"yes?yes
Debian "lenny"yesyesyes (use etch)
Debian "sid"yesyesyes
Ubuntu "dapper"yesnono
Ubuntu "edgy"yes?yes
Ubuntu "feisty"yesno?yes
Ubuntu "gutsy"yesno (#149)yes
Ubuntu "hardy"yesyesyes
Ubuntu "intrepid"yesyesyes

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

(If you can run-from-source, you should also be able to use python install to copy tahoe into /usr/bin/tahoe (or whatever is appropriate for your system), so you can use it after the source tree has been removed. However, using install will modify your /usr partition without the knowledge of the Debian package-management tools, making it more difficult to coordinate dependencies with other packages, and making it difficult to remove Tahoe later.)

"run-from-package" 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. It also means that these .deb packages can be built from a source tree on those platforms (which the buildbot does automatically, to populate the APT repository).

"support packages available" means that the APT repository has debian packages available for several of the libraries which Tahoe requires (those which are not already in the debian release). This might make it easier to build Tahoe from source (fewer things to download).

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, feisty, or gutsy as appropriate.

deb  $DIST  main tahoe
deb-src  $DIST  main tahoe

Then update and install the allmydata-tahoe package. 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.

Building From Source On Debian Systems

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.