Ubuntu18.04でOneDriveを使うための手順
はじめに
Ubuntu用にOneDriveの公式クライアントが用意されていないため、代りにOneDrive Free Clientとういうものを使いました。使って見たところ問題なく動作しており、同期が反映されるまでの時間も数十秒〜分程度と割と短いです。OneDrive Free ClientをUbuntu18.04で使えるようにするまでの手順と使い方をメモします。
なお、もし有料アプリ(無料トライアルあり)でも良い場合は、ExpanDriveというアプリがOneDrive含め色々なクラウドストレージ、プロトコル、OSに対応しており便利です。以下にまとめていますので興味のある方は見てみてください。
ExpanDriveはクラウドストレージサービスを一括管理できるアプリです。ExpanDriveを使うことで、それぞれのクラウドストレージをローカルにマウントしていわば外付けドライブのように使用することができます。また、Windows、macOS、Linuxに対応しています。
環境と事前準備
以降の手順はUbuntu18.04で行いました。また、OneDrive Free Clientは動作のために以下のパッケージが必要になるため先にインストールします。
- libcurl
- SQLite3
- Digital Mars D Compiler (以降、DMD)
なお、OneDrive Free Clientは、現在GitHub上に以下の2つリポジトリがあります。 元々は1番目のリンク先がオリジナルだったみたいですが、どうやら現在はメンテナンスされておらず、2番目のリンク先が引き継いでいるようです。そのため、以降では2番目のリンクのものを使います。
まず、以下のコマンドでOneDrive Free Clientが動作に必要なパッケージをインストールします。
$ sudo apt install libcurl4-openssl-dev libsqlite3-dev
続いて、以下のコマンドでD言語とそのコンパイラであるDMDをインストールします。
$ curl -fsS https://dlang.org/install.sh | bash -s dmd
Downloading https://dlang.org/d-keyring.gpg
######################################################################## 100.0%
Downloading https://dlang.org/install.sh
######################################################################## 100.0%
The latest version of this script was installed as ~/dlang/install.sh.
It can be used it to install further D compilers.
Run `~/dlang/install.sh --help` for usage information.
Downloading and unpacking https://downloads.dlang.org/releases/2.x/2.081.1/dmd.2.081.1.linux.tar.xz
######################################################################## 100.0%
Using dub 1.10.0 shipped with dmd-2.081.1
Run `source ~/dlang/dmd-2.081.1/activate` in your shell to use dmd-2.081.1.
This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1.
Run `deactivate` later on to restore your environment.
上記最後にRun
という内容があり、これは以下のコマンドを実行せよという指示になりますので、指示通りに実行します。なお、ここでのsource ~/dlang/dmd-2.081.1/activate
in your shell to use dmd-2.081.1.dmd-2.081.1
はバージョンを表す数値となり、その時点での最新のバージョン番号が表示されます。従って、各自実際に表示された通りのバージョン番号に従ってください。(コメント頂きましたので2018/10/02 に追記しました。ありがとうございます。)
上記に表示内容に従い以下のコマンドでアクティベートします。
$ source ~/dlang/dmd-2.081.1/activate
(dmd-2.081.1)
すると、以下のようにターミナルのユーザ名の前にDMDのバージョンが表示されるようになります。(dmd-2.081.1)
がdmdのバージョンです。これはよくRubyやPythonなどでも、ディレクトリ毎に使用するバージョンを切り替えることがあると思いますが、それと同じことになります。
(dmd-2.081.1)user@user:~$
この状態で、以降のステップを実行します。
ちなみに、以降の作業が終わったら、以下のようにdeactivate
で非アクティベートできます。
(dmd-2.081.1)user@user:~$ deactivate
user@user:~$
DMDのインストールがうまくいかない場合
いくつか他のWebサイトを見ると、DMDのインストール方法として以下のコマンド実行が記載されていましたが、Ubuntu18.04で以下を実行すると、以下の様なエラーが表示されてしまいました。
$ sudo wget https://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
sudo apt-get update && sudo apt-get install dmd-compiler dub
W: GPG エラー: https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY EBCF975E5BA24D5E
E: リポジトリ https://netcologne.dl.sourceforge.net/project/d-apt d-apt InRelease は署名されていません。ubuntu status
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
また、以下のようにパッケージ d-apt-keyring が見つかりません
というようなエラーも出ました。
$ sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ d-apt-keyring が見つかりません
調べた結果、上記のコマンドはすでにメンテナンスされていないリポジトリに載っていた方法で、Ubuntu18.04ではうまくいかないようです。そのため、Ubuntu18.04の場合はすでに上に載せたcurl
を使った方法を使ってみてください。どうやら2018年5月ぐらいに変更されたそうです。
OneDrive Free Clientのダウンロードとインストール
適当なディレクトリに移動して(以下ではホームディレクトリに移動)、git clone
でOneDrive Free Clientを持ってきます。
(dmd-2.081.1)user@user:~$ cd
(dmd-2.081.1)user@user:~$ git clone https://github.com/abraunegg/onedrive.git
続いてダウロードしてできたonedrive
ディレクトリに移動して、make
と
(dmd-2.081.1)user@user:~$ cd onedrive
(dmd-2.081.1)user@user:~/onedrive$ $ make
dmd -g -ofonedrive -O -L-lcurl -L-lsqlite3 -L-ldl -J. src/config.d src/itemdb.d src/log.d src/main.d src/monitor.d src/onedrive.d src/qxor.d src/selective.d src/sqlite.d src/sync.d src/upload.d src/util.d
sed "s|@PREFIX@|/usr/local|g" systemd.units/onedrive.service.in > onedrive.service
sed "s|@PREFIX@|/usr/local|g" systemd.units/onedrive@.service.in > onedrive@.service
そしてmake install
を実行します。
(dmd-2.081.1)user@user:~/onedrive$ sudo make install
mkdir -p /var/log/onedrive
chown root.users /var/log/onedrive
chmod 0775 /var/log/onedrive
install -D onedrive /usr/local/bin/onedrive
install -D -m 644 logrotate/onedrive.logrotate /etc/logrotate.d/onedrive
mkdir -p /usr/lib/systemd/user/
chown root.root /usr/lib/systemd/user/
chmod 0755 /usr/lib/systemd/user/
cp -raf *.service /usr/lib/systemd/user/
chmod 0644 /usr/lib/systemd/user/onedrive*.service
以上でOneDrive Free Clientのダウンロードとインストールは完了です。
初回起動時のアカウントログイン
初めてOneDrive Free Clientを起動すると、以下のように表示されたURLにアクセスするよう指示がでます。マイクロソフトアカウントにログインして認証するためのURLです。なお、OneDrive Free Clientは、以下のようにonedrive
コマンドで起動します。
$ onedrive
Authorize this app visiting:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&scope=files.readwrite%20files.readwrite.all%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
Enter the response uri:
指示通りに表示されたURLにブラウザでにアクセスすると、以下のようにマイクロソフトアカウントのログイン画面がでるので、ユーザ名とパスワードを入力してログインします。
ログイン後、アクセスを許可するか聞かれるので「はい」をクリックします。
「はい」をクリックすると、以下のように真っ白なページにリダイレクトされます。これは正常でこの真っ白なページのURLをコピーします。
コピーしたURLは以下のような形式になっていると思います。
https://login.microsoftonline.com/common/oauth2/nativeclient?code=xxxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxx
ターミナルに戻って、Enter the response uri:
の後にコピーしたURLを貼り付けてEnterすると、以下のように表示されます。
$ onedrive
Authorize this app visiting:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&scope=files.readwrite%20files.readwrite.all%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
## 以下の Enter the response uri: の後にコピーしたURLを貼り付けてEnter
Enter the response uri: https://login.microsoftonline.com/common/oauth2/nativeclient?code=xxxxxxxxx-xxxx-xxxxx-xxxx-xxxxxxxx
--synchronize or --monitor missing from your command options or use --help for further assistance
No OneDrive sync will be performed without either of these two arguments being present
これでインストールは完了です。以降に基本的な使い方を載せます。
OneDrive Free Clientの基本的な使い方
ローカルとリモートを同期する
以下で同期を開始します。なお、同期開始すると、ホームディレクトリにOneDriveという名前のディレクトリが作成されて、そこにOneDrive上のファイルが全てダウンロード開始されます。OneDrive上に大量のファイルがある場合は、ネット環境を確認してから実行したほうがいいと思います。 ```bash $ onedrive --synchronize Initializing the Synchronization Engine ... Syncing changes from OneDrive .. ```指定したディレクトリのみ同期する
以下のように--single-directory dir_name
というように同期したいディレクトリを指定(以下ではdir_name
という名前のディレクトリを指定)すれば、そのディレクトリのみ同期されるようになります。
```bash
$ onedrive --synchronize --single-directory dir_name
```
リモート上の変更をダウンロードせず、ローカルの変更をアップロードのみ行う
以下のように--upload-only
をつけると、ローカルの変更のアップロードのみ行います。
```bash
$ onedrive --synchronize --upload-only
```
用途としては、複数あるサーバのログをOneDrive上一箇所に同期して集めたい場合など有効かもしれません。複数ある各サーバのログを全てのサーバがそれぞれ保持する必要はないのでOneDrive上にあるファイルを各サーバがダウンロードして同期する必要はないものの、各サーバのログファイルをアップロードだけさせてOneDrive上に集めることができます。
OneDrive Free Clientのログファイル
公式サイトによると、ログファイルは/var/log/onedrive/
というディレクトリ配下に作成されるそうですが、何故か私の環境では作成されず、ホームディレクトリ配下にonedrive.log
という名前のファイルが作成されてそこにログが追記されていっています。このリポジトリが現在も頻繁に更新中なので、ここに記載した情報と異なっていく可能性高いです。また新しい情報があれば更新します。
OneDrive Free Clientのアンインストール方法
アンインストールする場合は、gitでクローンしてインストールしたonedriveのディレクトリに移動して、make uninstall
を実行します。また、関連ファイルを削除します。
```bash
$ cd ~/onedrive
$ sudo make uninstall
$ rm -rf ~/.config/onedrive
```
まとめ
ここで載せたOneDrive Free Clientは、現在も頻繁に更新されておりこの記事の内容と変わってくる可能性高いです。また更新あれば修正、追記します。関連記事
- 公開日:2020/02/10 更新日:2020/02/10
UbuntuをmacOSのCatalinaっぽい見た目にする
UbuntuのデスクトップをmacOSのCatalinaっぽくするためのカスタマイズ手順をまとめます。
- 公開日:2019/12/31 更新日:2019/12/31
How to update Ubuntu's Kernel only
This article show you how to update Ubuntu's kernel using ukuu(Ubuntu Kernel Update Utility).
- 公開日:2019/09/10 更新日:2019/09/10
Ubuntuで/var/cache/apt/archives/パッケージ名の処理中にエラーが発生した場合の対処法
Ubuntuで「dpkg: アーカイブ /var/cache/apt/archives/パッケージ名.deb の処理中にエラーが発生しました」、「Sub-process /usr/bin/dpkg returned an error code (1)」というエラーが共にでました。ここのエラーの解決策をまとめます。
- 公開日:2019/08/12 更新日:2019/08/12
UbuntuからRaspberry PiにVNC接続する手順
Raspberry PiにHDMIケーブルを使ってモニタに接続して使用していましたが、ケーブルが煩わしくなってきたためリモートデスクトップで他のPCからVNC接続してみました。この記事では、UbuntuからRaspberry PiにVNC接続するまでをまとめます。
- 公開日:2019/08/11 更新日:2019/08/11
Ubuntu18.04にカーネル 5.0 をインストールする手順
2019年3月に「Linux 5.0」が正式にリリースされました。Ubuntuでは、デフォルトではリリース時のカーネルを使い続けるため、もし最新のカーネルを使用したい場合は手動でインストールする必要があります。この記事ではUbuntu18.04にカーネル5.0をインストールする手順をまとめます。