dropbox-api-command アップデート

昨日のCVSupからportsnap への以降で、ようやくFreeBSDサーバーの /usr/ports 自動メンテナンスを再開出来たので、課題となっている dropbox-api-command アップデートを行いたいと考えていたが、まだ net/dropbox-api-command の最新版(1.09)が portsnap サーバーに反映されていないようで、portupgrade コマンドによる自動更新が行えない。

せっかく作者の方からアップデートしたという連絡を頂いているのに放置せざるを得ない状況は悲しいので、dropbox-api-command と p5-WebService-Dropbox だけ手動で更新してみることにした。とはいえ、perl で動くコマンドとモジュールを portupgrade や pkg_add などのシステムに準備されているコマンド以外でインストールするのは初めての体験。最初は、CPANコマンドメンテナンス出来るのかと思ったが、残念ながらよくわからなかった。少なくとも dropbox-api コマンドは /usr/local/bin にインストールされるので、/usr/local/lib/perl5 以下じゃないロケーションまで CPANで管理出来るものなのかどうか調べる段階で諦めてしまった。

やむえず github.com から直接ソースをダウンロードしてインストールする方法を採ることにした。
dropbox-api-command-master と p5-WebService-Dropbox-master のzipファイルを二つダウンロードして展開する。解凍されたmasterディレクトリの中を見てもMakefile が存在せず Makefile.PL が存在していて、次に何をすればいいの?って感じ。Makefile.PL はperl で書かれているようだし、検索もしてみたところ、「perl Makefile.PL」で次のステップに進めそうなので、

perl Makefile.PL

とやってみたら、無事にMakefile が出来上がった。Makefile の中身を見てみると、通常のMakefileみたいなので、あとはどうにかなりそう。

  1. p5-WebService-Dropbox-master (1.15)
  2. dropbox-api-command-master (1.09)

の順番に、ディレクトリ下で make install を実行したところ、必要なファイルがコピーされたようだ。 dropbox-api help と実行してみると、新しく追加されたオプションが表示される。

> dropbox-api help

Usage: dropbox-api <command> [args] [options]

Available commands:
 setup get access_key and access_secret
 ls list directory contents
 find walk a file hierarchy
 cp copy file or directory
 mv move file or directory
 mkdir make directory (Create intermediate directories as required)
 rm remove file or directory (Attempt to remove the file hierarchy rooted in each file argument)
 put upload file
 get download file
 sync sync directory (local => dropbox or dropbox => local)
 uid get accound uid

Common Options
 -e enable env_proxy ( HTTP_PROXY, NO_PROXY )
 -D enable debug

See 'dropbox-api help <command>' for more information on a specific command.

次はテスト。

環境変数 HTTP_PROXY を設定して、-e オプションを付加すると、Proxyサーバーを使っての転送に成功。Proxyサーバーが使えるようになって、dropbox-api を使っているマシンの負荷を軽減出来るのはうれしい。しかし、HTTP Proxyを使うと、再び、

*******************************************************************
 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
 is depreciated! Please set SSL_verify_mode to SSL_VERIFY_PEER
 together with SSL_ca_file|SSL_ca_path for verification.
 If you really don't want to verify the certificate and keep the
 connection open to Man-In-The-Middle attacks please set
 SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
 at /usr/local/lib/perl5/site_perl/5.12.4/Furl/HTTP.pm line 620

というメッセージが表示されてしまうようになった。転送には影響せず、メッセージが目立つだけ。プロキシーを使うオプションを使わなければ、メッセージは表示されないし、元々私の使い方ではSSL自体必要ないので、こういう現象が観察されているということにとどめておきます。

続いて、Dropboxサーバー上でフォルダー名を大文字から小文字に変更した場合に、ローカルディスクとの同期が終了した後、そのフォルダーの中身を消されてしまう問題。これは解決されていました。

大きなファイルを転送した場合の、安定性が悪い件に関しては、現時点では判断出来ていません。本日 dropbox-api コマンドを更新した一台のサーバーでは、現時点では転送が中断される現象は発生していませんが、「unexpected EOF」が発生しやすいホストでは、今後同期を十分な回数行い、観察してみたいと考えています。

Aska さんに感謝です。

コメントを残す