あらまし
音楽やってるとメインマシンの環境が2.5TBくらいに肥大化してきます。(1.5TBくらいはライブラリです。異常だ。)
メイン環境に直でプログラミングをやるのは危険な状態になってきました
古いバージョンのErlang/Elixirのビルドに失敗して躁状態になってクリーンインストールかけたんですが、音楽制作環境構築にまる三日くらいかかりました。余談。
躁状態のときめっちゃデータ飛ばすんですけど、今回もG Suite畳んだら自分のEPとコロナ前から保持してたアレなやつが壊れました。
必要となったら耳でゼロから、ないし依存ライブラリを再補完して作り直すしかない。
で、結論からいうと建ったVMのUbuntuでも、いつ破棄してもいいAPFSボリュームでのまっさらなCatalinaでも、Erlang 19.3、Elixir 1.3.4、Phoenix 1.2.5の環境がうまくいってません、、
あしたラズパイ届いたらまずRaspbianでトライしてみようかな。
環境
MacBook Pro 16インチ(i9-9880H,RAM 32GB, Radeon Pro 5500M 4 GB)
macOS Catalina 10.15.5
brewのインストールは前提とします。
VirtualBoxのインストール
これまでパッケージでやっていたので新鮮でした。
brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/7e703e0/Casks/virtualbox.rb
ここで山脈のごとくセキュリティ意識が高くなった10.13 High Sierra以降恒例行事として、入れたもんをシステムがブロックしてきます。
文言通りシステム環境設定に行って許可を与えてください。
もう一度先ほどのコマンドを入力するなどして、Successfully installed!と表示されたら完了です。
最新のmacOSではパッケージのインストールに失敗していたので、眼から鱗でした。
次にVagrantのインストールです。
Vagrantのインストール
brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/fb9df71/Casks/vagrant.rb
これもパッケージでやってたのでbrewすげえなと、、
successfully instlaled!で完了です。
Ubuntuのインストール
わたしはLinuxもsshもナレッジがよわよわなので、Vagrantなしでは生きていけません。備忘録のためにこのドキュメントを書いています。
mkdir -p ~/vagrant/ubuntu64_18
cd ~/vagrant/ubuntu64_18
vagrant配下の名前はなんでもいいんでしょうし、Ubuntuは19系も出ている? がGUIありのUbuntuは初期設定で挫折したほどの弱者なのでわたしには関係ないでしょう。
そしてubuntu64_18配下にいる状態で
vagrant box add ubuntu/bionic64 --box-version 20200130.1.0
Successfully added box 'ubuntu/bionic64'
と表示されたら
bagrant init ubnutu/bionic64
gitでもシンセサイザーでもinitが出てくるんですがイニシャルって意味なんですね。最近わたしの中で合致した。笑
これでVagrantfileが生成されます。
ここからは仮想サーバーを立ち上げるようなかんじで
vagrant up
初回起動時だけダーーーッとログが流れてboot readyになります。
立ち上がったマシンにssh接続します。
使ってないわけじゃないんですがイマイチわたしは自分の頭でsshの新しいシチュエーションを攻略することができません。
最近買ったiPad Proから自分のマシンにsshしたいな。
とりあえず自分のマシンのなかに立ち上がった仮想環境にssh接続します。
vagrant ssh
これで

なんかシステム情報も出てますね。
Ubuntuをいじったあと
exit
がsshの逆で
vagrant halt
がupの逆でVMのシャットダウン。
Docker for Macとかも気になるんですが音楽とか映像やるときはこれ切った方がいいんでしょうか。。いやいいに決まってるんだろうけど、、
プログラミングしかしない小型ラップトップだったらあんま関係ない気がしますが、、
またVMを立ち上げる時は
cd vagrant/ubuntu64_18
vagrant up #haltしてたら
vagrant ssh
ということになるでしょうか。
Vagrantfileへの追記
47行目あたり (ホストとLinuxの同期フォルダ設定)
config.vm.synced_folder "./workspace", "/home/vagrant/workspace"
27行目あたり(ポートフォワード設定)
config.vm.network "forwarded_port", guest: 8000, host: 8000
おわりに
どうやら情報弱者のわたしはこのUbunutuのことを”GUIなしUbuntu”と呼んでいたのですがUbuntu Serverというやつのようですね。
あしたRasbberry Pi 4が届くので(普通にLinux動かすのとNervesというElixirのIoTフレームワークに興味があって)
苦手意識のあるLinuxにも慣れていけたらなと思っています。
Vagrantfileがあるフォルダをホスト/クライアントで共有する設定をするとMacのGUIで中身が見られるんですけど、それはちと追記で、、
うまずたゆまず、頑張ります。
Kento Mizuno