Ubuntu サーバー 20.04 で OneDrive を使う

MacPro(2006) に Ubuntu サーバー 20.04 を入れてバックアップサーバーとして使っていますが、 OneDrive にもアクセスしたい案件が出てきたので、 OneDrive を使えるようにしてみた。

ググってみた … インストール七転八倒

色々ヒットしたんですが、 Ubuntu20.04 で OneDrive を使う - Qiita を参照してやってみました。ところがその通りには行きませんでした。さすが変態 MacPro(2006) 。さて順を追って手順を書いてみます。

まずは、 Qiita にあるとおりに依存関係にあるライブラリをインストールしてみます。

sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev
sudo snap install --classic dmd && sudo snap install --classic dub

はい、 3 行目でエラーが出ました。曰く、 snap が見つかりません! はぁ〜、インストールしますので待ってくださいね。 snap というのがなんなのかよく分かっていないのですが、とりあえずインストールしてみます。

sudo apt install snap

実はこれではダメでした。 snap を使うためには、 snapd をインストールしないといけません。

sudo apt install snapd

1 文字だけですが、ダメなものはダメです。これで、 dmd と dub というのがインストールできました。さて次です。 Qiita を参照します。

git clone https://github.com/skilion/onedrive.git
cd onedrive
make
sudo make install

ここでも一筋縄では行きません。何がエラーになったか。なんと make が見つかりません! と来ました。え〜! そう来ましたか。確かに開発環境入れた覚えがありません。まずは make だけ入れてみます。

sudo apt install make

make は無事起動します。しかしここでもエラー

...
cc: No such file or directory
Error: linker exited with status 255
make: *** [Makefile:32: onedrive] エラー 1

一部省略していますが、エラーはエラーです。幸い Qiita のコメント欄に私と同じ症状が発生した人からの情報が載っています。早速、やってみます。

sudo apt install build-essential

私、インストールしてから「今入れたのは一体何だ?」という具合に調べます。だから成長しないんでしょうね。とはいうものの、 make は通りました。インストールも通って onedrive というコマンドが使えるようになりました。よかったですね。ハイ!

もうひと悶着

onedrive とコマンド入れると、次のようなメッセージが表示されて入力待ちになります。

Authorize this app visiting:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=✖✖✖✖...

Enter the response uri: 

認証のためにこのアドレスに訪れてみてね。ということですね。実際には二行にわたる長いアドレスが表示されます。このアドレスをコピペしてブラウザで認証します。私は ssh で macOS から MacPro(2006) に接続していますので、ブラウザは macOS 側になります。ブラウザにコピペしてやると OneDrive にログインしてなかったらログイン画面が、ログインしていたら認証画面が出てきます。ここで認証してやると、真っ白な画面になります。別にエラーが出たのではなく、それが標準ですのでびっくりしないように。その真っ白なが画面のアドレスをコピーして「 Enter the response uri: 」の後にペーストしてエンター! これで完了です。

完了なんですが、すぐに同期が始まります。えっ、ちょっと待って!

ルートは容量不足

MacPro(2006) のルートは 250GB の SSD を使っています。それで問題なかったんですが、 OneDrive が同期をかけようとしているのはその SSD の上なんですね。私の OneDrive は 1TB の容量があります。もちろん全てを使っているわけではありませんが、同期かけられちゃったら容量不足になるのは明かです。他の HDD にしてやらねばなりません。

まぁ、このようなときには SSD 以外の場所に本体を移動してやって、シンボリックリンクを使ってルートに OneDrive フォルダを作ってやれば OK のはずです。事実 OK でした。残念ながら、オンデマンドは使えませんので全て同期されます。

私の OneDrive は、小さいファイルがたくさん入っているので、今一生懸命同期してくれているところです。

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

これで、再起動しても onedrive が起動してくれます。同期が完全に終わるまでかなり時間がかかりそうなので、この記事を書き始めたんですが、全く終わる気配がありません。まぁいいでしょう。 24 時間頑張ってください。


この記事も Podcast にしますが、コマンド部分は VOICEVOX に適当に発音させていますのであしからず。

投稿者プロフィール

kaizawa
kaizawaブロガー
新潟県在住。1964年生まれ、東京オリンピックの年ですね。
突然燃え上がったり、鎮火したり興味の波が激しいので注意が必要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA