Dropbox for Linux introduced some restrictions after august 2018: the local storage must be > ext3 (or generally excluding less secure filesystems, including CentOS’ default xfs) and glibc should be >= 2.19, but installed version is 2.17.
This caused some troubles to some users, me included, who run headless dropbox on CentOS 7 machines. Lucky for me I had an ext4 filesystem, but I didn’t know what to do for the glibc requirement.
After doing some searches I found a very quick harmless workaround on CentOS forums.
The hack consist in building a fake linux library which induces dropbox binary in thinking glibc is up to date, while it is not. User pgreco did it for Google Chrome, and was able to make dropbox fall into the same trap!
Let’s see how to proceed.
Create the file /usr/local/src/dropboxcheat.c with this content:
const char *gnu_get_libc_version (void)
{
return "2.19";
}
Now compile (of course you will need gcc installed) it and move to CentOS local library files with:
cd /usr/local/src
gcc -Wall -fPIC -shared -o dropboxcheat.so dropboxcheat.c
mv dropboxcheat.so /usr/local/lib64/
Now we have to run dropbox and feed it with the cheat
LD_PRELOAD=/usr/local/lib64/dropboxcheat.so ./dropboxd
aaaand… That’s it!
In my case, with a headless CentOS 7.1.1503, dropbox restored its functionalities without any issue!
Here’s the link to the forum original thread with the full discussion.
Heading photo by Nicolas Hoizey on Unsplash.
drob pox ? really
fixed thanks 😀
Wouldn’t be easier to install docker and then run Dropbox inside a Docker container? No need for hacks and stuff like that…
good point!
First with filesystem (requires xattr and they tight on ext4), then the processor (they say ARM is a non-standard cpu), tight libc, poor headless support, limit in linked devices.
It seems they are trying to do the “pass on pay or leave for good” way
Hi,
Coudl you share the compiled version of fake glibc219 to me by e-mail?
Thank you, but.. Sadly this hasn’t worked for me, using the 64-bit headless install from https://www.dropbox.com/install-linux (which installs to ~/.dropbox-dist/dropboxd) and compiling the .so as you instruct, it fails during the python code, with “ImportError: /lib64/libc.so.6: version `GLIBC_2.18′ not found (required by /home/premier/.dropbox-dist/dropbox-lnx.x86_64-99.4.501/libdropbox_apex.so)”. I know it’s loading the .so because I mis-typed it the first time as just .o and I got “cannot be preloaded” errors before dropboxd ran. With that fixed, it still cannot start up. (on CentOS 7.8.2003 (core) headless server)
This workaround is ~2y old, it’s possible they changed something else and it’s not working anymore. Someone here suggested to use Docker to run Dropbox, could it be an option?
It worked for me! I had a hard time finding dropbox.py as suggested on at some resources. Just set the option and boom! Thanks a lot!!