You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

Albert25's avatar
Albert25
Helpful | Level 5
5 years ago

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

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

  • salven's avatar
    salven
    Helpful | Level 6

    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

    • David M.83's avatar
      David M.83
      New member | Level 2

      For the lazy

       

      sudo apt install libc6 libglapi-mesa libxdamage1 libxfixes3 libxcb-glx0 libxcb-dri2-0 libxcb-dri3-0 libxcb-present0 libxcb-sync1 libxshmfence1 libxxf86vm1

       

       

      • eposthumus's avatar
        eposthumus
        New member | Level 2

        And for those that want a minimal set of packages, as to not pollute your server too much with unneeded packages.

        On Ubuntu 18.04 I needed:

         

        sudo apt install libglapi-mesa libxcb-glx0 libxxf86vm1
    • anonymous's avatar
      anonymous

      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's avatar
        spacebingo
        New member | Level 2

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

    • marsch's avatar
      marsch
      New member | Level 2

      You are making the user install graphics libraries on a headless system. This answer just makes zero sense for a headless/cli-only install.

      • Paul243's avatar
        Paul243
        New member | Level 2

        I just spent an hour figuring this out and it seems there is no way to install properly Dropbox on a Debian server. 

        The proposed scripts are working but only at first start. Next launch it gets stuck on loading a PyQt5.QtGui.cpython-37m-x86_64-linux-gnu.so library we obviously don't need...

        Plus, we're missing command line instructions to define the folders we want to synchronize.

        @Dropbox, thank you for fixing this.

  • zahanmfb's avatar
    zahanmfb
    New member | Level 2

    As described in this support thread, the headless Dropbox client seems to depend on a few graphics libraries, including libglapi-mesa - hence we see the error described when trying to install and start it using just the official installation instructions.

     

    ImportError: libglapi.so.0: cannot open shared object file: No such file or directory

     

    Can we get the dev team to fix this such that the headless client doesn't depend on these libraries? I imagine its an unintended dependency.

    • Lusil's avatar
      Lusil
      Icon for Dropbox Staff rankDropbox Staff

      Hey zahanmfb, thanks for reaching out. 

       

      I moved your post to this thread to keep relevant troubleshooting about this under one discussion, so as to better track your feedback. 

       

      Thanks for taking the time to share this with us, and if you have anything else in mind, don't hesitate to get back to us. 

  • Daphne's avatar
    Daphne
    Icon for Dropbox Staff rankDropbox Staff

    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!

    • Albert25's avatar
      Albert25
      Helpful | Level 5

      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's avatar
        Daphne
        Icon for Dropbox Staff rankDropbox Staff

        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!

  • nicecherub's avatar
    nicecherub
    New member | Level 2

    I am facing the follwoing error and I tried to install libXdamage but failed. Could anyone help to suggest a solution on this? 

     

    ./dropbox.py update

    Dropbox is the easiest way to share and store your files online. Want to learn more? Head to https://www.dropbox.com/

    In order to use Dropbox, you must download the proprietary daemon. [y/n] y
    Downloading Dropbox... 100%
    Unpacking Dropbox... 100%dropbox: locating interpreter
    dropbox: logging to /tmp/dropbox-antifreeze-JR5ViI
    dropbox: initializing
    dropbox: initializing python 3.7.5
    dropbox: setting program path '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/dropbox'
    dropbox: setting python path '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158:/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/python-packages.zip'
    dropbox: python initialized
    dropbox: running dropbox
    dropbox: setting args
    dropbox: applying overrides
    dropbox: running main script
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/cryptography.hazmat.bindings._constant_time.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/cryptography.hazmat.bindings._openssl.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/cryptography.hazmat.bindings._padding.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/psutil._psutil_linux.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/psutil._psutil_posix.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/apex._apex.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/tornado.speedups.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/wrapt._wrappers.cpython-37m-x86_64-linux-gnu.so'
    dropbox: load fq extension '/data/.dropbox-dist/dropbox-lnx.x86_64-98.4.158/PyQt5.QtWidgets.cpython-37m-x86_64-linux-gnu.so'

    Traceback (most recent call last):
    File "dropbox/client/main.pyc", line 262, in <module>
    File "dropbox/foundation/navigation_service/factory.pyc", line 22, in <module>
    File "dropbox/foundation/navigation_service/navigation_service_impl.pyc", line 57, in <module>
    File "dropbox/foundation/html_views/electron/manager_factory.pyc", line 14, in <module>
    File "dropbox/foundation/html_views/local/common/manager.pyc", line 33, in <module>
    File "dropbox/client/features/model_registry.pyc", line 13, in <module>
    File "dropbox/client/features/generated_models.pyc", line 286, in <module>
    File "dropbox/client/features/previews/view_anchor.pyc", line 106, in <module>
    File "<_bootstrap_overrides>", line 153, in load_module
    ImportError: libXdamage.so.1: cannot open shared object file: No such file or directory

    • Walter's avatar
      Walter
      Icon for Dropbox Staff rankDropbox Staff

      Hi nicecherub! Welcome to our Community and sorry for the late response; your post had been caught by our spam filter due too its length.

       

      As your query seems to echo the discussion under this thread, I merged your post here so please feel free to take a look at your covenience and let us know if you have any more questions. 

       

      Specifically, make sure to check the solution offered here

       

      Cheers!

About 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.

Need more support

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!