Google Cloud Shell での開発環境をLinuxbrewで整える。
趣味の開発・検証環境をGCP上のCloud Shell に移行しました。
tmuxで仮想化された端末をWEB経由で操作できるので、windowsで操作してたターミナルをMacBookで引き継いで続きの開発ってできて、とても便利に使っています。
上記を読めばだいたいわかるのですが、Cloud Shell 特徴として、
・ どこからでもアクセス可能(ブラウザやスマホアプリからでも操作可能)
・ VScodeライクなエディタ付き
・ 基本的な開発ツールはインストール済み
・ もちろんGoogle Cloud SDK もインストール済み
・ 2000~65000 のポートでhttpプロトコルのポートを開けられるのでWEBアプリの検証に使える
・ 無料
という点があり、
欠点は
・ $HOMEディレクトリ以外は使ってないともとに戻ってしまう点
・ $HOMEは5GBまでという点
という2点です。
SSH機能をもつdockerコンテナで、起動時に$HOMEをストレージからマウントする仕様みたいなので、使ってない時間が長いとインスタンスが死ぬみたいです。しょうがない。
なんで、apt install で手動インストールしたソフトなどはしばらくすると消え去ってしまう運命。
起動するdocker環境は追加でいろいろ編集できたりするのですが、気軽にインストールしたり消したりしたかったのでLinuxbrewを入れて、開発環境を維持できるようにしました。
Linuxbrewとは
docs.brew.sh
homebrewのlinux版。WSLでも使える。
linuxbrewであればインストールパスを$HOME以下にもできるので今回採用。
インストール方法
公式の手順に従うと/home/linuxbrew/以下にインストールされるので、githubからcloneする方法で。(公式サイト1番下のAlternative Installationを参考のこと)
git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew mkdir ~/.linuxbrew/bin ln -s ../Homebrew/bin/brew ~/.linuxbrew/bin eval $(~/.linuxbrew/bin/brew shellenv) echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
ということで、完成。
ちょっと前に話題になったRust製のプロンプトおしゃれソフトをインストールしてみる
senyoltw@cloudshell:~$ brew install starship Updating Homebrew... ==> Auto-updated Homebrew! Updated 2 taps (homebrew/cask and homebrew/core). 略 senyoltw@cloudshell:~$ which starship /home/senyoltw/.linuxbrew/bin/starship senyoltw@cloudshell:~$ echo 'eval "$($HOME/.linuxbrew/bin/starship init bash)"' >> ~/.bashrc
いいかんじ。
github社製のgit拡張ツールhubや静的サイト生成ツールのHugoも簡単に入って、永続的になったので満足。
なお、Cloud Shell で一番気に入ってるところはハチャメチャな初期化方法です。豪快。
Cloud Shell をデフォルトの状態にリセットする方法
ls -a $HOME sudo rm -rf $HOME
Cloud Shell メニューで、その他メニュー アイコン、[Cloud Shell を再起動] の順にクリックします。確認ダイアログで [Cloud Shell を再起動] をクリックします。
HOMEディレクトリrm -rfとか豪快すぎて好き。