Posts Tagged ‘dropbox’

コンソールモードでDropbox

Friday, August 13th, 2010

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)


2010年8月13日


Dropboxの自動起動(autostart)

Tuesday, August 3rd, 2010

KNOPPIX 6.2
LXDE 0.4.2-1(デスクトップ)
dropbox.py(コマンド&インストーラ)
Dropbox v0.7.110

方法A: /home/knoppix/.config/lxsession/LXDE/autostart

1.dropboxコマンドのパスを確認

$ which dropbox

2.表題のLXDEディレクトリに、autostartという名前のファイルを作る。viでやってみよう。

~$ cd .config/lxsession/LXDE
~/.config/lxsession/LXDE$ vi autostart
i   (挿入モードに切り替え)
[Esc] (コマンドモードに切り替え)
:wq   (上書き保存で終了)

3.viでautostartファイルを作成すると空のautostartファイルが開くので、挿入モードに切り替えて、1で表示されたパスにstartオプションをつけたものを、たとえば次のように書き込む。

@/home/knoppix/bin/dropbox start

4.KNOPPIXを再起動すると、Dropboxが自動的に起動する。

方法B: home/knoppix/.config/autostart/dropbox.desktop

1.表題の.configディレクトリに、autostartというディレクトリを作る。

~$ cd .config
~/.config$ mkdir autostart

2.autostartの中に、dropbox.desktopというショートカットを作る。

~/.config$ cd autostart
~/.config/autostart$ lxshortcut -o dropbox.desktop

「名前」にdropbox.desktop、「コマンド」にdropboxのパスとstartオプションを入れる。たとえば/home/knoppix/bin/dropbox startと入れて、OKでよい。

3.KNOPPIXを再起動すると、Dropboxが自動的に起動する。

/etc/rc.localからDropboxが自動起動できなくて以上の方法にたどりついた。デスクトップのautostartの設定なら、起動スクリプトがほとんど1行も理解できないわたしでも直感的にわかる。

しかし、よく考えてみると、Dropboxが自動起動しなくてもさほど困ることはない。Dropboxの常駐を必要とするような使い方をしていないのだ。自動起動ができるとわかって満足したので、設定は無効にしておくことにする。ファイル名を少しでも変えれば動かなくなる。

~/.config/lxsession/LXDE$ mv autostart autostart~
~/.config/autostart$ mv dropbox.desktop dropbox.desktop~

Dropboxは必要なときにコマンドで起動することにしよう。

$ dropbox start

Dropboxの基本操作もコマンドでできる。

$ dropbox help


コンソールモードでのDropboxの起動は可能なのか?

Dropboxの通常の状態では、LXDEなどのXウィンドウを必要とするようだ。Dropboxが/etc/rc.localから自動起動できないのは、おそらくそのことが関係している。そこで気になるのは、Dropboxがコンソールモードでも起動できるのかということだ。

dropbox.pyでインストールしたDropboxは、ひょっとしたらコンソールモードで使えないのではないだろうか。Dropboxをrootでインストールしてコンソールモードで起動しようとしたところ、次のようなエラーが出た。

# init 2(ランレベル2 ([Ctrl]+) [Alt]+[F2])
# which dropbox
/root/bin/dropbox
# dropbox start
Starting Dropbox…Traceback(most recent call last):
File “/root/bin/dropbox”, line 821, in
main (sys_argv)
File “/root/bin/dropbox”, line 818, in main
return commands [argv[i]](argv[i+1:])
File “/root/bin/dropbox”, line 750, in start
if not start_dropbox():
File “/root/bin/dropbox”, line 502, instart_dropbox
stderr=sys.stderr, stdout=f, close_fds=True)
File “/usr/lib/python2.5/subprocess.py”, line 594, in __init__
errread, errwrite)
File “/usr/lib/python2.5/subprocess.py”, line 1153, in_execute_child
raise child_exception
OSError: [Errno 2] No such file or directory:”
# init 5(Xウィンドウ ([Ctrl]+) [Alt]+[F5])

コンソールモードというのは、サーバを管理しているわけではないユーザにとっても、いざというときにたいへん頼りになるものだ。たとえば、Xウィンドウが起動しなくてもコンソールモードで対処できるかもしれない。もっと日常的には、SSHでリモート接続をして遊ぶこともできる。コンソールモードでDropboxが起動できないか、もう少し調べてみたい。


参考

「 DebianのLXDEにDropboxクライアント」(クリックPAPAのPC備忘録 2009年7月6日)
「自動起動 (autostart)」(るるる〜るぶんつ 2010年5月29日)


2010年8月3日


KNOPPIX6.2でDropbox

Saturday, July 31st, 2010

なくてはならないDropbox

ThinkpadX40にKNOPPIX6.2をインストールしてから、まずトラックポイントの中ボタンスクロールを設定した。次にFlashplayerをインストールした。3番目にやったのが、Dropboxのインストールだ。

Dropboxというのは、複数のパソコンやOSのあいだで同一のフォルダを共有できるツールだ。一つのパソコンでDropboxのフォルダに何か変更を加えると、インターネットに接続を通じてほかのパソコンのDropboxフォルダが同期される。

たとえば職場と自宅で同じファイルを使って作業している場合、両方のパソコンにDropboxをインストールしておけば、そのファイルをノートパソコンやUSBメモリで持ち運ぶ必要がなくなる。職場のパソコン[1]のDropboxフォルダに保存したファイルは、自宅のパソコンのDropboxフォルダから取り出すことができる。インターネットに接続している自分のパソコンであれば、どのパソコンでも同じファイルの入ったDropboxフォルダを開くことができるのだ。さらに、dropbox.comにアクセスすれば、Dropboxがインストールされていないパソコンからでも自分のDropboxフォルダを開くことができる。

WindowsパソコンでのDropboxのインストールと使い方は、ほとんど直感的にできる。アカウントを作ると、無料で2GBのフォルダが使えるようになる。ほかのユーザからの紹介で登録した場合は、250MB容量を増やしてもらえる。紹介したユーザの容量も増える。下のリンクはわたしからの紹介だ。まだ使っていない人がいたら、ここからアカウントを作ってDropboxをインストールしてみませんか。

Welcome to Dropbox!


リンクからDropboxをインストールしてくださった方、ありがとうございました。Happy syncing! (追記 2010年8月9日)

KNOPPIXにDropboxをインストール


以下の記述については、修正しなくてはならない箇所が多いので、次回の記事で簡潔にまとめ直すことにしたい。(追記 2010年8月2日)

DropboxにはLinux版もある。UbuntuとFedoraなら、専用のインストールファイルがあるので簡単そうだ。KNOPPIXでは、多少手間はかかったが、以下のようにインストールすることができた。

1.dropbox.pyのダウンロード

~$ wget –no-check-certificate https://www.dropbox.com/download?dl=packages/dropbox.py

かならずしもwgetコマンドでダウンロードしなければならないわけではない。とにかくdropbox.pyをダウンロードすればよい。検索すればdropbox.comで見つかる。同じような機能で別の名前のついたpyファイルを試してみるのもいいかもしれない。ともかくdropbox.pyをダウンロードして、ホームディレクトリ/home/knoppixに保存した。

2.dropbox.pyの属性変更

~$ chmod 755 dropbox.py

dropbox.pyをdropboxコマンドとして使うために、実行可能にした。下のlsコマンドでchmodコマンド前後での属性の変化を確認しておくとよい。

~$ ls -l dropbox.py

3.dropbox.pyをdropboxコマンドに変更 [修正a]

~$ su
~# mv dropbox.py /usr/local/bin/dropbox

ホームディレクトリのdropbox.pyファイルを/usr/local/binディレクトリへ移動し、さらにファイル名をdropboxに変更している。これがdropboxコマンドだ。保存場所は、必ずしも/usr/local/binである必要はない。コマンドのオプションを確認しておこう。

~$ dropbox help

4.Dropboxのインストール

~$ dropbox start -i

これで小さなポップアップが開き、OKをクリックすると自動的にDropboxがダウンロードされて、下のような「Welcome to Dropbox」の画面が出る。

すでにDropboxのアカウントがあるものとしよう。次の画面では、登録したEmailアドレスとパスワードを入れる。次に2GB Freeを選ぶ。最終的に「That’s It!」の画面になるので、「I want to choose where to put my Dropbox folder」を選んで、Dropboxフォルダの保存場所を確認する。デフォルトで/home/knoppix/Dropboxになっていたので、OKで完了した。

いつのまにかインストールされたGNOMEのファイルマネージャNautilus 2.28.1が起動する。もしかすると端末にNautilus関連のエラーが出るかもしれないが、気にしなくてよい。端末のプロンプトは[Ctrl]+[c]で返ってくる。しばらく様子を見るつもりだが、NautilusはKNOPPIXの標準のアプリケーションではないので、慎重に扱った方がいい。ただでさえNautilusは重くて評判が悪い。端末からDropboxフォルダを操作するのにこしたことはない。Nautilusをアンインストールして、かわりにPCManファイルマネージャをNautilusのリンクをつけて使うという方法もあるようだが、PCManではDropboxの右クリックメニューが出ないかもしれない。

5.Dropboxの自動起動 [修正b]

# vi /etc/rc.local

viなどで/etc/rc.localファイルを編集し、末尾に次の一行を追加する。

/usr/local/bin/dropbox start

dropbox startだけでも動くはずだが、rc.localファイルにはコマンドのフルパスを書いておいた方がよろしいらしい。dropboxコマンドの保存場所によっては、行頭にsudoを付け足す必要がある。

以上の方法なら、たいていのDebian系のLinuxOSでも同じようにできそうだ。あらかじめpythonがインストールされていることを確認されたい。


^  職場のパソコン
職場のパソコンもさまざまだろうが、わたしの職場では、管理者の権限を侵さないかぎりで、自分のアカウントのカスタマイズが黙認されている。WindowsのパソコンでProgram Filesにアプリケーションをインストールするためには管理者の権限が必要だが、Dropboxはマイドキュメントみたいなところにもインストールできるのだ。ただし、管理者がその気になればパスワードなどを調べることもできるはずなので、あまり人に見られたくないものや重要なものを置くわけにはいかない。



修正点

KNOPPIXを再起動したら、Dropboxの様子が変化していた。

a^  ホームディレクトリにbinというディレクトリができて、その中にdropboxコマンドができている。下のようにパスが確認されたので、はじめに作った/usr/local/binのdropboxコマンドの方は削除してもだいじょうぶだ。

$ which dropbox
 
/home/knoppix/bin/dropbox

つまり、はじめから/home/knoppix/bin/dropboxを作るのがのぞましい。実は参考にした記事ではそうしていたのだが、ホームディレクトリにパスを通していいものか迷ってそうしなかった。

さらにホームディレクトリの隠しファイルを表示すると、.dropboxとか.dropbox-distとかいうディレクトリができている。何度か探したときにはたしかに存在しなかったのに、いつできたのだろう。

~$ ls -a

b^  このままでは自動起動もしないので、dropboxコマンドの新しいパスに合わせて、/etc/rc.localファイルを訂正しなくてはならない。

# vi /etc/rc.local
……
/home/knoppix/bin/dropbox start


* 自動起動については、パスを修正してもうまくいかないので、再検討しなければならない。(追記 2010年8月2日)



参考サイト


Dropbox for Linux
Dropbox Forums

dropbox.comi以外にもさまざまなサイトの記事を参考にした結果、この記事で紹介しているようなやり方になった。どこかにまったく同じ方法が書かれていたわけではない。したがって、おかしなことをやっている部分がほかにもあるかもしれない。参考にする人は気をつけてください。


2010年7月31日