Dependency error when trying to install Dropbox on Debian 6 (Squeeze)

I use Dropbox on all of my systems and while not very secure, Dropbox is a quick and easy way to backup and share files. I recently rebuilt a machine with Debian 6 to use it as a test server for some of the work I am doing on some web apps and when I tried to install the .deb package you can download from the Dropbox web site, I was getting this annoying error message that said Error: Dependency is not satisfiable: libnautilus-extension1 (>= 1:2.22.2).

On the site, Dropbox offers installable packages for the Fedora and Ubuntu distributions of Linux. Well, I am using Debian and Ubuntu, being a Debian-based distro, should be compatible, right? You would think so... Turns out that the issue is in a dependency in the manifest of the Ubuntu package, as the error message has already alluded to.

Technically, you could download the Dropbox source tar ball and compile it yourself, but what's the fun in that... I like to get to the bottom of things. I downloaded the nautilus-dropbox_0.6.7_amd64.deb package and when you try to install it using dpkg -i you'll get broken packages. That tells me that the problem was not with the dependencies themselves, but with the .deb manifest inside the package not specifying dependencies correctly. In order to fix this you will need to unpack the .deb file, change the dependency specification and then repackage it. Here's how you can do that:

  1. Go to the place where you download the Dropbox .deb file to. This is usually the Downloads folder inside your home directory.
  2. Create a new directory to extract the package to

    mkdir -p extract/DEBIAN
  3. Extract the files from the .deb package

    dpkg -x nautilus-dropbox_0.6.7_amd64.deb extract/
  4. Extract the control information (manifest) from the package

    dpkg -e nautilus-dropbox_0.6.7_amd64.deb extract/DEBIAN
  5. Open the extract/DEBIAN/control file with your favorite editor

  6. Find the dependencies line, which starts with the text Depends:
  7. On that line, look for the offending dependency spec: libnautilus-extension1 (>= 1:2.22.2)
  8. Notice the version number of this dependency. On my Debian 6 machine, the version of that library is 2.30.1. Notice that the Ubuntu package has a 1: prepended to the package version number in the dependency spec. To make it work in Debian 6 you will need to edit that to remove the 1: from the spec so that it looks like this: libnautilus-extension1 (>= 2.22.2)
  9. Save the file and exit your editor
  10. Create a new directory called build

    mkdir build
  11. Rebuild the .deb package by using the following command:

    dpkg-deb -b extract/ build/
  12. You will notice that a brand new .deb package is now available in the build directory you just created.

  13. Now you can install this new package by issuing the command

    dpkg -i nautilus-dropbox_0.6.7_amd64.deb

    while in the build directory.

You should now be able to use your Dropbox without any installation problems. While this problem solving exercise was fun, there is also an easier way to accomplish the same end result and that is to download the Dropbox source tarball and run the usual configure, make, make install trifecta.


Comments powered by Disqus