iPadでシェルが使えるiSHが面白い
ishというアプリがAppStoreで公開されている。
これがなかなか面白い。 Alpine Linux x86版がどうやら動いているっぽい。
apkと聞くとAndroidのアプリパッケージの拡張子と同じだけど、Alpine Linuxではこの名前のパッケージ管理システムを使う。Ubuntuでいうところのaptやapt-getに相当する。
アップデートとアップグレード
apk update
apk upgrade
パッケージの追加
apk add パッケージ名
検索
apk search パッケージ名
削除
apk del パッケージ名
apk add nano
VimもEmacsもちょっとっていう方におすすめのnano
apk add apache2
httpd
これでiPadのSafariからlocalhostにアクセスすると、テストページが表示される。
apk add hugo
これでHugoがインストールできる。ただし、バージョンが古くて、実行できない。
なので、apkで参照するリポジトリを最新のものにする。
echo "https://dl-cdn.alpinelinux.org/alpine/v3.18/community/" >> /etc/apk/repositories
echo "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/" >> /etc/apk/repositories
「/etc/apk/repositories」がリポジトリのリストが記述されているファイル名。 ここに、Alpine Linuxの最新バージョンである3.18用のmainとcommunityのURLを記述することで、apkコマンドから参照してくれるようになる。echoで追記しているけど、既存のリストを削除しなくても、新しいバージョンのパッケージを取得してくれるのでこのままで良さそう。
ただし、アプリを再起動するとこのリポジトリファイルが元に戻ってしまうので、自分の場合は「repo.sh」にこのecho文を入れて、起動時に手動で実行している。どこかで自動化したいけど、今のところはこれでよし。
hugo new site サイト名
Hugoで新規サイトを作成する際はこんなコマンドを打つんだけど、ish上で実行すると、高い確率でエラーを吐く。
atal: morestack on g0
fatal: morestack on g0
fatal error: unexpected signal during runtime execution
こんな感じの。runtime系の長めのエラーが出る時もある。 もうこうなったらどうしようもない。 なぜかCtrl+Cでプロセスから抜けられない。
エラーが出たとしてもプロンプトに帰ってこられるのなら、再度実行するとうまくいくこともあるし、うまくいった後に再度実行してエラーが出る場合もあるから、正常に実行できるかどうかは運任せなところがある。
もしエラーで固まってしまったら、アプリを一旦閉じてから起動し直すしか方法はない。しかも起動し直すとリポジトリは元通りになっているので注意が必要。
最高かよ。