Dropbox
関連記事
Dropbox はファイル共有システムであり、最近 GNU/Linux クライアントが用意されました。コンピュータやアーキテクチャを越えて透過的にファイルを共有することができます。~/Dropbox
フォルダにファイルを配置すれば、自動的に中央リポジトリに同期されます。
目次
インストール
dropboxAUR は AUR からインストールできます。また、dropbox-experimentalAUR[リンク切れ: パッケージが存在しません] でもインストール可能です。また、Dropbox のウェブサイトには コマンドラインによるヘッドレスインストール の方法の説明があります。
- パッケージをインストールした後、コマンドラインから
dropbox
を実行したりアプリケーションメニューから Dropbox を起動することができます。システムトレイにクライアントのアイコンが表示されます。 - "Dropbox is running from an unsupported location" というポップアップの通知が出ます。今後表示しないをクリックしてください。公式ホームページではなく AUR からインストールしたことはわかっていることだからです。
- そして Dropbox アカウントにログインするか新しいアカウントを作成するか聞いてくるポップアップが出ます。登録した情報を入力してください。
- 多少時間がたってから "Dropbox へようこそ" ポップアップが表示され、Dropbox の簡単なツアーを見ることができます。
- "Finish and go to My Dropbox" を押して下さい。
任意のパッケージ
- コマンドラインインターフェイスは、AUR から dropbox-cliAUR をインストール。
- Nautilus との統合は、AUR から nautilus-dropboxAUR をインストール。Nautilus プラグインが自動的に Dropbox を起動します。
- Nemo との統合は、AUR から nemo-dropboxAUR をインストール。
- Thunar との統合は、AUR から thunar-dropboxAUR をインストール。
- Dolphin との統合は、dolphin-plugins をインストール。
- KDE ユーザーのための KDE クライアントが存在します: AUR の kfileboxAUR。
- Caja との統合は、AUR から caja-dropboxAUR をインストール。
Dropbox を自動で起動させる
インストールしたら、Dropbox は手動で起動させるように設定することを推奨します。Dropbox の設定を開いて、"General" タブの下にある "Start Dropbox on system startup" チェックボックスを見て下さい。このボックスにチェックを入れて Dropbox が自動的に起動するか確認してください。
自動で起動しない場合、ボックスのチェックを外して以下の方法を使って下さい:
WM/DE で起動
KDE ユーザーならば、インストールした後の設定は必要ありません (AUR から上記の dropboxAUR パッケージをインストールするだけで十分です)。KDE はログアウト時に実行中のアプリケーションを保存して自動的に再起動するからです。Xfce ユーザーも同じように、~/.config/autostart
に dropbox.desktop
ファイルが配置されるため、次回のログイン時に自動的に dropbox が再起動します。
Cinnamon ユーザーの場合、スタートアップアプリケーションを設定して少し時間を置いてから Dropbox クライアントを起動するように設定することを推奨します (Cinnamon issue #4396)。 systemd を使ってバックグラウンドで dropbox を起動する方法も上手くいきますが、Cinnamon のバグが原因でシステムトレイにアイコンは表示されません (#481, #2846)。
それで起動しない場合、xinitrc (もしくは ~/.config/openbox/autostart
) に /usr/bin/dropbox &
を追加することで、ウィンドウマネージャと一緒に Dropbox の同期クライアントを起動させることができます。
systemd でブート時に起動
システムの起動時に Dropbox を自動的に起動させるには、ユーザー名を instance identifier に指定して systemd サービスを有効化してください:
# systemctl enable dropbox@username
デフォルトでは、サービスを実行してもシステムトレイにアイコンは表示されません。使用する X ディスプレイがわからないためです。トレイアイコンを使いたい場合は、元のサービスを編集する必要があります:
# systemctl edit dropbox@username
[Service] Environment=DISPLAY=:0
systemd でログイン時に起動
ログイン時に Dropbox を自動的に起動させるには、ユーザーサービスを有効化してください:
$ systemctl --user enable dropbox
システムトレイに Dropbox を表示させたい場合、サービスユニットを編集してシステムトレイを表示する X ディスプレイを指定する必要があります:
$ systemctl --user edit dropbox
[Service] Environment=DISPLAY=:0
同期クライアントをインストールせずにファイルにアクセス
Dropbox のファイルへの基本的なアクセスだけが必要な場合は、https://www.dropbox.com/ のウェブインターフェイスを使って Dropbox にファイルをアップロードまたはダウンロードできます。これは Dropbox デーモンを実行してマシンの全てのファイルをミラーする代わりの手段に十分なり得ます。
また、AUR の droxiAUR パッケージには GNU の ftp
クライアントに似た Dropbox のコマンドラインインターフェイスが入っています。
Dropbox のセキュア化
Dropbox に重要なデータを保存する場合、保存する前に暗号化を施すと良いでしょう。Dropbox との同期は暗号化されていますが、(今のところ) サーバー上のファイルは全て暗号化されない状態で置かれます。
- Dropbox で TrueCrypt を使用する、最初に Dropbox に TrueCrypt ボリュームをアップロードします。パフォーマンスは問題ありません、Dropbox はバイナリ差分を保持するためです。
- もしくは EncFS を使うこともできます。全てのファイルを別々に暗号化できるという利点があります。暗号化したいコンテンツのサイズを予め決めておく必要はなく、暗号化ディレクトリのファイルを追加・削除・修正すればそのとおりにディレクトリは大きくなったり小さくなったりします。また、
encfs
の-S
オプションを使うことでパスフレーズを入力する必要なく起動時に暗号化ボリュームをマウントすることができます。ただしあなたのコンピュータに直接アクセスできる人からは暗号化ファイルが安全でなくなってしまうので注意してください。
- 3番目の選択肢は gocryptfs です。EncFS と似ていますが、gocryptfs は AES-GCM による暗号化でデータの機密性と完全性 (耐タンパ性) の両方を保護します。もともと gocryptfs は EncFS の セキュリティ上の問題 を解決するために作られました。詳しくは プロジェクトのウェブサイト を参照してください。
Dropbox で EncFS をセットアップ
Wiki の手順に従って EncFS をインストールしてください。
ここでは Dropbox ディレクトリを ~/Dropbox
として仮定します:
フォルダを作成してください。Dropbox に同期したいファイルはここに置きます。
$ mkdir ~/Private
次のコマンドを実行してパスワードを入力してください:
$ encfs ~/Dropbox/Encrypted ~/Private
これでセキュアフォルダの準備が整いました。~/Private
の中にファイルを作成すると自動的に暗号化されて ~/Dropbox/Encrypted
に置かれ、そしてクラウドストレージと同期されます。
起動時に EncFS フォルダをマウントするには、EncFS の wiki ページの手順に従って下さい。
複数の Dropbox インスタンス
データを分割・区別する必要がある場合、例えば個人用と仕事用に分けたいときは、別のメールアドレスで Dropbox にアカウントを作って複数のディレクトリを別々のインスタンスに同期させることが可能です。
基本的な仕組みと方法は Dropbox Wiki で説明されています。
まとめると、以下によって新しい追加のインスタンスを設定できます:
mkdir /path/to/.dropbox-alt-1 HOME=/path/to/.dropbox-alt-1 /usr/bin/dropbox start -i
設定したら、動作中の Dropbox インスタンスを停止してから以下のようにして起動して下さい:
HOME=/path/to/.dropbox-alt-1 /path/to/.dropbox-alt-1/.dropbox-dist/dropboxd HOME=/path/to/.dropbox-alt-2 /path/to/.dropbox-alt-2/.dropbox-dist/dropboxd
別々の .../.dropbox-dist/dropboxd
バイナリを使用することに注意してください。HOME の値をカスタムする場合でも、/opt/dropbox/dropbox
や /opt/dropbox/dropboxd
ラッパーは一つのインスタンスしか許可しないので、起動すると既に動作しているインスタンスが強制的に終了されます。
ノートパソコンで Dropbox
Dropbox は接続の問題に対して上手く対処をします。ノートパソコンを使っていて複数のネットワーク環境を移り歩く場合、Dropbox を再起動しないと再接続の問題が起こることがあります。まずは以下の方法のどれかを試して下さい。それでも問題が解決しないときは、ハッカーっぽい解決方法を試してみて下さい: [1], [2]。
netctl を使う
netctl の場合、使用しているネットワークプロファイルで ExecUpPost
と ExecDownPre
を使うか、/etc/netctl/interfaces/wlan0
の中などで wlan0
のプロファイルがアクティブになっているときは自動的に Dropbox を起動するようにしてください。'|| true' をコマンドに追加すれば Dropbox の起動が失敗しても netctl がプロファイルをかならず立ち上げるようになります。
ExecUpPost="any other code; su -c 'DISPLAY=:0 /usr/bin/dropbox &' your_user || true" ExecDownPre="any other code; killall dropbox"
もちろん、your_user
は修正する必要があり、もし要らないのであれば any other code;
は省けます。上記はアクティブなネットワークプロファイルがあるときだけ Dropbox が実行しているか確認します。
wicd を使う
/etc/wicd/scripts/postconnect/dropbox
を作成:
#!/usr/bin/env bash su -c 'DISPLAY=:0 /usr/bin/dbus-launch dropbox &' your_username
または、systemd で dropbox を使っている場合:
#!/usr/bin/env bash systemctl restart dropbox@<user>
/etc/wicd/scripts/postdisconnect/dropbox
を作成:
#!/usr/bin/env bash killall dropbox
または、systemd で dropbox を使っている場合:
#!/usr/bin/env bash systemctl stop dropbox@<user>
作成したスクリプトには実行可能権限を付与してください。
トラブルシューティング
Dropbox がファイルのダウンロード中と表示し続ける
実際はファイルはあなたのボックスに同期されています。この問題は Dropbox フォルダが NTFS パーティションに存在していて、パーティションのマウントパスに空白が入っていたり、パーミッションが設定されていないときに発生します。詳しくはフォーラムを参照してください。この問題を解決するには、/etc/fstab
のエントリをよく見て下さい。マウントパスに空白が入ってないか、"default_permissions" オプションで書き込み権限が設定されているか確認してください:
UUID=01CD2ABB65E17DE0 /run/media/username/Windows ntfs-3g uid=username,gid=users,default_permissions 0 0
インストールウィザードから Dropbox の場所を変更する
Dropbox の設定中に /home/username/Dropbox
以外のフォルダを Dropbox フォルダに選択できないという問題に出くわすことがあります。このような場合には、パスを変更するウィンドウが表示されたときに、Ctrl+l
を押して、場所を入力して (例: /mnt/data/Dropbox
) それから "Choose" もしくは "Open" ボタンをクリックしてください。
ファイルマネージャのコンテキストメニューエントリが動作しない
Thunar や Nautilus、またはそのフォークである Nemo などのファイルマネージャには Dropbox の中のファイルやフォルダのコンテキストメニューエントリを提供する拡張があります。それらは大抵 dropbox.com でファイルやフォルダを開いたり、リンクを共有したりするブラウザアクションになります。そうしたエントリが動作しない場合、おそらく Dropbox が必要な $BROWSER
変数が設定されていません。詳しくは環境変数を見て下さい。
接続中...
インターネット接続が確立する前に Dropbox がロードされてしまい Dropbox の接続が上手く行かないことがあります。この問題はワイヤレス接続や、ロードが速いマシンでの有線接続で発生します。この問題の一番良い解決方法は、有線・無線の接続を問わず、#ノートパソコンで Dropbox のように接続が確立した後に Dropbox が起動するようにすることです。
netctl や NetworkManager を使ってないユーザーには、dropbox の起動を遅延させるという方法もあります:
cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/dropbox-delayed.desktop
- Dropbox - Preferences - General - Start Dropbox on system startup のチェックを外して dropbox が通常の自動起動を行わないようにしてください。これを設定すると
~/.config/autostart/dropbox.desktop
が削除されます。 ~/.config/autostart/dropbox-delayed.desktop
を編集してExec=dropbox
をExec=bash -c "sleep timeout && dropbox"
で置き換えて下さい。timeout パラメータは適当に調整してください、初めは3
で試してみると良いでしょう。
Dropbox が起動しない - "通常このエラーは権限エラーが原因で発生します"
パーミッションの確認
アプリケーションを実行する前に Dropbox のディレクトリの所有者があなたになっているか確認してください。Dropbox のディレクトリとは:
~/.dropbox
- Dropbox の設定ディレクトリ~/Dropbox
- Dropbox のダウンロードディレクトリ (デフォルト)
chown -R
で所有者を変更することで確実にすることができます。
このエラーは /var
が満杯になっているときも発生することがあります。
アカウントの再リンク
Dropbox's FAQ によればこのエラーは設定の間違いによるものであり、現在の設定フォルダを削除して:
# mv ~/.dropbox ~/.dropbox.old
Dropbox を再起動することで修正できます。
容量不足によるエラー
/tmp
や /var
パーティションの容量が足りなくなると起こることがあるエラーです。この問題が発生した場合、Dropbox は起動時にクラッシュしてログに以下のエラーが残ります:
Exception: Not a valid FileCache file
詳しい話はフォーラムにあります。Dropbox を起動する前に十分な容量があるか確認してください。
他のケースとして root パーティションが満杯になっている可能性もあります:
OperationalError: database or disk is full
df
でパーティションの空き容量を見て下さい。
ロケールによるエラー
以下のコードで dropbox
を起動してみて下さい (LANG には別の値を使うこともできますが、"en_US.UTF-8" という形式である必要があります):
LANG=$LOCALE dropboxd
/etc/rc.d/functions
がロードされる Bash スクリプトや Bash シェルから実行することで機能します。
ファイルシステムの監視の問題
同期したいファイルを Dropbox フォルダにあまり多く置き過ぎると、以下のエラーが表示されることがあります:
Unable to monitor filesystem Please run: echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches and restart Dropbox to correct the problem.
このエラーは /etc/sysctl.d/99-sysctl.conf
に次を追加して:
fs.inotify.max_user_watches = 100000
カーネルパラメータをリロードすることで簡単に直せます:
# sysctl --system
プロクシー設定
Dropbox のプロクシーを設定する一番簡単な方法は Preferences ウィンドウの Proxies タブでプロクシーを手動で定義することです。もしくは、設定を 'Auto-detect' にして Dropbox を起動する前に http_proxy env 変数にプロクシーサーバーを export することも可能です (HTTP_PROXY も利用できます):
env http_proxy=http://your.proxy.here:port /usr/bin/dropbox
もしくは
export http_proxy=http://your.proxy.here:port /usr/bin/dropbox
自動アップデートを停止させるハック
rm -rf ~/.dropbox-dist install -dm0 ~/.dropbox-dist