【備忘録:PC・ソフト】Linux MintでOneDriveをマルチアカウントで使う
Linux Mint 19 CinnamonにOneDriveを入れたときのメモです。知識のある人から見ると「??」な部分があるかもしれませんが、以下の手順で問題なく動いています。またUbuntu系では同じやり方で大丈夫だと思いますし、CentOS、Fedoraなど他の系統のLinuxについても下記の資料1に記載があります。
インストール
複数の日本語の解説ページがありますが、一次資料は下記の1であるようです。
- https://github.com/abraunegg/onedrive
- https://manpages.ubuntu.com/manpages/disco/man1/onedrive.1.html
以下に具体的に実行する手順を記しますが、闇雲にやるのではなく、上記(とくに1)をしっかり読んで概要を把握した上で作業することが大切です。(入力文字列をコピー&ペーストする場合は、ブラウザ側でCtrl + Cでコピーし、Linuxの端末でCtrl + Shift + V で貼り付けます。「apt install」が含まれる行に「-y」を書き加えると、「これでよいかね?」といちいち質問されなくなります。)
sudo apt install build-essential
sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev
sudo apt install pkg-config
sudo apt install git
sudo apt install curlcurl -fsS https://dlang.org/install.sh | bash -s dmd
ここで返されるメッセージ中に、”source ~/dlang/dmd-2.090.1/activate”を実行せよというメッセージが出てきます。バージョンにより「dmd-2.090.1」の数値が変わるそうなので、実行時に表示されるメッセージの当該箇所をコピー&ペーストして実行します。
↓↓↓↓↓↓↓↓↓↓
source ~/dlang/dmd-2.090.1/activate
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make clean; make;
sudo make install
上記の「source 云々」を実行した後のメッセージに、「一連の作業後にdeactivateしてね」と書いてあったので、このタイミングでやってみましたが問題ありませんでした。
↓↓↓↓↓↓↓↓↓↓
deactivate
これでインストール完了です。
設定と起動
以下、単一アカウントで使う場合とマルチアカウントで使う場合を分けて記すので、必要な方だけ見てください。またマルチアカウントのやり方で設定した場合でも単一アカウントで使えます。
単一のアカウントで使う場合
まずは設定ファイルを作ります。単一アカウントで使う場合は同期させるフォルダがデフォルトの「/home/(username)/OneDrive」のままでよいので、デフォルトのまま進みます。
mkdir -p ~/.config/onedrive
cp ./config ~/.config/onedrive/config
xed ~/.config/onedrive/config
(「xed」の部分は自分で使うエディタに起き舞えてください。)
ここまでで設定ファイルを準備できたので、いよいよonedriveの初期設定を開始します。
onedrive –config
これを入力するとURLが表示されるので、右クリックしてブラウザを起動するか、まるままコピーしてブラウザのURL欄にコピーして、OneDriveのサインイン画面に進み、アカウント名とパスワードを入力します。(ブラウザを使う作業の間、「onedrive –config」を実行している端末は開きっぱなしにしておきます。)
そうすると確認画面が出た後、ブラウザが真っ白になり、URL欄に文字列が表示されるので、これをまるごとコピーします。「onedrive –config」を実行している端末にURLを入力しろというメッセージが出ているので、Ctrl + Shift + V で貼り付け、エンターを入力します。
次に確認のため下記を入力します。(省略可)
onedrive –synchronize –verbose –dry-run
オプションは前から順に「同期せよ」、「おしゃべりにやれ(=起きていることをひとつひとつ画面で見せろ)」、「状況のデモを見せるだけにしてくれ」という意味なので、実際には同期は行われません。画面表示を見て、これで大丈夫だと思ったら、次を実行して本当に同期します。
onedrive –synchronize
↑↑↑は一回こっきりの同期で、ここで説明している一連の流れの中で省略しても大丈夫だろうと思いますが、やっておいて損はないはずです。
常に同期させるためには下記を実行します。
onedrive –monitor &
以下は自動起動の設定です。
systemctl –user enable onedrive
systemctl –user start onedrive
マルチアカウントで使う場合
考え方としては「上記の単一アカウントと異なり、アカウントごとに設定を作ってやる」ということなので、上記の設定ファイルをアカウントごとに作ることと、onedrive実行時にアカウントを示すオプションをつけてやるという作業です。
アカウントごとの設定ファイルを作るために、各アカウントで使う名前を決めます。たとえばMicrosoftのアカウントが「pokopen@hotmail.com」だったら、「Pokopen」など自分で間違えないものにしましょう。そして、以下のやり方でやれば、同期フォルダ名称はがデフォルトの「/home/(username)/OneDrivePokopen」となります。下準備として下記を実行します。
mkdir -p ~/.config/onedrive
cp ./config ~/.config/onedrive/config
※2つめ以降のアカウントを作るときは、以下を繰り返します。
名前を決めたら、まず同期フォルダと設定ファイルをしまうフォルダを作ります。
mkdir ~/OneDrivePokopen
mkdir ~/.config/onedrivePokopen
アカウント専用の設定ファイルを作るために、元ファイルを上記にフォルダコピーし、アカウント専用にするための編集を始めます。
cp ~/.config/onedrive/config ~/.config/onedrivePokopen/
xed ~/.config/onedrivePokopen/config
↑↑↑↑↑↑↑↑↑ エディタの画面の割と上の方に「# sync_dir = “~/OneDrive”」という行があります。これが同期フォルダを示しているので、「OneDrive」の部分を先に作成したフォルダ名(ここの例では「OneDrivePokopen」)に書き換え、先頭の「#」を削除します(「#」を残すと読み飛ばされるので、効力なし)。結果として、「 sync_dir = “~/OneDrivePokopen”」とないう一文になります。書き換えたら保存してエディタを終了します。
次はアカウント専用のサービス用の設定ファイルを作ります。
sudo cp /usr/lib/systemd/user/onedrive.service /usr/lib/systemd/user/onedrivePokopen.service
sudo xed /usr/lib/systemd/user/onedrivePokopen.service
↑↑↑↑↑↑↑↑↑ エディタの画面の中程に「ExecStart=/usr/local/bin/onedrive –monitor」という行があるので、アカウント専用の設定ファイルを使うために必要な「–confdir=”~/.config/onedrivePokopen”」を加えて「ExecStart=/usr/local/bin/onedrive –monitor –confdir=”~/.config/onedrivePokopen”」のようにしてから保存し、エディタを終了します。
いよいよ起動します。このときアカウント専用の設定ファイルを使うためのオプションをつける点が、単一アカウントの場合と異なります。(以下同様)
onedrive –confdir=”~/.config/onedrivePokopen”
そうすると確認画面が出た後、ブラウザが真っ白になり、URL欄に文字列が表示されるので、これをまるごとコピーします。「onedrive –confdir=”~/.config/onedrivePokopen” 」を実行している端末にURLを入力しろというメッセージが出ているので、Ctrl + Shift + V で貼り付け、エンターを入力します。
次に確認のため下記を入力します。(省略可)
onedrive –synchronize –verbose –dry-run –confdir=”~/.config/onedrivePokopen”
オプションは前から順に「同期せよ」、「おしゃべりしながらやれ(=起きていることをひとつひとつ画面で見せろ)」、「状況のデモを見せるだけにしてくれ」という意味なので、実際には同期は行われません。画面表示を見て、これで大丈夫だと思ったら、次を実行して本当に同期します。
onedrive –synchronize –confdir=”~/.config/onedrivePokopen”
↑↑↑は一回こっきりの同期で、ここで説明している一連の流れの中で省略しても大丈夫だろうと思いますが、やっておいて損はないと思います。
常に同期させるためには下記を実行します。
onedrive –monitor –confdir=”~/.config/onedrivePokopen” &
以下はサービスの登録です。
systemctl –user enable onedrivePokopen
systemctl –user start onedrivePokopen
上記をアカウントごとに繰り返せばよいのですが、直ちに次のアカウント設定に移るときは、このままではブラウザがOneDriveにサインインしたままになるのでうまく行きません。だから、ここでブラウザでOneDriveを開いて、サインアウトします。
補足
動いているかどうか心配になったら、端末から下記を実行してみてください。
ps aux | grep onedrive
以上。
*
←私はこの程度の本を書ける程度の知識とスキルを持ち合わせており、また、30年以上前ですが「Oh!PC」やムック本などで自作プログラムが紹介されたこともあるので、上記は超アブナイ方法ではないとは思います。また25年くらい前からLinuxに触っていますが、造詣が深いわけではありません。自己責任でお願いします。