knoppixユーザのDropbox
以前の記事でKNOPPIX6.2にDropboxをインストールした(KNOPPIX6.2にDropboxをインストール)。関連するディレクトリやファイルがknoppixユーザのホームディレクトリにあり、Xウィンドウ(LXDE)環境で起動する。
/home/knoppix/Dropbox
/home/knoppix/.dropbox
/home/knoppix/.dropbox-dist
/home/knoppix/bin/dropbox
/home/knoppix/bin/dropbox.py
端末から $ dropbox start というコマンドを打つと、システムトレイにDropboxアイコンが表示されて同期が行われる。
この設定で不満があるとすれば、KNOPPIXのコンソールモードからDropboxを同期させられないことだ。そこで、コンソールモード用のDropboxを別にインストールしてみた。
コンソールモードでもknoppixユーザにログインすることはできる。しかし、dropboxプログラムはDropboxをインストールするユーザのホームディレクトリに置かなければならない。2種類のDropboxのプログラムを同じディレクトリに置くわけにはいかない。そこで、2つめのDropboxはrootユーザでインストールすることにした。
rootユーザのDropbox
関連するディレクトリとファイルがrootユーザのホームディレクトリなどにある。Dropboxディレクトリはknoppixユーザと共有している。下の4つのファイルは、インストールと設定のときだけ使用した。
/root/.dropbox
/root/.dropbox-dist
/root/fakelib.c
/usr/local/bin/dropbox.py
/usr/local/bin/dropboxd
/home/knoppix/Dropbox
/root/dropbox-lnx.x86-0.7.110.tar.gz
/root/dbmakefakelib.py
/root/dbreadconfig.py
/root/dropboxdir.py
コンソールモードでのDropboxインストール
1.rootユーザログイン
(1)コンソールモード
コンソールモードの画面を開くだけなら、[Ctrl]+[Alt]+[F1〜F4] でいい。[Alt]+[F5] でXウィンドウ画面に戻る。
ランレベルを切り替える場合は、適当なプロンプトで # init [数字]というコマンドを打つ。たとえばランレベル2に切り替えるなら、# init 2 とした後、[Alt]+[F2] 。KNOPPIXのランレベル2〜4はどれでも同じだ。Xウィンドウに戻るには # init 5 。
コンソールモードでインターネット接続を確保するには、LXDEのシステムトレイのアイコンからNetwork Managerアプレットで接続の編集画面を開き、「Available to all users」を有効にしておく。
(2)rootユーザのパスワード
Xウィンドウの端末では $ su と打つだけでrootユーザになれるが、コンソールモードではパスワードを使ってログインする必要がある。ログインしないとただのrootだ。その状態でもDropboxをインストールできないことはないが、/ 直下にdropboxのプログラムを置くことになってしまう。rootでログインすれば、/root がrootユーザのホームディレクトリになるので、そこにインストールできる。
rootユーザのパスワードをセットしよう。もちろん端末でもできる。
# passwd root
Enter new UNIX password:[パスワード]
Retype new UNIX password:[パスワード]
passwd: password updated successfully
同じパスワードを2回入力する。はじめてパスワードを作るときは、これとは違うメッセージが出るかもしれない。
(3)メッセージの文字化け
コンソールモードでは日本語が表示されないので、日本語のメッセージが文字化けしている可能性がある。そのときは次のコマンドを試してみよう。メッセージが英語になる。
# export LC_MESSAGES=C
設定変更を確認する。
# locale
「LC_ALL=」が空になっていないとうまくいかない。次のようにすればLC_ALLの設定が消せる。
# export LC_ALL=
(4)rootユーザログイン
# login root
Password:[パスワード]
ログアウトするときは # exit 。
2.ファイルのダウンロード
以下のファイルが必要になるので、あらかじめIceweaselなどのブラウザでダウンロードして、/rootディレクトリに保存しておこう。コンソールモードからwgetコマンドでダウンロードすることもできる。
・dropbox-lnx.x86-0.7.110.tar.gz
・dbmakefakelib.py
・dbreadconfig.py
・dropbox.py
・dropboxdir.py
一番上のtar.gzファイルは、バージョンアップすると名前が変わる。
3.dropboxのtar.gz圧縮ファイルの解凍
以下の作業は、コンソールモードでrootユーザにログインしておこなう。Xウィンドウ上の端末でやると、自動的にXウィンドウ用の設定が作動してしまうようだ。
# cd
~# script
~# ls -a
~# tar zxof dropbox-lnx.x86-0.7.110.tar.gz
~# ls -a
cdコマンドでホームディレクトリに移動する。
scriptコマンドで作業のログをとる。同じディレクトリ /root にtypescriptというログファイルができる。scriptを終了させるときは exit 。
lsコマンドは、ここに書いた以外でも頻繁に使う。lsコマンドの表示を参照しながら作業をするとよい。aオプションをつけると、隠れディレクトリやファイルも表示される。
tarコマンドでtar.gzファイルを解凍すると、.drpbox-distというディレクトリができる。
4.Xウィンドウの偽装
DropboxにはXウィンドウが必要なので、コンソールモードでDropboxが動作するようにXウィンドウを偽装する。
~# python dbmakefakelib.py
dropbox ran for 15 seconds without quitting – success?
この表示が出た後いつまでたってもプロンプトが返らないので、適当に終了させる。[Ctrl]+[c] を2回押せばいい。dbmakefakelib.pyファイルのエラーが表示されるが、気にしなくてよい。fakelib.cと.dropboxができる。
5.ホストIDの表示
~# python dbreadconfig.py
host_id = [ホストID]
last_revision = None
root_ns = None
schema_version = 6
6.ホストIDでdropbox.comにアクセス
~# exit
exit
Script done, file is typescript
~# init 5
いったんscriptを終了してGUIモードに切り替えるのは、/root/typescriptファイルを開いてホストIDをコピーするためだ。そうしなくてもいいなら、この手順は必要ない。
GUIモードに切り替えたKNOPPIXのブラウザでも別のパソコンのブラウザでもいいので、次のアドレスからdropbox.comにアクセスする。
https://www.dropbox.com/cli_link?host_id=[ホストID]
すでにDropboxのアカウントがあるので、[Log in]のタブからEmailアドレスとパスワードを入力してログインする。これでrootユーザのdropboxプログラムからDropboxアカウントに接続できるようになった。
7.Dropboxディレクトリの共有
本来はここで /root にDropboxディレクトリを作るのだが、すでにknoppixユーザのDropboxディレクトリが /home/knoppix にあるので、共有することにしよう。下の –setfolder というところには、ハイフンが2つついている。
~# python dropboxdir.py –setfolder=/home/knoppix/Dropbox
current dropbox path:
new dropbox path: /home/knoppix/Dropbox
Dropboxディレクトリの置き場所に決まりはない。しかし、knoppixユーザのパーミッションに制限があるので、/home/knoppix に置くのがよさそうだ。
もしもDropboxディレクトリのバックアップをとっていなければ、念のためにディレクトリのコピーを作っておこう。
/home/knoppix$ cp -rp Dropbox Dropbox~
8.dropboxデーモンの起動
コンソールモードで次のようにdropboxのデーモンを起動する。
~# .dropbox-dist/dropboxd &
もしかしたらすでに別の経路でデーモンが起動しているかもしれない。その場合は次のコマンドでプロセスを確認し、デーモンを終了させる。
# ps aux | grep dropbox
# kill -9 [プロセス番号]
ふつうは次のコマンドでデーモンがコントロールできる。
~# python dropbox.py [オプション]
オプションについてはhelpオプションで確認できる。
~# python dropbox.py help
ところで、コンソールモードでは dropbox.py start が作動しない。エラーが出てプロンプトが返らなくなる。プロンプトは [Ctrl]+[z] と [Ctrl]+[c] で返る。Xウィンドウの端末で dropbox.py start を試すと、Nautilusの警告が出るものの、ふつうにGUIモードでDropboxが起動する。要するに、コンソールモードでdropboxのデーモンを起動するときだけは、dropbox.pyではなくdropboxdを使わなければならないようだ。
9.コマンドのショートカット
dropboxdのシンボリックリンクとdropbox.pyのコマンドを作って/usr/local/binに置く。そうすることでいくらか入力の手間がはぶけ、どこからでもコマンドが実行できるようになる。/usr/local/bin のかわりに /root/bin ディレクトリを作ってパスを通してもいい。
~# ln -s /root/.dropbox-dist/dropboxd /usr/local/bin/dropboxd
~# chmod +x dropbox.py
~# mv dropbox.py /usr/local/bin
新しいコマンドについて確認する。
# ls -l /usr/local/bin
# which dropboxd
# which dropbox.py
10.新しいコマンドの使い方
dropboxデーモンの起動とDropboxの同期
# dropboxd &
起動以外のdropboxの操作
# dropbox.py [オプション]
まとめ
今回のインストール方法では、dbmakefakelib.pyで作ったfakelib.cのおかげで、コンソールモードでDropboxの同期ができる。しかも、Xウィンドウ(LXDE)環境では、DropboxがGUIモードでふつうに動作する。
ということは、わざわざ2本立てでDropboxをインストールしなくても、はじめから今回の方法でknoppixユーザのDropboxをインストールするのがよさそうだ。その場合、コンソールモードでDropboxを操作するのにいちいちknoppixユーザでログインする必要はない。
不満があるとすれば、コンソールモードでdropboxのデーモンを起動するときにdropbox.pyコマンドが使えないところだ。Dropboxのすべての基本操作がdropbox.pyのオプションでできると操作がわかりやすくなるのだが。
参考
「GUIの無いLinux(CentOS)にDropboxをインストールする」(インフラメンコ 2009年05月05日)
How To Install Dropbox In An Entirely Text Based Linux Environment (wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall)

