GUIの無いLinux(CentOS)にDropboxをインストールする

--- 2009/12/14 修正 ---

 


DropboxのページからダウンロードできるLinux版は、X環境がなければセットアップできません。
Dropbox Wikiに投稿されているdbcli.pyでは、CLIからインストールすることができるようなコマンドがありますが、実際にはアカウントの設定のためにXが必要となります。

ここでは、XをインストールしていないCentOSにDropboxをセットアップする手順を紹介します。
手順は以下のページを参考にしています。他のディストリビューションの場合はご覧ください。
TipsAndTricks/TextBasedLinuxInstall - Dropbox Wiki

以下では、CentOS 5.2 (kernel 2.6.18-92.1.6.el5) を前提としています。

Pythonをインストールする。

Dropboxインストールに必要なスクリプトは、Python 2.5以上が必要ですが、CentOSではPython 2.4系までしか用意されていません。
そのため、ここではPython 2.6をインストールします。最新のソースコードはコチラから探してください。

# wget http://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz
# tar xvzf Python-2.6.2.tgz
# cd Python-2.6.2
# ./configure --prefix=/usr/local/Python-2.6.2
# make
# make install

必要なファイルをダウンロード、バイナリを展開

DropboxのバイナリとCUI用のスクリプトをダウンロードし、展開します。
Xがある場合のバイナリ位置と一致させるため、ホームディレクトリで作業をしましょう。

# cd
# wget -O dropbox.tar.gz http://www.getdropbox.com/download?plat=lnx.x86
# tar zxof dropbox.tar.gz
# wget http://dl.getdropbox.com/u/6995/dbmakefakelib.py
# wget http://dl.getdropbox.com/u/6995/dbreadconfig.py
# wget http://www.getdropbox.com/download?dl=packages/dropbox.py

Dropbox動作環境の準備

dbmakefakelib.py を実行することで、Dropbox用の仮GUIライブラリが作成されます。

# /usr/local/Python-2.6.2/bin/python ~/dbmakefakelib.py

CentOS機をDropboxに登録します。
他機のブラウザから以下のURLにアクセスし、既存のアカウントに統合、もしくは新規登録してください。
『https://www.getdropbox.com/register?cli_link= + 下記の出力結果「host_id」』

# /usr/local/Python-2.6.2/bin/python ~/dbreadconfig.py
host_id = xxxxxxxxxxxxxxxxxxxxxxxxxxxx
last_revision = None
schema_version = 6

Dropboxの起動

Dropbox用のディレクトリを作り、起動します。

# mkdir ~/Dropbox
# ~/.dropbox-dist/dropboxd &

以下を実行することで、正常動作を確認できます。

# /usr/local/Python-2.6.2/bin/python ~/dropbox.py status
Downloading 1820 files (96.6 KB/sec, 22 min left)

Dropboxをデーモンとして登録

以下の起動スクリプトを用意し、Linux起動時に自動起動するように設定します。

# vi /etc/init.d/dropbox

 

# chkconfig: 345 85 15
# description: Startup script for dropbox daemon
#
# processname: dropbox
# pidfile: /var/run/dropbox.pid
#
# Source function library.
. /etc/rc.d/init.d/functions

USER="root"
prog=dropbox
DROPBOX_BIN="/root/.dropbox-dist/dropboxd"

lockfile=${LOCKFILE-/var/lock/subsys/dropbox}
RETVAL=0

start() {
        echo -n $"Starting $prog"
        #daemon --user $USER $DROPBOX_BIN
        $DROPBOX_BIN & 2>&1 && ps -ef | egrep " /root/.dropbox-dist/dropbox$" | grep -v grep | awk "{print $2}" > /var/run/$prog.pid
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}

stop() {
        echo -n $"Stopping $prog"
        killproc /root/.dropbox-dist/dropbox
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

status () {
        /usr/local/Python-2.6.2/bin/python /root/dropbox.py status
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status
        ;;
  restart)
        stop
        start
        ;;
  *)
        echo $"Usage: $prog {start|stop|restart}"
        RETVAL=3
esac

exit $RETVAL

 

# chmod +x /etc/init.d/dropbox
# chkconfig --add dropbox
# chkconfig dropbox on
# chkconfig --list | grep dropbox
dropbox         0:off   1:off   2:on    3:on    4:on    5:on    6:off

 

 

以上で終了です。起動スクリプトはもう少し上手く書けると思いますが。。。

2009/05/08 追記

起動スクリプトが誤っていたため、修正しました。

Linux版Dropboxは異様にメモリを消費するので、バックアップ→Sync→Sync終了検知→Dropbox終了とスクリプトを組むのが良いと思われます。

Sync終了は以下のコマンドで検知できます。

# /usr/local/Python-2.6.2/bin/python ~/dropbox.py filestatus

トラックバック(1)


トラックバックを送る際には、この記事へのリンクを記事内につけてください。

from hattorix0の日記

つい二週間程度前に挑戦したものの、Dropbox にコンピュータを登録する部分がうまくいかず諦めていた。久しぶりに Dropbox Wiki を見直した...

コメント(0)

コメントはありません。

コメントを投稿してください。