Archive

Linux の MS Onedrive のクライアントで新しいものが出ていたので変更してみた

tl;dr

onedrive っていうそのままな名前のLinux向け MS Onedrive 非公式クライアントが出ていたのでそっちに変えたよって話

ちなみにこのエントリでは名前がややこしいので

  • 「MS Onedrive」 -> マイクロソフトのサービス Onedrive のこと
  • 「onedrive」 -> 今回紹介している非公式の MS Onedrive クライアント

と表記しております。


メインPCの環境が Linux で MS Onedrive を使いたいって場合、 非公式の何らかのクライアントを使うことになるのだけど、たまたま以下のものを見つけた。D言語で実装されてる。

ちょっと前までは Linux で MS Onedrive を使いたい場合、 onedrive-d を使うのがほとんどだったんじゃないかなーと思うのだけど、 こちらはGithubのリポジトリの状況がコロコロ変わったり、バージョンによってインストール手順が結構違ったり、ドキュメントどおりに動かないところがあったりと不安定な印象があったので乗り換えてみた。

手順

onedrive-d を消す

既に onedrive-d を使っている状況だったのでまずは消す。 といっても私の場合は Archlinu 環境で AUR 経由で入れていたので動いているプロセスを止めて消すだけ。

# 動いている onedrive-d プロセスを止める
onedrive-d stop

# onedrive-d を消す
yaourt -R onedrive-d-git

あと、既に使っている ~/Onedrive ディレクトリを引き続き使うのだと 2016-12-22 時点では onedrive では既存のファイルをいい感じにマージして同期とかはやってくれないので適当にリネームするなり潔く消すなりする。

# 以下はリネームする場合、削除は自己責任で。
mv -v ~/Onedrive{,.bakup-`date +%Y%m%dT%H%M%S`}

onedrive をインストール & セットアップ

基本的には README に従ってやってくのだけれども Archlinux の場合は既に AUR に上がっているのでそちらから入れられる。便利。
特に不都合なければデフォルトの構成でインストール。

yaourt -S onedrive

これで README の Installation 相当のところまでは完了するので configuration をやってく。 AUR 経由だとファイルのパスが微妙に違うけれど、基本的にやることは一緒。 必要に応じて設定ファイルの中身は編集。(特に問題なければ編集しなくてもよし。デフォだと ~/Onedrive に同期される。)

# ユーザー用の設定ファイルをディレクトリ掘ってセットする
mkdir -pv ~/.config/onedrive
cp -v /etc/onedrive.conf ~/.config/onedrive/config    # ... ここがREADME と違う

設定ファイルをおいたら初回起動。単純に以下のコマンドを実行。

onedrive

すると以下のような感じで一旦ブラウザから認証する必要がある。

  1. Authorize this app visiting: に表示されてるURLにアクセスする。
  2. 別のURLにリダイレクトされるので、アドレスバーからコピー。
  3. コピーしたURLを Enter the response url: のところに入力する

というながれ。認証が通ればそのまま同期が開始される。ただこの時点では動悸されたことが確認できたら一旦 Ctrl+C とかで一旦中断する。1

onedrive 起動時のログ

最後に自動起動の設定。 AUR経由で入れた場合、既に /usr/lib/systemd/user/ 配下に onedrive.system ファイルが設置されるので素直に systemd でやるのが良さそう。以下の用にユーザーのサービスとして有効にして自動起動するようにする。

systemctl --user enable onedrive
systemctl --user start onedrive

起動したかどうかも一応確認しておくと安心感がありそう。

journalctl --user-unit onedrive -f

とりあえずは安定して動いてそうなのでこれでしばらくはこれで様子を見てみることにします。


  1. ちなみに私は firefox でアクセスしたのだけどリダイレクト先のURLにはどういうことかアクセスができなかったけど、同期する分には問題なかった。