Dropbox

提供: ArchWiki
移動先: 案内検索

Dropbox はファイル共有システムであり、最近 GNU/Linux クライアントが用意されました。コンピュータやアーキテクチャを越えて透過的にファイルを共有することができます。~/Dropbox フォルダにファイルを配置すれば、自動的に中央リポジトリに同期されます。

インストール

dropboxAURAUR からインストールできます。また、dropbox-experimentalAUR でもインストール可能です。また、Dropbox のウェブサイトには コマンドラインによるヘッドレスインストール の方法の説明があります。

  1. パッケージをインストールした後、コマンドラインから dropbox を実行したりアプリケーションメニューから Dropbox を起動することができます。システムトレイにクライアントのアイコンが表示されます。
  2. "Dropbox is running from an unsupported location" というポップアップの通知が出ます。今後表示しないをクリックしてください。公式ホームページではなく AUR からインストールしたことはわかっていることだからです。
  3. そして Dropbox アカウントにログインするか新しいアカウントを作成するか聞いてくるポップアップが出ます。登録した情報を入力してください。
  4. 多少時間がたってから "Dropbox へようこそ" ポップアップが表示され、Dropbox の簡単なツアーを見ることができます。
  5. "Finish and go to My Dropbox" を押して下さい。

任意のパッケージ

  • コマンドラインインターフェイスは、AUR から dropbox-cliAUR をインストール。
  • Nautilus との統合は、AUR から nautilus-dropboxAUR をインストール。Nautilus プラグインが自動的に Dropbox を起動します。
  • Nemo との統合は、AUR から nemo-dropbox-gitAUR をインストール。
  • Thunar との統合は、AUR から thunar-dropboxAUR をインストール。
  • KDE ユーザーのための、KDE クライアントが存在します: AUR の kfileboxAUR

Dropbox を自動で起動させる

インストールしたら、Dropbox は手動で起動させるように設定することを推奨します。Dropbox の設定を開いて、"General" タブの下にある "Start Dropbox on system startup" チェックボックスを見て下さい。このボックスにチェックを入れて Dropbox が自動的に起動するか確認してください。

自動で起動しない場合、ボックスのチェックを外して以下の方法を使って下さい:

WM/DE で起動

KDE ユーザーならば、インストールした後の設定は必要ありません (AUR から上記の dropboxAUR パッケージをインストールするだけで十分です)。KDE はログアウト時に実行中のアプリケーションを保存して自動的に再起動するからです。Xfce ユーザーも同じように、~/.config/autostartdropbox.desktop ファイルが配置されるため、次回のログイン時に自動的に dropbox が再起動します。

それで起動しない場合、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 デーモンを実行してマシンの全てのファイルをミラーする代わりの手段に十分なり得ます。

また、AURdroxiAUR パッケージには GNU の ftp クライアントに似た Dropbox のコマンドラインインターフェイスが入っています。

Dropbox のセキュア化

Dropbox に重要なデータを保存する場合、保存する前に暗号化を施すと良いでしょう。Dropbox との同期は暗号化されていますが、(今のところ) サーバー上のファイルは全て暗号化されない状態で置かれます。

  • Dropbox で TrueCrypt を使用する、最初に Dropbox に TrueCrypt ボリュームをアップロードします。パフォーマンスは問題ありません、Dropbox はバイナリ差分を保持するためです。
  • もしくは EncFS を使うこともできます。全てのファイルを別々に暗号化できるという利点があります。暗号化したいコンテンツのサイズを予め決めておく必要はなく、暗号化ディレクトリのファイルを追加・削除・修正すればそのとおりにディレクトリは大きくなったり小さくなったりします。また、encfs-S オプションを使うことでパスフレーズを入力する必要なく起動時に暗号化ボリュームをマウントすることができます。ただしあなたのコンピュータに直接アクセスできる人からは暗号化ファイルが安全でなくなってしまうので注意してください。

Dropbox で EncFS をセットアップ

Wiki の手順に従って EncFS をインストールしてください。

ここでは Dropbox ディレクトリを ~/Dropbox として仮定します:

フォルダを作成してください。Dropbox に同期したいファイルはここに置きます。

$ mkdir ~/Private

次のコマンドを実行してパスワードを入力してください:

$ encfs ~/Dropbox/Encrypted ~/Private

これでセキュアフォルダの準備が整いました。~/Private の中にファイルを作成すると自動的に暗号化されて ~/Dropbox/Encrypted に置かれ、そしてクラウドストレージと同期されます。

起動時に EncFS フォルダをマウントするには、EncFS の wiki ページの手順に従って下さい。

ヒント: ENCFS6_CONFIG 変数を使用して .encfs6.xml ファイルをどこか別のところ (USB スティックなど) に移動することで、暗号化されたデータと復号化する手段を同時には存在しないようにすることができます。

複数の 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]

ノート: When using any of these methods, you need to prevent Dropbox from doing a standard autostart by unchecking Dropbox - Preferences - General - Start Dropbox on system startup. This prevents Dropbox from creating the ~/.config/autostart/dropbox.desktop file and thus from starting twice.

netctl を使う

netctl の場合、使用しているネットワークプロファイルで ExecUpPostExecDownPre を使うか、/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 が実行しているか確認します。

NetworkManager を使う

NetworkManager で接続の問題が発生する場合は、dispatcher スクリプトを使ってみて下さい: networkmanager-dispatcher-dropboxAUR もしくは networkmanager-dispatcher-dropbox-systemdAUR

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>
ノート: ファイルマネージャとして PCManFM を使っている場合、Dropbox は 'xdg-open' を使って pcmanfm を呼び出し Dropbox フォルダを開きます。しかしながら、dbus セッションがないと、PCManFM でゴミ箱が使えません。D-Bus一般的なトラブルシューティング#セッションのパーミッションを参照して /etc/skel/.xinitrc に基づいて ~/.xinitrc を編集し、~/.xinitrc で他のプログラムを起動する前に D-Bus セッションを起動してください。wicd の postconnect スクリプトでは 'dropbox' の代わりに 'dbus-launch dropbox' を使います。そうしないと dropbox アイコンをクリックして起動した pcmanfm でゴミ箱が使えません。

トラブルシューティング

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=dropboxExec=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=$LOCALE
dropboxd

(You can also use a different value for LANG; it must be in the format "en_US.UTF-8") This helps when running from a Bash script or Bash shell where /etc/rc.d/functions has been loaded

ファイルシステムの監視の問題

同期したいファイルを 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
ノート: Dropbox will only use proxy settings of the form http://your.proxy.here:port, not your.proxy.here:port as some other applications do.

自動アップデートを停止させるハック

rm -rf ~/.dropbox-dist
install -dm0 ~/.dropbox-dist