ワタナベ書店

読んだ本の感想とか美味しかったお店の紹介とかLinuxの知見とか好きなことを好きなだけ書くブログです。

Google Cloud Shell での開発環境をLinuxbrewで整える。

趣味の開発・検証環境をGCP上のCloud Shell に移行しました。

tmuxで仮想化された端末をWEB経由で操作できるので、windowsで操作してたターミナルをMacBookで引き継いで続きの開発ってできて、とても便利に使っています。

cloud.google.com

上記を読めばだいたいわかるのですが、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製のプロンプトおしゃれソフトをインストールしてみる

qiita.com

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も簡単に入って、永続的になったので満足。

github.com

gohugo.io

なお、Cloud Shell で一番気に入ってるところはハチャメチャな初期化方法です。豪快。

Cloud Shell をデフォルトの状態にリセットする方法

ls -a $HOME
sudo rm -rf $HOME

Cloud Shell メニューで、その他メニュー アイコン、[Cloud Shell を再起動] の順にクリックします。確認ダイアログで [Cloud Shell を再起動] をクリックします。

cloud.google.com

HOMEディレクトリrm -rfとか豪快すぎて好き。