Dropbox (日本語) - ArchWiki

# Dropbox (日本語)

関連記事

- バックアッププログラム

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

## インストール

dropbox は AUR からインストールできます。また、dropbox-experimental でもインストール可能です。

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

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

### 任意のパッケージ

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

### Dropbox を自動的に起動する

`dropboxd` を `~/.xinitrc` (または `~/.config/openbox/autostart` など) に追加することで Dropbox を自動的に起動することができます。また、デーモンとして起動することも可能です。

## 別のインストール方法

Dropbox のファイルへの基本的なアクセスだけが必要な場合は、https://www.dropbox.com/ のウェブインターフェイスを使って Dropbox にファイルをアップロードまたはダウンロードできます。これは Dropbox デーモンを実行してマシンの全てのファイルをミラーする代わりの手段に十分なり得ます。

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

## systemd でデーモンとして起動

最近のバージョンの Dropbox には systemd のサービスファイルが付いています。デフォルトでは Dropbox をデーモンとして実行した場合、システムトレイにアイコンは表示されませんが、バックグラウンドでファイルとフォルダの同期が行われます。トレイのサポートが必要なときは、`/etc/systemd/system/dropbox@.service` を作成して既存のサービスファイルを上書きして環境変数 `DISPLAY` を指定して下さい:

    /etc/systemd/system/dropbox@.service

    .include /usr/lib/systemd/system/dropbox@.service
    [Service]
    Environment=DISPLAY=:0

そして、ログイン時に起動するようにユーザーのデーモンを有効にしてください:

    # systemctl enable dropbox@<user>

インストールした後は最初に Dropbox を手動で起動して、ログイン・セットアップ画面を出す必要があります。さらに、Dropbox が二回起動しないように Start Dropbox on system startup オプションのチェックを外して下さい。後でデーモンを使うことができます。

### systemd ユーザーでデーモンとして実行

systemd/User の wiki ページのとおりにしている場合、ログイン時や WM/DE を起動した時にだけ dropbox を起動したいと思うことがあるかもしれません。この場合の解決方法はシステム管理者アカウントを使うのではなくホームディレクトリにサービスを作成することです:

    $HOME/.config/systemd/user/dropbox@.service

    [Unit]
    Description=Dropbox as a systemd service
    After=xorg.target

    [Service]
    ExecStart=/home/<user>/.dropbox-dist/dropboxd
    ExecReload=/bin/kill -HUP $MAINPID
    Environment=DISPLAY=%i

    [Install]
    WantedBy=default.target

そして次のコマンドで起動または有効化できます:

    $ systemctl --user {start|enable} dropbox@:0.service

これでハードコードすることなく、簡単にメインディスプレイ (:0 など) やその他のディスプレイで簡単に起動することができます。

Note: After a lot of trial and error I found that using `/usr/bin/dropboxd` didn't start the service and it didn't show any error either (even when running it directly from the terminal worked fine). I believe it has to do that starting it that way systemd doesn't know which user is actually running the daemon.

## 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 ページの手順に従って下さい。

Tip: `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]。

Note: 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 の場合、使用しているネットワークプロファイルで `ExecUpPost` と `ExecDownPre` を使うか、`/etc/netctl/interfaces/wlan0` の中などで `wlan0` のプロファイルがアクティブになっているときは自動的に Dropbox を起動するようにしてください。'|| true' をコマンドに追加すれば Dropbox の起動が失敗しても netctl がプロファイルをかならず立ち上げるようになります。

    ExecUpPost="any other code; su -c 'DISPLAY=:0 /usr/bin/dropboxd &' your_user || true"
    ExecDownPre="any other code; killall dropbox"

もちろん、`your_user` は修正する必要があり、もし要らないのであれば `any other code;` は省けます。上記はアクティブなネットワークプロファイルがあるときだけ Dropbox が実行しているか確認します。

### NetworkManager を使う

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

### wicd を使う

`/etc/wicd/scripts/postconnect/dropbox` を作成:

    #!/usr/bin/env bash
    su -c 'DISPLAY=:0 /usr/bin/dbus-launch dropboxd &' 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>

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

#### ロケールによるエラー

以下のコードで `dropboxd` を起動してみて下さい:

    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/dropboxd

もしくは

    export http_proxy=http://your.proxy.here:port
    /usr/bin/dropboxd

Note: 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

Category:

- Internet Applications (日本語)