Usando Dropbox no Linux

Tags: , , — December 18, 2010 @ 6:19 pm

Para quem ainda não conhece, o Dropbox é um aplicativo de compartilhamento de arquivos online, com suporte para Windows, Mac OSX, GNU/Linux e ainda plataformas móveis, como o iPhone OS, Android e Blackberry, além de permitir acesso via qualquer navegador, que permite compartilhar arquivos entre diversos clientes, entre usuários, e ainda publicar galerias de imagens online.

Na minha opinião, a maior vantagem do Dropbox é permitir acesso aos mesmos documentos em casa, no trabalho e no celular.

A maneira mais fácil de utilizar o Dropbox no GNU/Linux é utilizando o plugin oficial para o gerenciador de arquivos Nautilus. Acontece que este método só funciona com o gerenciador de arquivos citado, e ainda tem algumas dependências problemáticas (tive problemas para instalá-lo no Debian).

Como alternativa, existe uma maneira de instalar um cliente de linha de comando como um daemon (programa que roda como um sub-processo, de forma transparente para o usuário), permitindo acesso aos seus arquivos compartilhados com qualquer gerenciador desejado e inclusive por linha de comando. Apesar da desvantagem desta alternativa conter alguns binários de código fechado, ela se torna uma opção bem mais versátil que a anterior.

Para instalar o cliente  de linha comando, você irá precisar previamente dos seguintes requisitos:

  • Versão 2.4 ou superior da biblioteca C
  • wget
  • Python 2.5
  • um navegador web

Com as dependências instaladas, baixe o pacote Dropbox-lnx-x86 (ou a versão x86_64) para sua $HOME (os arquivos serão descompactados no diretório .dropbox-dist).

Versão estável 32-bit:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"

Versão estável 64-bit:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

Após baixar o pacote faça previamente um teste para garantir que os arquivos não serão descompactados diretamente do diretório atual:

tar -tzf dropbox.tar.gz

…E estando tudo certo, descompacte-os:

tar -xvzf dropbox.tar.gz

Após descompactar, inicie o daemon:

~/.dropbox-dist/dropboxd

Após executar o Daemon você deverá receber uma saída como a seguir:

This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=7d44a557aa58f285f2da0x67334d02c1 to link this machine.

Acessando o link fornecido no terminal você deve receber uma mensagem de sucesso no seu navegador (pode ser necessário logar em sua conta do Dropbox), indicando que tudo ocorreu bem. Depois disso, o daemon criará um diretório Dropbox sob sua $HOME, e iniciará a sincronização de arquivos, então você terá acesso aos seus arquivos compartilhados com com qualquer outro computador contendo um cliente Dropbox.

Para não precisar iniciar o daemon manualmente a cada vez que precisar, você pode criar um init script para iniciá-lo junto com o sistema. Para o Debian e Ubuntu, crie um script em /etc/init.d/dropbox, com o conteúdo a seguir e substitua os nomes na variável DROPBOX_USERS com os nomes de usuários que tem o Dropbox instalado:

# dropbox service
DROPBOX_USERS="user1 user2"
 
DAEMON=.dropbox-dist/dropbox  
 
start() {
    echo "Starting dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
stop() {
    echo "Stopping dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}
 
case "$1" in
 
    start)
        start
        ;;
 
    stop)
        stop
        ;;
 
    restart|reload|force-reload)
        stop
        start
        ;;
 
    status)
        status
        ;;
 
    *)
        echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
        exit 1
 
esac
 
exit 0

…E então execute os comandos a seguir para adicionar o dropbox como um serviço do sistema:

chmod +x /etc/init.d/dropbox
update-rc.d dropbox defaults

Além do script para Debian/Ubuntu, na wiki do Dropbox existem exemplos de versões para Fedora e Gentoo. Na wiki também existe um tutorial para instalar o daemon Dropbox para ser executado para todos usuários (útil para servidores).

Deste modo, sempre que iniciar o sistema e logar com seu usuário você terá acesso aos seus arquivos compartlhados no Dropbox (desde, claro, que possua uma conexão com a internet).

Fonte: http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall