遅ればせながらDropbox(Dropbox)、で、Linuxではどうすればいいのだろう。勿論サイトに Linux版もあるのだけど GUI操作が前提の様だ。コマンドラインだけの環境ではどうしたら良いのだろう。
この辺を参考にしてみた。
- http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall
- http://wiki.dropbox.com/TipsAndTricks/AlmostText-BasedLinuxInstall
Linux版の説明頁には Source からのインストールの項もあるのだけど結局 GUI操作が必要になる模様。
基本的な流れ
Dropboxのインストールは上記 GUI版では、オープンソース(GPL)のクライアントソフトをインストールする所から始まる。それが上記頁に挙げられているパッケージ。そしてその GUIクライアントの初回起動時に Web上のストレージとの同期を行うプロプライエタリなプログラムをダウンロードしてくる。という流れになってる模様。
GUI環境が無い場合の注意として、上記頁にはコマンドライン版(CLI)版の記述もある(What if I don't use Nautilus or X?、http://www.dropbox.com/download?dl=packages/dropbox.py)。上に挙げた Wiki に書かれた操作の一部をまとめたものの様だ。
全体的なこと
どうも全体的にみて、個人が一人で使うという想定の仕組みになっているような気がする。自動ダウンロードされるデーモンプログラム(やその補助類)、設定ファイルなんかはホームディレクトリ直下に配置される、.dropbox-dist, .dropbox とか。デーモンプログラムも上記 Pythonスクリプトでユーザ権限で実行する感じ。
まあ、ちょっとなんかすればマルチユーザで使う用のセッティングも出来るでしょう。
実行
- 上記 Pythonスクリプトをダウンロード
- http://www.dropbox.com/download?dl=packages/dropbox.py
- もうなんかホーム直下に置いとく
- 「python dropbox.py」
- 下記ずっとユーザ権限での実行
- コマンドのヘルプが返る、その示唆に従い
- 「python dropbox.py start」
- Dropboxデーモン入ってない、「-i」オプション付けたら、といわれる
- 「python dropbox.py start -i」
- プロプライエタリなもん持ってこなくちゃいけないけど、ときかれる
- 「python dropbox.py start」
- Starting Dropbox...Done!
- 「python dropbox.py status」
- Waiting to be linked to an account...
- ずっとかわらない
- 「python dropbox.py stop」
- 「sqlite3 .dropbox/dropbox.db 'SELECT * FROM config;'」
- なんか出てくる。host_id の値をメモる
- TextBasedLinuxInstall の示唆に従い host_id の値を Base64デコード
- どっか別のところから、普通のブラウザで下記にアクセス
- https://www.dropbox.com/cli_link?host_id=HOSTID
- HOSTID の所にそのデコードした値(の一部)
- 既に Dropbox使ってるマシンだとそっちが開いたりするので気を付ける。そのときはブラウザ変えたりマシン変えたりかな
- アカウントを訊かれたら登録済みのアカウントを答える
- そっちはもう忘れちゃっていい、けどまあ続き、Linux での接続を待ってもいいかな
- https://www.dropbox.com/cli_link?host_id=HOSTID
- 改めてインストール中の Linux で作業「mkdir Dropbox」
- ホーム直下に普通のディレクトリとして作成
- 「python dropbox.py start」
- Start した後同期が始まる、適宜 status を見るとか
こんな感じ、適宜「python dropbox.py stop」する。必要なら /etc/init.d スクリプトとか作って自働起動にしてもいいか。その辺のヒントやサンプルスクリプトも上記リンク先にあります。
同期相手の識別はインストール時に発行される一意の HOSTID を使っているという事でしょうね。その HOSTID と登録アカウントの対応付けを最初に行う、普通は GUIクライアントから行うのだけど、Webからブラウザでも出来るのでそうする。
dropbox.py のヘルプ
Dropbox command-line interface commands: status get current status of the dropboxd help provide help puburl get public url of a file in your dropbox stop stop dropboxd start start dropboxd filestatus get current sync status of one or more files ls list directory contents with current sync status