昨日の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みたいなので、あとはどうにかなりそう。
- p5-WebService-Dropbox-master (1.15)
- 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 さんに感謝です。