MyTetra Share
Делитесь знаниями!
Установка DropBox в консоли Linux в 2020 году
Время создания: 14.08.2020 13:30
Автор: xintrea
Текстовые метки: linux, dropbox, установка, инсталляция, настройка, консоль
Раздел: Компьютер - Linux - Dropbox в Linux

Клиент DropBox и его консольная часть все время меняются. При очередном крупном релизе DropBox может оказаться так, что старый настроенный клиент перестает работать. И нужно устанавливать нового клиента. Дело осложняется тем, что новый клиент может быть устроен несколько по-другому чем предыдущий, ему нужны будут несколько другие директории и список установленных системных пакетов.


Здесь рассказывается о том, как установить консольный клиент в Linux, актуальный на лето 2020 года (v.105.3.379).


Итак, согласно официальной странице:



https://www.dropbox.com/install



... для установки DropBox требуется выполнить следующие команды:



32-бит:


cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -


64-бит:


cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -



Однако на официальной странице не сказано, что при этом происходит, в каком каталоге и от какого пользователя надо эти команды запускать. Опытным путем выяснилось, что запускать команды нужно от того пользователя, под которым будет происходить работа с DropBox. То есть, обычному пользователю надо запустить эту команду от самого себя, не переключаясь на root. Каталог, в котором запускается эта команда, неважен.


В результате работы команды, в домашнем каталоге пользователя будет создан подкаталог ~/.dropbox-dist. В нем будет подкаталог с текущей версией DropBox. Кроме того, будет файл VERSION, куда будет прописана только что установленная новая версия, и будет находиться скрипт запуска демона dropboxd. Если в системе уже стояли какие-то версии DropBox, и они устанавливались по такой же технологии, то они никуда не денутся, и каталоги с их исполнимыми файлами будут находиться в той же директории ~/.dropbox-dist.


Вот пример содержимого директории ~/.dropbox-dist, в которой видно, что в систему уже устанавливалось 3 версии DropBox:



drwxr-xr-x dropbox-lnx.x86-104.4.175

drwxr-xr-x dropbox-lnx.x86-105.3.379

drwxrwxr-x dropbox-lnx.x86-87.4.138

-rw-r--r-- VERSION

-rwxr-xr-x dropboxd



Далее, согласно документации, надо запустить демона:



~/.dropbox-dist/dropboxd



Данный демон тоже запускается от обычного пользователя, а не от root. Для того, чтобы запустить демона в фоне, можно добавить знак & в конце команды:



~/.dropbox-dist/dropboxd &



Однако, при таком включении, просто так увидеть консольный выхлоп данного демона не получится. Поэтому на этапе настройки лучше запускать его в явном виде.


С некоторых пор этот демон собирается так, что для его работы в консольном режиме, необходимо наличие графических библиотек. Странно, но это так. Установить их можно командой:



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



Однако, запуск демона напрямую приведет к тому, что он будет пытаться подключиться к несуществующему экрану (дисплею). Это вызывает недоразумения, особенно если запуск производится на удаленном серверном хосте, где вообще нет графической подсистемы. В общем, демон выдаст следующую ошибку в консоль и прекратит работу:



X11 connection rejected because of wrong authentication.
QXcbConnection: Could not connect to display localhost:10.0



Обойти эту проблему можно путем "обнуления" переменной DISPLAY. Демон устроен таким образом, что если он не найдет данную переменную, то не будет пытаться подключиться к дисплею. Таким образом, для запуска демона можно воспользоваться командой:



unset DISPLAY ; ~/.dropbox-dist/dropboxd



Для проверки работоспособности DropBox, можно в одной консоли запустить демона вышеуказанной командой, а в другой консоли можно управлять данным демоном через специальный Python-скрипт, который можно получить командами:



wget -O dropbox.py "https://www.dropbox.com/download?dl=packages/dropbox.py"

chmod 755 ./dropbox.py



Данный скрипт управления можно размещать в любом каталоге. Запускать данный скрипт надо от того же пользователя, от которого был запущен демон, иначе скрипт не увидит работающего демона DropBox. Чтобы узнать, в каком состоянии находится демон, надо выполнить данный скрипт с параметром status:



./dropbox.py status



Если демон работает корректно, и все файлы засинхронизированы, то на консоль будет выдан статус:



Up to date



После чего скрипт завершит работу.


Данным скриптом можно так же управлять работой демона DropBox. Например, вместо прямого запуска демона, можно использовать старт демона через данный скрипт. То есть, для запуска демона надо дать команду:



unset DISPLAY ; ./dropbox.py start



Только надо не забывать, что перед командой надо добавлять unset DISPLAY, иначе запуск завершится ошибкой:



Dropbox isn't running!

Done!

xi@webhamster:/opt/script$ X11 connection rejected because of wrong authentication.

b'!! (Qt:Fatal) QXcbConnection: Could not connect to display localhost:10.0'



Отличие запуска демона через данную команду в том, что демон будет запущен, и команда завершит свою работу, а демон продолжит свою работу в памяти. Если же запускать демона непрямую через его бинарник, то демон будет запущен, он будет выводить на консоль свою служебную информацию, и свою работу демон завершит только в случае, если нажать комбинацию клавиш завершения процесса (Ctrl+C).


Примечание: для других действий, например для остановки демона через опцию stop, отключать переменную DISPLAY не нужно.


Чтобы получить список действий управляющего скрипта, можно воспользоваться опцией help:



> unset DISPLAY ; ./dropbox.py help


Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

autostart    automatically start Dropbox at login
exclude      ignores/excludes a directory from syncing
filestatus   get current sync status of one or more files
help         provide help
lansync      enables or disables LAN sync
ls           list directory contents with current sync status
proxy        set proxy settings for Dropbox
puburl       get public url of a file in your Dropbox's public folder
running      return whether Dropbox is running
sharelink    get a shared link for a file in your Dropbox
start        start dropboxd
status       get current status of the dropboxd
stop         stop dropboxd
throttle     set bandwidth limits for Dropbox
update       download latest version of Dropbox
version      print version information for Dropbox



Видно, что скрипт управления позволяет многое сделать с демоном DropBox. По сути, графический пользовательский интерфейс DropBox, который поставляется для Linux, просто под капотом использует данный скрипт для выполнения всех своих действий.


 
MyTetra Share v.0.53
Яндекс индекс цитирования