Dropbox es uno de los servicios de almacenamiento en la nube más populares, sin embargo, su soporte para GNU/Linux no termina por ser el más amigable con el usuario, cosa que no se puede decir de Mega, que soporta oficialmente una gran cantidad de distribuciones, incluidas Arch Linux y derivadas.
Dropbox puede funcionar mediante un demonio que se ejecuta desde la carpeta del usuario. Esto se puede comprobar siguiendo las instrucciones para la instalación desatendida mediante la línea de comandos, que sirven para descomprimir la versión del cliente distribuida dentro de un fichero comprimido. Lo bueno de esas instrucciones es que permiten ejecutar el servicio sobre cualquier distribución, pero con el posible coste de que no pueda ser iniciado junto con la sesión del usuario fácilmente. Por eso, utilizando systemd, vamos a explicar los pasos necesarios para automatizar el inicio de Dropbox en caso de instalarse mediante el fichero comprimido.
Este tutorial va dirigido sobre todo a los usuarios Arch Linux y otras distribuciones que no dan facilidades por sus vías oficiales para instalar Dropbox. Aunque se puede recurrir a AUR, dichos repositorios no tienen soporte oficial y hasta podrían ser un riesgo por lo que hemos podido comprobar recientemente.
¿A quién va dirigido este tutorial?
Este tutorial ofrece una vía alternativa para los usuarios que no cuenten con un canal oficial o fiable para instalar Dropbox. Por ejemplo, los usuarios de openSUSE, Debian y Ubuntu pueden recurrir a los mismos repositorios de las distribuciones, mientras que los de Fedora pueden hacer lo mismo instalando previamente los repositorios de RPMFusion o bien tirando del paquete RPM disponible en el sitio web.
Por otro lado, también puede ser considerado como una forma genérica de configurar Dropbox sobre cualquier sistema operativo GNU/Linux que utilice sysmted como init de sistema.
Instalar Dropbox en GNU/Linux a través del fichero comprimido
Aquí directamente vamos a copiar y pegar los pasos publicados en el sitio web de Dropbox.
En caso de utilizar un sistema de 32-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
En caso de utilizar un sistema de 64-bit:
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
En caso no conseguir descargar y/o descomprimir el fichero, posiblemente sea porque no se tenga instalado wget, tar y/o gzip.
Si se quiere iniciar la sesión en Dropbox por primera vez, se puede recurrir al siguiente comando:
~/.dropbox-dist/dropboxd
Automatizando el inicio de Dropbox junto con el de la sesión en el sistema
Ahora vamos a explicar los pasos a seguir para automatizar el inicio de Dropbox junto con el de la sesión en el sistema. Antes de empezar a explicar los pasos, dejamos bien claro que es necesario utilizar systemd como init del sistema para realizar este tutorial.
Lo primero que hay que hacer es crear las carpetas necesarias para crear el servicio de systemd a nivel del usuario, accediendo primero para ello a la subcarpeta oculta “.config”:
cd ~/.config
Crear la subcarpeta “systemd” dentro de “.config”:
mkdir systemd
Crear la subcarpeta “user” dentro de “systemd”:
cd systemd
Acceder a la carpeta “user”:
cd user
Llegados a este punto hay que crear un fichero llamado “dropbox.service”:
nano dropbox.service
Que tendrá el siguiente contenido:
[Unit] Description=Dropbox as a user service After=local-fs.target network.target [Service] Type=simple ExecStartPre=/bin/sleep 20 ExecStart=%h/.dropbox-dist/dropboxd Restart=on-failure RestartSec=1 [Install] WantedBy=default.target
Después tendríamos que ser capaces de gestionar el servicio creado, aunque posiblemente antes haga falta reiniciar la sesión o la computadora en caso de que en un principio los siguientes pasos no funcionasen.
Para iniciar el servicio de Dropbox (no, en ningún caso se requiere utilizar sudo o iniciar sesión con root):
systemctl --user start dropbox
Para detener el servicio:
Para habilitar el servicio junto al inicio de la sesión:
systemctl --user enable dropbox
Para inhabilitar el servicio junto al inicio de la sesión:
systemctl --user disable dropbox
Si se analiza el código del servicio, se puede ver una detención de 20 segundos. Esto ha sido añadido porque, al menos por lo que he visto en Manjaro XFCE sobre mi netbook Atom (un ordenador muy poco potente), el servicio se iniciaba, pero no aparecía en la bandeja del sistema ni se integraba con las notificaciones. Con el retraso mediante “sleep” se asegura la correcta ejecución, tanto a nivel del propio del servicio como del escritorio.