緣由:解決 iSH Shell過於老舊的問題。iSH Shell模擬的是32位元(i386)的Alpine Linux系統,然而32位元很多套件都無法安裝,所以改用UTM跑64位元虛擬機解決這個問題。
我依然選用Alpine Linux,虛擬機最低只要128MB RAM就能安裝,適用RAM在2GB以下的iOS裝置。
其實不一定要跑Alpine啦!如果iOS裝置RAM有4GB以上,那麼跑Ubuntu server也是可行的。
另外,因為iOS沒有虛擬化加速技術,所以模擬x86或ARM的架構都不會有太大差異。
1. 建立Alpine Linux虛擬機#
到 Alpine Linux官網下載x86_64的映像檔
安裝UTM,建立Linux虛擬機。RAM至少512MB,儲存空間8GB。
將虛擬機開機,參考 Alpine Linux安裝教學,執行
seupt-alpine
指令稿,完成系統安裝,圖形界面跳過。開機之後登入使用者帳號,即可在Alpine Linux安裝Docker:
sudo apk add docker docker-cli-compose
sudo addgroup $USER docker
sudo rc-update docker sshd
sudo service docker start
其他套件的設定方法請參閱 Alpine Linux Wiki。
2. 設定SSH存取#
假設你覺得UTM畫面太醜,那也可以用iSH Shell遠端登入操作,並用scp傳輸檔案。
在Alpine Linux虛擬機安裝SSH套件:
sudo apk add openssh
rc-update add sshd
service sshd start
注意把UTM放在後台,需要申請定位權限才不會被系統殺死。如果你是iPad的話,那麼使用「滑動至前」功能開啟iSH Shell視窗即可保證兩個APP不會被系統殺死。
在虛擬機內執行ip addr
查看IP位址,回到iSH Shell,輸入ssh指令登入,並用iSH Shell操作。