ここしばらく、OneDriveを触っていました。
UbuntuでもOneDriveを使おうとしたのですが、OneDriveにはLinuxのクライアントがありません。
調べてみると、フリーのLinux用 OneDriveクライアントがあるという記事があったので、試してみました。
ざっくりインストール手順
記事によると、「skilion/onedrive」より「abraunegg/onedrive」の方が新しいのでいいとあり、実際にGit見てみると、「skilion/onedrive」は去年から更新が止まっているようなので、「abraunegg/onedrive」を使うことにしました。
手順は、ほぼReadmeに書かれているままです。
必要なライブラリをインストール
クライアントはD言語を使って書かれていて、コンパイルしてからインストールして使うため、ライブラリとしてD言語もインストールされます。
D言語をアクティブにする
source ~/dlang/dmd-~/activate
「dmd-~」の「~」を、ライブラリをインストールした時のD言語のバージョンに合わせます。
D言語がアクティブになると、プロンプトに「(dmd-~)」と表示されるのでわかります。
コンパイルしてインストールが終わったら、「deactivate」でD言語のアクティブを解除しておきます。
Gitからファイルを取ってくる
設定・インストール
「onedrive」ディレクトリの「configure」を実行すると、コンパイルのための設定がされます。
ここでは、エラーを通知してくれるよう「--enable-notifications」フラグをセットしました
./configure --enabe-notifications
後はコンパイルしてインストール。
make clean; make; sudo make install
ざっくり使用手順
クライアントコマンドは「onedrive」になります。
onedrive
でユーザー認証onedrive --display-config
で設定値確認
設定はGitからダウンロードした「onedrive/config」ファイルを、「~/.config/onedrive/」にコピーして、それを編集することで行います。
設定はデフォルトのままにしましたが、指定したフォルダのみ同期をさせたかったので、下記の方法で同期フォルダ指定しました。
- 「~/.config/onedrive/sync_list」ファイルを作る
- そのファイルに同期するフォルダを書く
念の為onedrive --synchronize --verbose --dry-run
で動作確認して、
systemctl --user enable onedrive # サービス自動実行有効 systemctl --user start onedrive # サービス実行
で実行して完了です。
実行結果
Windows
Ubuntu
Office365
うまくいきました!
日本語のファイル・ディレクトリでも問題なさそうです。相互の同期もうまくいっているようです。更新チェックは45秒毎になります。
GUIは無いのですが、同期状況は下記コマンドでウォッチできるので、どこかのターミナルで開きっぱなしにしておくか、ちゃんと動いているか気になったら実行してみるといいんじゃないでしょうか。
journalctl --user-unit onedrive -f
修正・最初からやり直し・削除
修正・最初からやり直し・削除する場合は、systemctl --user stop onedrive
でサービス停止を停止して
- 修正の場合は「~/.config/onedrive/」の設定ファイルを修正して、
systemctl --user start onedrive
でサービス開始 - 最初からやり直しの場合は、「~/.config/onedrive/」内のファイルを削除して、
onedrive
で認証からやり直し
して行います。
削除する場合は、サービス停止に加え
systemctl --user disable onedrive
でサービス自動実行を無効- makeした時のonedriveディレクトリに移動して
sudo make uninstall
- 「~/.config/onedrive/」ディレクトリを削除
して行います。
感想
せっかくUbuntuでもOneDriveを使えるようにしたのですが、結局OneDriveは使わないことになったので残念です。