Dependency error when trying to install Dropbox on Debian

Written by Jonas Gorauskas @ http://thestandardoutput.com/

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 tomkdir -p extract/DEBIAN
  3. Extract the files from the .deb packagedpkg -x nautilus-dropbox_0.6.7_amd64.deb extract/
  4. Extract the control information (manifest) from the packagedpkg -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 buildmkdir 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 commanddpkg -i nautilus-dropbox_0.6.7_amd64.debwhile 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.

Written by Jonas Gorauskas

May 31st, 2011 at 9:13 pm

source: http://thestandardoutput.com/2011/05/dependency-error-when-trying-to-install-dropbox-on-debian-6-squeeze/

 

Note: Tested also on Debian 7 (Wheezy, Testing) with nautilus-dropbox_0.6.9_amd64 and it works.

 

Recommended link: http://raphaelhertzog.com/2011/06/06/official-debian-ubuntu-packages-for-nautilus-dropbox/

 

Advertisements

One thought on “Dependency error when trying to install Dropbox on Debian”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s