GoogleDrive on Slackware ARM

内容

概要

何年か前に,Slackware64に,GoogleDriveをマウントできるようにしました.x86 32bitも同じ手順でできると思います

そのときに間を置かずにSlackware ARMでも試していたのですが,肝心なocamlのbuildに失敗したので放置していました.

今回うまく行ったので,記録しておきます.基本的には,Slackware64のときと同じ手順です.

必要なソフトのbuild

Build & installの手順は一通りしかなく,ocaml → opam → google-drive-ocamlfuseの順です.AMD64同様にsbopkgで行けるといいんですが,

sbopkg -i ocaml

では,残念ながら途中でエラーが出てしまいます

解決策は,linuxquestions.orgのページを参考にしました.

パッチ当てをするには,手で必要なソフトを集めますが,Slackbuildsにリンクがまとめてあります.Source Downloadsにある,ocamlとrefman, Individual Filesのすべてを一つのディレクトリーに展開せずに置きます.Ocamlのソースは,4.03.0で,Raspberry Pi OSのソースは4.05.0なので,入れ替えてもいいかもしれません(その場合はもちろんocaml.SlackBuildのスクリプト内のバージョンを書き換えます).

次に,ocaml.SlackBuildをエディターで開いて,

--host $ARCH-slackware-linux

を,

--host $ARCH-slackware-linux-gnueabi

に書き換えます.言い換えれば,-gnueabiを追加するだけです.ここは,-gnueabihfなのかもしれませんが,よく理解してないし,-gnueabiの追加で動いたので深く追求しません

そしたら,ocaml.SlackBuildを走らせます.不具合がなければ,/tmp内にocamlのパッケージができるので,installpkgでインストールします.

次は,opamですが,これは

sbopkg -i opam

であっさり行きます.あとでbubblewrapも必要となるので,

sbopkg -i bubblewrap

も実行します.

このあとは,opamによる作業ですが,opamはroot権限で走らせることを非推奨としているので,Google Driveをマウントしたいユーザー権限で作業を進めるという非道を行います.

作業は簡単です.質問が出ますが,すべてリターン(default値)で答えています.

opam init
eval $(opam env)
opam update
opam install depext 
opam depext google-drive-ocamlfuse 
opam install google-drive-ocamlfuse

これらは,Qiitaの,@teamhimeHさんのページを参考にしています.depextのインストールと実行が果たして必要なのかはよくわかりませんが,動けばいいのです.今度また別のSlackware ARMにgoogle-drive-ocamlfuseをインストールする機会があったら試してみます.

たぶん失敗はしないと思います.

認証

昔,google-drive-ocamlfuseでのマウントを試したりした場合,初期値の残骸があって迷宮に迷い込むことがあるので,

cd
rm -rfv .gdfuse

としときます.

さて,以降はまともなWeb browserのあるマシンから行うことになります.Slackware ARMのマシンにsshでログインしてからは,前出の@teamhimeHさんのページに習います.ただし,Slackware ARMにはFirefoxなどの気の利いたweb browserはありませんので,www-browserというスクリプトをパスの通るところに置きます.筆者の場合はログインすると,$HOME/binにパスが通るので,そこに置きました.www-browserの中身は,

#! /bin/sh
echo $* > /dev/stderr

です.実行権限を付与します.

そして,いよいよ認証です.

eval $(opam env)
google-drive-ocamlfuse

長ったらしいURLがコンソールに返りますので,それをFirefoxなりSafariなりに貼り付けて,認証します.

なにかうまく行かなかったら,.gdfuseを削除してやり直します.

初期化がうまく行って,実際にマウントするときは,空のディレクトリーを作っておいて,引数としてそのディレクトリーをマウントポイントとして指定します(これを時々忘れます😥).

google-drive-ocamlfuse マウントポイント

自動起動

自動起動だとどこに書くか迷います.年がら年中マウントしておく必要もないし,また,GUIじゃなくてCUIでも必要な場合もあります.

#!/bin/sh
eval $(opam env)
google-drive-ocamlfuse ~/GoogleDrive

という中身のスクリプトを作っておいて,必要なときに起動するということにしています.

2020年11月11日

Notes:
1. 32bitで試したかどうかは自信がないです😥
2. 誰もフィードバックしないんかい😥
3. 動けば良いのだ!
4. 非Slackware道.
5. ~/GoogleDriveはマウントポイント.
32bitで試したかどうかは自信がないです😥
誰もフィードバックしないんかい😥
動けば良いのだ!
非Slackware道.
~/GoogleDriveはマウントポイント.