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:
- Go to the place where you download the Dropbox .deb file to. This is
usually the Downloads folder inside your home directory.
-
Create a new directory to extract the package to
mkdir -p extract/DEBIAN
-
Extract the files from the .deb package
dpkg -x nautilus-dropbox_0.6.7_amd64.deb extract/
-
Extract the control information (manifest) from the package
dpkg -e nautilus-dropbox_0.6.7_amd64.deb extract/DEBIAN
-
Open the extract/DEBIAN/control
file with your favorite editor
- Find the dependencies line, which starts with the text
Depends:
- On that line, look for the offending dependency spec:
libnautilus-extension1 (>= 1:2.22.2)
- 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)
- Save the file and exit your editor
-
Create a new directory called build
mkdir build
-
Rebuild the .deb package by using the following command:
dpkg-deb -b extract/ build/
-
You will notice that a brand new .deb package is now available in the build
directory you just created.
-
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.