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