最近、研究室のPCのメインOSをWindowsからUbuntuに切り替えたが、自宅のメインPCは依然Windowsであり、これまでもOneDriveで多くのファイルを共有していたので、UbuntuでもOneDriveを使えるようにしたい。
Ubuntu初心者かつPC知識も大してないですが、誰かの役に立てばと思い記事にします。間違っているところもあるかもしれませんが、悪しからず。
使用するリポジトリ
複数の記事を拝見しましたが、紹介されているリポジトリのサポートが切れていることが多かったのですが、以下のリポジトリはサポートが続いていそうなので、今回はこちらを使わせていただきます。
本記事は、ほぼこのリポジトリのインストールガイドの日本語訳です。
1. インストール
インストールガイドに、「Ubuntuは、デフォルトリポジトリのOneDriveクライアントはサポートされていないので、ガイドに従い、openSUSE Build Service (OBS)リポジトリからインストールしてください」と書いてあるので、言うとおりにする。
1.1. 以前に設定したPPAを削除する
すでにOneDriveクライアントを何かしらで設定したことがある人は、ガイドにしたがって削除してください。私は今回が初めてなのでスキップします。
1.2. システムを最新にする
以下コマンドをルート権限で順に実行していきます。
sudo -i # rootに入る
rm -rf /var/lib/dpkg/lock-frontend
rm -rf /var/lib/dpkg/lock
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y
apt-get autoclean -y
exit # rootから出る
実行後、再起動します。
reboot
1.3. OSのバージョンを確認する
OSごとに詳細なインストールガイドがあるため、以下コマンドでOSのバージョンを確認します。
lsb_release -a
1.4. OSごとのインストールガイドに従う
Ubuntu22.04のインストールガイドにしたがってインストールしていきます。
以下コマンドを順に実行していくだけ。
wget -qO - https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /usr/share/keyrings/obs-onedrive.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_22.04/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list
sudo apt-get update
と、思いきや以下のコマンド実行時にエラーが起きました。
sudo apt install --no-install-recommends --no-install-suggests onedrive
...
E: http://jp.archive.ubuntu.com/ubuntu/dists/jammy-updates/main/binary-i386/Packages.xz の取得に失敗しました File has unexpected size (988892 != 988976). Mirror sync in progress? [IP: 91.189.92.23 80]
Hashes of expected file:
- Filesize:988976 [weak]
- SHA256:2cf1e19d94af0d7ef8145b40afb672f776a49365008b9f6a1df2789d5fb49f7d
- SHA1:17dcefaad7868429e2e6b66fa80c1fa322d23533 [weak]
- MD5Sum:7d6d19192aae9694b3d988ddec7c0763 [weak]
Release file created at: Fri, 17 Apr 2026 06:29:54 +0000
E: http://jp.archive.ubuntu.com/ubuntu/dists/jammy-updates/universe/dep11/Components-amd64.yml.xz の取得に失敗しました
E: http://jp.archive.ubuntu.com/ubuntu/dists/jammy-updates/multiverse/dep11/Components-amd64.yml.xz の取得に失敗しました
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
パッケージリストのキャッシュが原因のようで、以下を実行したところ、インストールが無事成功しました。
sudo rm -rf /var/lib/apt/lists/*
sudo apt clean
sudo apt update
インストールが完了したら、既知の問題リストを参照し、必要なアクションを取りましょう。
2026-04-17時点ではまだ報告がなかったので、スキップします。
2. 設定と起動
無事にインストールができたので、いざ設定と起動を行っていきます。
2.1. Microsoftアカウントの認証
OneDriveに同期させるディレクトリのパスには、いくつかの制約があるので、ルートディレクトリで実行してきます。
cd ~
onedrive
コマンドを実行すると、https://login.microsoftonline.com/...というURLが表示されるので、アクセスしてログインします。
このような画面が表示されたら、URLをコピーします。(別の画面にリダイレクトしたりするので、急いでコピーする)
そして、ターミナルに戻り、URLをペーストすると、認証が完了します。
以下コマンドを実行すると、現在の設定が参照できます。
onedrive --display-config
2.1.1. curlのバージョンエラーを解消(対症療法)
curlのバージョンの問題で、エラーが出ることがあります。
curlのアップデートがうまく行かなかったので、以下を設定ファイルに加えて一旦GUIの警告だけでも消しておくことにします。
デフォルトでは設定ファイルが存在しないので、公式の設定ファイルの内容をローカルにコピーします。
vi ~/.config/onedrive/config
設定ファイルを作成したら、以下を記述します(コメントされているので、検索して編集)
force_http_11 = "true"
ip_protocol_version = "1"
2.2. 初回の同期を実行
以下コマンドで同期を実行します。
onedrive --sync
かなりの時間がかかります。
2.3. 同期をバックグラウンドで実行するように設定
先程の同期コマンドを毎回打つのは面倒なので、システム起動時に、モニターモード($ onedriveで実行)をバックグラウンドで実行するようにします。
systemctl --user enable onedrive
systemctl --user start onedrive
3. 使用上の注意点
ドキュメントには、以下のようなことが書かれていました。
- vi, emacsなどAtomic Save Operation(一時ファイルを作成する保存方法?)を使用するエディタやアプリとは、そのままだと競合するので、以下のような対応が必要
- エディタ使用中は、一時的に同期を止める
- 一時ファイルを無視するように設定する
Obsidianについても、より詳細な設定方法が記載されていました。
