Manjaro (Arch) でもGoogle Drive File Streamを使いたい話

# TODO
 現在(2019/10/15) Opam (2.0.5) は base パッケージをインストールできない問題が発生しているようです。原因は、 `/usr/lib/ocaml/compiler-libs/` に `cmo_format.*` が消されているためです。
 Arch 系列とバイナリインストールを試しましたが、どちらも消えていました。
 そのため、次の方法は実行することができません。
 とりあえずの対策として、次の [issue](https://github.com/ocaml/opam/issues/4013) にあるように、opam のバージョンを切り替えて実行してください。

```
[...] $ sudo pacman -R opam ocaml ocaml-compiler-libs
[...] $ sudo pacman -Syu opam
[...] $ opam init 
[...] $ eval $(opam env)
[...] $ opam switch create ocaml-4.09.0 ocaml-base-compiler.4.09.0
[...] $ eval  $(opam env)
[...] $ opam list
# Packages matching: installed
# Name              # Installed # Synopsis
base-bigarray       base
base-threads        base
base-unix           base
ocaml               4.09.0      The OCaml compiler (virtual package)
ocaml-base-compiler 4.09.0      Official release 4.09.0
ocaml-config        1           OCaml Switch Configuration
[...] $ opam install base
The following actions will be performed:
  ∗ install dune              1.11.4  [required by base]
  ∗ install sexplib0          v0.12.0 [required by base]
  ∗ install dune-configurator 1.0.0   [required by base]
  ∗ install base              v0.12.2
===== ∗ 4 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[base.v0.12.2] found in cache
[dune.1.11.4] found in cache
[sexplib0.v0.12.0] found in cache
Processing  4/4:

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed dune.1.11.4
∗ installed dune-configurator.1.0.0
∗ installed sexplib0.v0.12.0
∗ installed base.v0.12.2
Done.
```

# 実際 Google Drive File Stream は便利

良い感じの大学に入ると、Google Driveの容量がかなり降ってくることがあります。(例えば無制限とか)

すると画像データとか、授業のPDFとかを保存しておくためにこのクラウドストレージを使えると便利かなーと思うわけです。しかしブラウザ経由でこれを使うと、ドラッグ＆ドロップとかしないと行けないので不便。

出来るなら **普通のファイルと同じ感じにアクセスしたい！** となるわけです。

というわけで使うのが **Google Drive File Stream** というものです。

これを使うと、こんなことが出来ます。

```
- /home/<username>
  - Downloads
  - ...
  - gdrive (Google drive上のファイル)
    - document
    - computer-science
    - genetic-algorithm
    - nlp-papers
    - ...
```

# Linux で Google Drive File Stream を使いたい

Windows や Mac ではこの File Stream のインストーラーが [公式](https://support.google.com/a/answer/7491144?hl=ja) で配布されていますが、Linuxではそうは行きません。

じゃあ無理じゃないか、と思うかもしれませんが、github に Linux で File Stream を使うためのレポジトリ [google-drive-ocamlfuse](https://github.com/astrada/google-drive-ocamlfuse) がありました。

こいつをお使いのLinuxにインストールすれば良いらしいです。

但しアップされているレポジトリは、aptのところのみとなっているようで、つまりUbuntuやDebianでは上手く行くようです。

```shell-session
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
```
しかし私が使っている Linux は Manjaro、こいつは Pacman や AUR を使っているので直ちにインストールはできません。

# Manjaro(Arch) で Google Drive File Stream を使いたい

Manjaroで google-drive-ocamlfuse をインストールするには3つの方法が考えられます。

1. AURを使う
2. ビルド環境をPacman + AUR で持ってきてビルドする
3. Opam を Pacman で持ってきて Opam 環境でビルド環境から整えてビルドする


結論から言うと、3が最も楽に構築が出来ます。1. AURから google-drive-ocamlfuse を持ってくることは出来ますが、ビルドで高確率でコケます(依存関係が古い？)。2. 前と同様に変なところでコケます。後どこに何があるのかわかんなくなります(Opam環境で閉じたほうが管理が楽)。


というわけで 3 で google-drive-ocamlfuse をビルドします。

```shell-session
sudo pacman -Syyu # パッケージのアップデート
sudo pacman -S opam # opam のインストール
opam init # opam の初期化
eval $(opam env) # opam の読み込み
opam install google-drive-ocamlfuse # google-drive-ocamlfuse のインストール
echo "export PATH=\"\$PATH\":\"/home/$(whoami)/.opam/default/bin\""  >> ~/.bashrc
```

これで google-drive-ocamlfuse はインストールされました。次に google-drive-ocamlfuse のセットアップを行います。

```shell-session
google-drive-ocamlfuse
```

これでブラウザが開かれてログインを求められます。使いたいアカウント(任意の一つです)を使いましょう。

次にGoogle Driveをマウントしたいフォルダを生成して実際にマウントします。


```shell-session
mkdir gdrive
google-drive-ocamlfuse gdrive
```

お疲れ様でした