Dropbox

提供: ArchWiki
2019年3月25日 (月) 23:54時点におけるKusakata.bot (トーク | 投稿記録)による版 (Pkg/AUR テンプレートの更新)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

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-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/autostartdropbox.desktop ファイルが配置されるため、次回のログイン時に自動的に dropbox が再起動します。

Cinnamon ユーザーの場合、スタートアップアプリケーションを設定して少し時間を置いてから Dropbox クライアントを起動するように設定することを推奨します (Cinnamon issue #4396)。 systemd を使ってバックグラウンドで dropbox を起動する方法も上手くいきますが、Cinnamon のバグが原因でシステムトレイにアイコンは表示されません (#481, #2846)。

それで起動しない場合、xinitrc (もしくは ~/.config/openbox/autostart) に /usr/bin/dropbox & を追加することで、ウィンドウマネージャと一緒に Dropbox の同期クライアントを起動させることができます。

systemd でブート時に起動

ノート: systemd によって Dropbox が何度も再起動される場合、自動アップデートの無効化を試してみてください。詳しくは Dropbox フォーラム を参照。

システムの起動時に 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 オプションを使うことでパスフレーズを入力する必要なく起動時に暗号化ボリュームをマウントすることができます。ただしあなたのコンピュータに直接アクセスできる人からは暗号化ファイルが安全でなくなってしまうので注意してください。
  • 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 ページの手順に従って下さい。

ヒント: 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]

ノート: 以下の方法を使用する場合、Dropbox - Preferences - General - Start Dropbox on system startup のチェックを外して Dropbox が標準の方法で自動起動しないようにする必要があります。この設定をしないと ~/.config/autostart/dropbox.desktop ファイルを作成することにより Dropbox が2回起動してしまいます。

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 が実行しているか確認します。

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 には別の値を使うこともできますが、"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
ノート: Dropbox は http://your.proxy.here:port という形式のプロキシ設定しか使いません。他のアプリケーションで使われることがある your.proxy.here:port は使用できません。

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

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