WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

DropboxをGUI環境がない(CUI)Linuxで使用する

      2012/11/26

pythonのインストールとDropboxインストールスクリプトの入手

GUI(X Window System)がインストールされていないLinuxでもDropboxを使えるようにします。
ちなみにこの例で実際にインストールを行ったディストリビューションはFedora7です。

# cat /etc/redhat-release
Fedora release 7 (Moonshine)

まず、CUI環境でDropboxのインストールを行うスクリプトは、python 2.5系以上でしか動作ようなので、まだpython2.5系以上がインストールされていない場合は下記コマンドでインストールを行います。SQLiteのモジュールも必要になるので同時にインストールします。

# yum -y install sqlite.i386
# yum -y install sqlite-devel.i386
# 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

pythonの実行環境が整ったら、DropboxのバイナリとCUI用のインストールスクリプトをダウンロードします。
ホームディレクトリに移動して作業を行います。

# 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のインストール実行

ダウンロードしたスクリプトを実行してインストールを実行します。

# /usr/local/Python-2.6.2/bin/python ~/dbmakefakelib.py    ※仮想GUIを作成しているようです
dropboxd ran for 15 seconds without quitting - success?    ※自分の環境ではこういったメッセージがでてコマンドが終了しませんでしたが、成功しているようでした。
# /usr/local/Python-2.6.2/bin/python ~/dbreadconfig.py    ※sqlite3のDBから情報を取り出して出力してくれる。下記のようにhost_idが出力されれば成功
host_id = ********************************
last_revision = None
schema_version = 6

host_idが表示されたら、他機のブラウザから下記URLへクエリ情報にhost_idを指定してアクセスし、既存のアカウントに統合します。
https://www.getdropbox.com/cli_link?host_id=”表示されたhost_id”

Dropboxの実行

起動

共有ディレクトリを生成し、Dropboxを起動します。

# mkdir ~/Dropbox    ※共有ディレクトリの生成
# ~/.dropbox-dist/dropboxd &    ※Dropboxデーモンの起動

ステータスの確認

# /usr/local/Python-2.6.2/bin/python ~/dropbox.py status    ※Dropboxのステータスを確認
Downloading 110 files (429.7 KB/sec, 16 min left)    ※ダウンロード中
# /usr/local/Python-2.6.2/bin/python ~/dropbox.py status
Idle   ※同期完了

ファイルの同期状態を確認

# /usr/local/Python-2.6.2/bin/python ~/dropbox.py filestatus    ※共有ディレクトリ内で実行するとファイルの同期状態を確認できる
ファイル名:up to date    ※ 同期完了
ファイル名:unwatched    ※ 同期対象外
ファイル名:syncing    ※ 同期中

.bashrcなどにDropboxデーモンの立ち上げを記述・.bash_logoutでデーモン終了を記述したり、コマンドをエイリアスに登録しておくと便利です。

Dropboxを自動起動する

下記URLにinit.dスクリプトのサンプルが置いてあるのでそれをそのまま利用します。”init.d sample for Fedora/RedHat below:”の記述のすぐ下あたりにあります。
How To Install Dropbox In An Entirely Text Based Linux Environment

# vi /etc/init.d/dropbox
上記URLから取得したスクリプトをコピペする
※先頭のDROPBOX_USERS="user1 user2"は自分のユーザ名に置き換える
※chkconfigサポートを有効にするためにスクリプトの先頭のほうに下記2行を追記する
# chkconfig: 2345 35 35
# description: dropbox

自作スクリプトをデーモンに登録するには”start-stop-daemon”が必要です。まだ”start-stop-daemon”がインストールされていない場合は下記のようにソースをダウンロードしてコンパイルします。

# wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
# tar xvzf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
# cd apps/sys-utils/start-stop-daemon-IR1_9_18-2/
# gcc start-stop-daemon.c -o start-stop-daemon
# cp start-stop-daemon /usr/bin/

あとは実行権限をスクリプトに付加し、自動起動設定を行います。

# chmod +x /etc/init.d/dropbox
# service dropbox start
# chkconfig --add dropbox

 - Linux