I tried this on support, but didn't get a useful reply, so I hope someone here knows the answer.
On a Linux Debian 10 ("buster") headless server, I tried to follow the instructions at
https://www.dropbox.com/install-linux
for "Dropbox Headless Install via command line":
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
~/.dropbox-dist/dropboxd
The 2nd command ends with the lines below and suggests contacting support and providing the log file.
dropbox: load fq extension '/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/PyQt5.QtGui.cpython-37m-x86_64-linux-gnu.so'
Couldn't start Dropbox.
This is usually because of a permissions error. Storing your home folder on a network share can also cause an error.
Note that I was running as root, so it's not really a permission problem. The end of the log file shows that the real problem is that it cannot find a library dependency:
ImportError: libglapi.so.0: cannot open shared object file: No such file or directory
I tried to install a libglapi library from the Debian repos, but the the same script complained about some other missing library.
Is there a list of the required libraries somewhere?
Thanks for any help
Below is the full content of that log file:
# cat /tmp/dropbox_errorbdqczvcw.txt
bn.BUILD_KEY: Dropbox
bn.VERSION: 90.4.307
bn.DROPBOXEXT_VERSION: failed
bn.is_frozen: True
machine_id: 1fae349e-4089-47e7-9a96-35c749d174a3
pid: 28563
ppid: 28540
ppid exe: '/bin/bash'
uid: 0
user_info: pwd.struct_passwd(pw_name='root', pw_passwd='x', pw_uid=0, pw_gid=0, pw_gecos='root', pw_dir='/root', pw_shell='/bin/bash')
effective_user_info: pwd.struct_passwd(pw_name='root', pw_passwd='x', pw_uid=0, pw_gid=0, pw_gecos='root', pw_dir='/root', pw_shell='/bin/bash')
euid: 0
gid: 0
egid: 0
group_info: grp.struct_group(gr_name='root', gr_passwd='x', gr_gid=0, gr_mem=[])
effective_group_info: grp.struct_group(gr_name='root', gr_passwd='x', gr_gid=0, gr_mem=[])
LD_LIBRARY_PATH: None
cwd: '/root'
real_path='/root'
mode=0o40700 uid=0 gid=0
parent mode=0o40755 uid=0 gid=0
HOME: '/root'
appdata: '/root/.dropbox/instance1'
real_path='/root/.dropbox/instance1'
mode=0o40700 uid=0 gid=0
parent mode=0o40755 uid=0 gid=0
dropbox_path: '/root/Dropbox'
real_path='/root/Dropbox'
not found
parent mode=0o40700 uid=0 gid=0
sys_executable: '/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/dropbox'
real_path='/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/dropbox'
mode=0o100755 uid=1000 gid=1000
parent mode=0o40775 uid=1000 gid=1000
trace.__file__: '/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/python-packages.zip/dropbox/client/ui/common/boot_error.pyc'
real_path='/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/python-packages.zip/dropbox/client/ui/common/boot_error.pyc'
not found
parent not found
tempdir: '/tmp'
real_path='/tmp'
mode=0o41777 uid=0 gid=0
parent mode=0o40755 uid=0 gid=0
Traceback (most recent call last):
File "dropbox/client/main.pyc", line 7999, in main_startup
File "dropbox/client/main.pyc", line 3539, in run
File "dropbox/client/ui/common/uikit.pyc", line 860, in create_ui_kit
File "dropbox/client/ui/qt/uikit.pyc", line 53, in <module>
File "<_bootstrap_overrides>", line 153, in load_module
ImportError: libglapi.so.0: cannot open shared object file: No such file or directory
Hello
@Albert25
,
I just tried and made it work today on Ubuntu Server 18.04.4 LTS. As mentioned, the requirements are not fully met by default, so here is the list of what I had to additionally install (you probably alreayd have libc6):
sudo apt-get install libc6
sudo apt-get install libglapi-mesa
sudo apt-get install libxdamage1
sudo apt-get install libxfixes3
sudo apt-get install libxcb-glx0
sudo apt-get install libxcb-dri2-0
sudo apt-get install libxcb-dri3-0
sudo apt-get install libxcb-present0
sudo apt-get install libxcb-sync1
sudo apt-get install libxshmfence1
sudo apt-get install libxxf86vm1
After that, I had to make sure of the following:
sudo chown "$USER" "$HOME"
sudo chown -R "$USER" ~/Dropbox ~/.dropbox
sudo chattr -R -i ~/Dropbox
sudo chmod -R u+rw ~/Dropbox ~/.dropbox
and that seemed to do the trick. You may need to adapt few things here and there.
Hope it helps.
Salvo
Hey
@Albert25
, thanks for reaching out to us here!
You've got quite a few errors there, so as a first step please try removing any traces of the desktop app if they installed with the steps
outlined here
, before trying to reinstall.
You can find the specifics for your set up by clicking "Linux" and under the section specifically for headless installations towards the bottom.
Just to note too, I was able to locate your open ticket with our Support team and passed along your comments from here to keep them in the loop.
Let me know how it goes and we can take it from there!
Thanks Daphne,
I did remove everything as per the instructions. Basically, it was just "rm -rf ~/.dropbox*". The rest didn't exist and the permissions on my $HOME are right.
Then I re-did the install commands ("wget ..." + "~/.dropbox-dist/dropboxd"), but as I expected, nothing changed:
...
dropbox: load fq extension '/root/.dropbox-dist/dropbox-lnx.x86_64-90.4.307/PyQt5.QtGui.cpython-37m-x86_64-linux-gnu.so'
Couldn't start Dropbox.
This is usually because of a permissions error. Storing your home folder on a network share can also cause an error.
Get more help at https://www.dropbox.com/c/help/permissions_error
Please contact Dropbox support with the following info for help:
/tmp/dropbox_errorlaiipxju.txt
# tail /tmp/dropbox_errorlaiipxju.txt
[...]
ImportError: libglapi.so.0: cannot open shared object file: No such file or directory
So it seems to me the problem is one of these 3:
-
Dropbox cannot be installed on a headless server without a Desktop Environment like Gnome or other
-
Dropbox is not compatible with the current Debian stable (v. 10, "buster")
-
Dropbox needs a number of shared libraries
I hope it's the last one, and that someone can come up with the full list of required libraries.
Has anybody had success installing on a headless server with no Desktop Environment?
Thanks for trying that
@Albert25
!
Just to confirm, you mentioned that you've already installed this library on your computer, is that right?
Can you let me know if you have
Glibc 2.19 or higher installed on your device too? This should have all the libraries that you'll need to run the desktop app.
Keep me posted!
Can you let me know if you have
Glibc 2.19 or higher installed on your device too?
I have "libc6/stable,stable,now 2.28-10 amd64 [installed]" which is part of the base system I think.
But it looks like this is completely irrelevant since, as I mentioned already, the server has
no Dektop Environment
.
This should have all the libraries that you'll need to run the desktop app.
And since I have no Desktop, I don't want to run a Desktop app. That is the reason why I followed the very misleading "Dropbox Headless Install via command line" instructions at
https://www.dropbox.com/install-linux
So unfortunately, it looks like my 1st hypothesis was right:
-
Dropbox cannot be installed on a headless server without a Desktop Environment like Gnome or other
Hey again
@Albert25
!
You should be able to run the desktop app without a desktop environment on your computer, but please do keep in mind that Debian isn't currently officially supported.
The reason I asked about Glibc specifically is as this is listed as one of the "
essential requirements
" for running the desktop app on Linux systems.
For a headless installation of the desktop app, you would only need these "essential requirements".
Let me know if you have any other questions, I'll happily look further into this with you!
Hello
@Albert25
,
I just tried and made it work today on Ubuntu Server 18.04.4 LTS. As mentioned, the requirements are not fully met by default, so here is the list of what I had to additionally install (you probably alreayd have libc6):
sudo apt-get install libc6
sudo apt-get install libglapi-mesa
sudo apt-get install libxdamage1
sudo apt-get install libxfixes3
sudo apt-get install libxcb-glx0
sudo apt-get install libxcb-dri2-0
sudo apt-get install libxcb-dri3-0
sudo apt-get install libxcb-present0
sudo apt-get install libxcb-sync1
sudo apt-get install libxshmfence1
sudo apt-get install libxxf86vm1
After that, I had to make sure of the following:
sudo chown "$USER" "$HOME"
sudo chown -R "$USER" ~/Dropbox ~/.dropbox
sudo chattr -R -i ~/Dropbox
sudo chmod -R u+rw ~/Dropbox ~/.dropbox
and that seemed to do the trick. You may need to adapt few things here and there.
Hope it helps.
Salvo
I just used the same instructions for Debian 10 and it worked for my headless server. This has changed, as I set up a Debian server last week using the exact same download and it worked fine.
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
~/.dropbox-dist/dropboxd ## Bunch of errors here
sudo apt install libc6
sudo apt install libglapi-mesa
sudo apt install libxdamage1
sudo apt install libxfixes3
sudo apt install libxcb-glx0
sudo apt install libxcb-dri2-0
sudo apt install libxcb-dri3-0
sudo apt install libxcb-present0
sudo apt install libxcb-sync1
sudo apt install libxshmfence1
sudo apt install libxxf86vm1
~/.dropbox-dist/dropboxd ## Worked fine
I can only hope that the dev team will change this again as I have a use case of the CLI running in environments where it's just not viable to install X Server related libraries. It's just unnecessary.
Please, make a Linux Desktop App and a pure CLI version so everyone can choose what they need but don't force users to install libs they don't need for a function they don't use in a tool that has one job only. Sync files.
I get it, the linux share of users is probably small, but that shouldn't cause you to treat them and their very specific needs worse.
CLI worked, as it was, very well. At the very least, please allow us to run the older version without it autoupdating and then failing because it suddenly "needs" new libs. It's just very frustrating.
Need more support?
Hi there!
If you need more help you can
view your support options
(expected response time for a ticket is 24 hours), or contact us on
Twitter
or
Facebook
.
For more info on available support options,
see this article
.
If you found the answer to your question, please 'like' the post to say thanks to the user!