tudta, hogy futtathat egy Linux parancssort iOS-eszközén? Lehet, hogy azt kérdezi: “miért szeretnék szöveges alkalmazásokat használni az apró iPhone-on?”Rendben, elég tisztességes. Ez egy elég ésszerű kérdés. De ha olvasol Opensource.com, valószínűleg tudja a választ: a Linux felhasználók bármilyen eszközt használni akarnak, és saját testreszabásaikat is szeretnék használni.
és leginkább kihívást akarnak.
van egy hétéves iPad 2 Mini, amely még mindig jól működik az e-könyvek és egyéb feladatok olvasásához. De azt is szeretném használni, hogy hozzáférjek az alkalmazások parancssorához, valamint a programok és szkriptek csomagjához, amelyek nélkül nem tudok nélkülözni. Azt a környezetet akarom, amelyhez hozzászoktam, valamint a szokásos fejlesztési környezetemet. Így csináltam.
Csatlakozás billentyűzethez
a parancssor használata a telefon vagy a táblagép képernyőn megjelenő billentyűzetén történő programozáshoz nem túl szórakoztató. Azt javaslom, hogy csatlakoztasson egy külső billentyűzetet, akár Bluetooth-on keresztül, akár egy camera connection kit adapter segítségével a vezetékes billentyűzet csatlakoztatásához (az én preferenciám). A Kinesis Advantage split billentyűzet csatlakoztatása az iPhone-hoz 6 furcsa optikát eredményez, mint például a corp cyberdeck a klasszikus Shadowrun szerepjátékból.
héj beszerzése iOS rendszeren
két lehetősége van egy teljes Linux rendszer futtatására iOS rendszeren:
- Secure shell (SSH) egy Linux számítógépre
- futtasson egy virtualizált rendszert Alpine Linux használatával ish-val, amely nyílt forráskódú, de az Apple saját TestFlight alkalmazásával kell telepíteni
Alternatív megoldásként két nyílt forráskódú terminál emulátor alkalmazás létezik, amelyek nyílt forráskódú eszközöket biztosítanak korlátozott környezetben. Ez a leginkább korlátozott lehetőség—nem igazán engedi a Linux futtatását, de Linux eszközöket futtat. Súlyos korlátozások vannak arra vonatkozóan, hogy mit tehet az eszközön ezekkel az alkalmazásokkal, de ezek valamilyen parancssori funkciót kapnak.
megvizsgálom a legegyszerűbb megközelítést, mielőtt nagyobb kihívást jelentő megoldásokat fedeznék fel.
1. Lehetőség: homokozós héj
az induláshoz az egyik legegyszerűbb módszer az iOS libterm alkalmazás. Ez egy sandboxos nyílt forráskódú parancssori héj 80 + parancsokkal, amelyek egy 0 dolláros alkalmazásban vannak. Ez a hajó Python 2.7, Python 3.7, Lua, C, Clang, és így tovább.
hasonló vonalak mentén az a-Shell, amelyet “szöveges felhasználói felületként írnak le egy képernyő-alapú platform számára.”az a-Shell nyílt forráskódú, aktív fejlesztés alatt áll, hozzáférést biztosít a fájlrendszerhez, és a Lua, Python, Tex, Vim, JavaScript, C és C++, valamint a Clang és a Clang++. Még azt is lehetővé teszi, hogy Python csomagokat telepítsen a pip segítségével.
2. lehetőség: SSH anywhere
Az alkalmazás letöltésének egyik lépése az SSH kliens konfigurálása. Már régóta lehetséges az iOS-en található sok SSH kliens alkalmazás egyikét használni egy Linux disztribúciót vagy BSD-t futtató szerverhez való csatlakozáshoz. Az SSH használatának előnye, hogy a szerver bármilyen disztrót futtathat bármilyen tetszőleges szoftverrel. Távolról dolgozik, és a kimenetét csak az iOS-eszköz terminálemulátorához vezetik.
Blink shell egy népszerű fizetett nyílt forráskódú SSH alkalmazás. A kis képernyőn kívül a szoftver használata hasonló a szerverhez való csatlakozáshoz bármely más parancssoron keresztül. A Blink terminálja gyönyörű, számos mellékelt témával és saját témák készítésével, beleértve az új betűtípusok testreszabását és hozzáadását.
3. lehetőség: Linux futtatása
SSH használata a Linuxot futtató szerverhez való csatlakozáshoz nagyszerű módja a prompt elérésének, de hozzáférést igényel egy külső szerverhez és egy kapcsolathoz. Ez nem a legrosszabb akadály a belépéshez, de nem teljesen elhanyagolható, és érdemes lehet Linuxot használni ezen szerverigény nélkül.
Ha ez a helyzet, akkor egy kicsit többet kell kitörnie az élvonalban. A TestFlight egy szabadalmaztatott szolgáltatás a fejlesztés alatt álló alkalmazások telepítéséhez, mielőtt azokat elküldenék az Apple App Store-ba. Letöltheti a TestFlight alkalmazást az áruházból, majd regisztrálhat számos tesztalkalmazásra. A TestFlight alkalmazásai korlátozott számú külső béta tesztelőt engedélyeznek (általában legfeljebb 10 000) korlátozott ideig. Tesztalkalmazás letöltéséhez közvetlenül az eszközéről kell hozzáférnie egy linkhez, amely általában megtalálható a tesztalkalmazás-fejlesztő webhelyén.
fuss Alpine Linux ish
iSH egy nyílt forráskódú TestFlight alkalmazás, amely fut egy virtuális gép az Alpine Linux disztribúció ki a dobozból (de lehet futtatni más disztribúciók egy kicsit bütyköl).
fontos figyelmeztetés: Ez kísérleti jellegű. Mivel az iSH jelenleg tesztalkalmazás, ne várjon állandó vagy robusztus szolgáltatást. A TestFlight alkalmazások időben korlátozottak. A jelenlegi építésem 60 napig tart. Ez azt jelenti, hogy 60 nap múlva kizárnak, és újra csatlakoznom kell az iSH következő tesztelési szakaszához. Ezenkívül elveszítem a fájljaimat, hacsak nem exportálom őket az iOS fájlokkal, vagy biztonsági másolatot készítek egy Git gazdagépre vagy SSH-val. Hogy világos legyen: ne támaszkodjon erre a munka folytatásához! Ne tegyen ide semmit, ami elengedhetetlen! Vissza a munkát máshol!
ish telepítése
kezdje el a TestFlight telepítését az App Store-on keresztül. Ezután telepítse az iSH-t úgy, hogy a telepítési linket a webhelyén keresztül kapja meg. Van egy másik telepítési módszer, amely az AltStore-t használja, de még nem próbáltam ki. Vagy ha fizetett fejlesztői fiókkal rendelkezik, letöltheti az ISH repóját a Githubról, és saját maga telepítheti.
a link használatával a TestFlight telepít egy iSH alkalmazást az eszközére. Mint minden más alkalmazás, ez is megjelenik a képernyőn egy ikonnal.
csomagok kezelése
iSH fut egy x86 emulátor Alpine Linux. Az Alpine egy apró, 5 MB alatti disztró. Ez volt az első alkalom, hogy Alpine-t futottam, és azt hittem, hogy csalódott leszek egy ilyen minimális disztró miatt, de valójában nagyon élveztem.
ish-telepítés.png
(Lee Tusman, CC BY-SA 4.0)
az Alpine az apk csomagkezelőt használja, amely egyszerűbb, mint akár apt vagy pacman.
csomag telepítése:
apk add package
csomag eltávolítása:
apk del package
További parancsok és információk keresése a csomaggal:
apk --help
frissítse a csomagkezelőt:
apk updateapk upgrade
szerezzen be egy szövegszerkesztőt
az Alpine alapértelmezett szövegszerkesztője a Vi, de én jobban szeretem a Vim-et, ezért telepítettem:
apk add vim
lehet telepíteni nano vagy Emacs, ha úgy tetszik.
cserélje ki a héjat
nem tudok rólad, de szükségem van a halhéjra. Más emberek inkább Bash vagy Zsh. De az Alpine hamut használ! A hamu a Dash shell villája, maga az eredeti ash vagy Almquist héj villája. Úgy tervezték, a sebesség. Úgy döntöttem, hogy a kereskedelem sebesség mellett a beépített automatikus befejezése, szín, Vim-kulcs vezérlés, szintaxis kiemelve, hogy tudom, és szeretem a fish shell.
Install fish:
apk add fish
Ha a Bash-t és annak kiegészítéseit, valamint a man-oldalakat szeretné használni, telepítenie kell őket, és néhány extra dolgot:
apk add bash bash-doc bash-completion
az Alpine minimalista ideológiája általában azt jelenti, hogy egyes programok, amelyek egyetlen csomagot jelentenek más disztrókban, több kisebb csomagra vannak felosztva. Ez azt is jelenti, hogy testre szabhatja és karcsúsíthatja a rendszert pontosan úgy, ahogy szeretné.
további részleteket a Bash telepítéséről ebben az oktatóanyagban talál.
változtassa meg az alapértelmezett héjat
a fish telepítése után ideiglenesen átválthat rá, és kipróbálhatja a fish
beírásával és a héjba dobásával. De azt akarom, hogy a fish legyen az alapértelmezett shell, és a chsh
parancs, amelyet más disztróktól szoktam használni, nem működik.
először derítse ki, hol van telepítve a hal:
which fish
saját kimenet:
/usr/bin/fish
ezután szerkessze a bejelentkezési héjat a halak használatához. Bármilyen szerkesztőt használhatsz, akivel jól érzed magad. Ha Ön kezdő, telepítse a Nano-t (apk add nano
), hogy szerkeszthesse a konfigurációs fájlokat, és ELMENTHESSE őket a CTRL+X billentyűkombinációval, megerősítse és kilépjen.
de a Vim-et használtam:
vim /etc/passwd
az első sorom a következő volt:
root:x:0:0:root:/root:/bin/ash
ahhoz, hogy a hal legyen az alapértelmezett, változtassa meg ezt a sort:
root:x:0:0:root:/root:/usr/bin/fish
majd mentse és lépjen ki.
biztos vagyok benne, hogy van egy jó módszer a héj újbóli forrására, hogy azonnal elkezdhesse használni. De nem vagyok biztos benne, ezért azt javaslom, hogy térjen vissza az alkalmazás böngészőjébe, kényszerítse ki a héjat, és jó intézkedésként állítsa le és indítsa újra az iPad vagy iPhone készüléket. Nyissa meg újra az iSH-t, most pedig a “Welcome to Alpine!”üzenet és információ a kezdéshez APK, látni fogja az alapértelmezett hal bejelentkezés üdvözlő üzenet: Üdvözöljük a fish, a barátságos interaktív shell. Hurrá!
ish.png
(Lee Tusman, CC BY-SA 4.0)
Python és pip beállítása
úgy döntöttem, hogy hozzáadom a Python-t (3.verzió.x), nem csak azért, hogy kódot írjak, hanem azért, mert több Python programra támaszkodom. Telepítse:
apk add python3
bár Python 2.x elavult, még mindig telepítheti:
apk add python
telepítse a Python csomagkezelőt, a pip-et és a setuptools-t:
python3 -m ensurepip --default-pip
időbe telik a csomagkezelő telepítése és beállítása, ezért csak várjon.
ezután letöltheti a curl-t, a hálózati átviteli eszközt:
apk add curl
olvassa el a kézikönyvet
a halak beépített automatikus kiegészítést használnak a man oldalak alapján. A többi parancssori felhasználóhoz hasonlóan én is a man
kézikönyvre támaszkodom, és az Alpine nem tartozik hozzá telepítve. Tehát telepítettem a kevesebb személyhívóval együtt:
apk add man man-pages less less-doc
a man mellett a mesés tldr oldalak projektet használom, amely egyszerűsített, közösségvezérelt man oldalakat biztosít.
PIP-vel telepítettem:
pip install tldr
a tldr
parancs csatlakozik a webhez, hogy letöltse az oldalakat, amikor új kéréssel találkozik. Ha meg kell tanulni, hogyan kell használni a parancsot, akkor csak írja be valamit, mint a tldr curl
, hogy egy egyszerű angol magyarázatot és jó példákat, hogyan kell használni a parancsot.
természetesen automatizálhatja ezt a telepítési munkát dotfiles vagy install script segítségével, de ez nem igazán tartozik az alpesi módba, hogy a minimális telepítést pontosan az Ön specifikációihoz igazítsa. Különben is, nem tartott olyan sokáig, ugye?
További információ
az iSH wiki tartalmaz egy” what works ” oldalt, amely beszámol arról, hogy jelenleg milyen csomagok működnek. Megjegyzendő, hogy az npm jelenleg nem működik.
egy másik wiki oldal elmagyarázza, hogyan érheti el az ish fájlokat az iOS Files alkalmazásból. Ez az egyik módja a fájlok áthelyezésének és átvitelének.