cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox here.

Apps and Installations

Have a question about a Dropbox app or installation? Reach out to the Dropbox Community and get solutions, help, and advice from members.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: Headless install on Debian: libglapi.so.0: cannot open shared object file

Headless install on Debian: libglapi.so.0: cannot open shared object file

Albert25
Helpful | Level 5
Go to solution

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

 

1 Accepted Solution

Accepted Solutions

salven
Helpful | Level 6
Go to solution

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

View solution in original post

18 Replies 18

Daphne
Dropbox Staff
Go to solution

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!


Daphne
Community Moderator @ Dropbox
dropbox.com/support


Heart Did this post help you? If so, please give it a Like below.
:arrows_counterclockwise: Still stuck? Ask me a question!
:pushpin: Tips & Tricks Find new ways to stay in flow or share your tips on how you work smarter with Dropbox.

Albert25
Helpful | Level 5
Go to solution

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?

 

Daphne
Dropbox Staff
Go to solution

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!


Daphne
Community Moderator @ Dropbox
dropbox.com/support


Heart Did this post help you? If so, please give it a Like below.
:arrows_counterclockwise: Still stuck? Ask me a question!
:pushpin: Tips & Tricks Find new ways to stay in flow or share your tips on how you work smarter with Dropbox.

Albert25
Helpful | Level 5
Go to solution

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

 

Daphne
Dropbox Staff
Go to solution

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!


Daphne
Community Moderator @ Dropbox
dropbox.com/support


Heart Did this post help you? If so, please give it a Like below.
:arrows_counterclockwise: Still stuck? Ask me a question!
:pushpin: Tips & Tricks Find new ways to stay in flow or share your tips on how you work smarter with Dropbox.

salven
Helpful | Level 6
Go to solution

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

machias
Helpful | Level 6
Go to solution

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

spacebingo
New member | Level 2
Go to solution

I also needed to add libglib2.0-0 (Debian 10).

The Duke In Purple
New member | Level 2
Go to solution

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?