
Tudta, hogy Linux parancssort indíthat egy iOS eszközön? Talán megkérdezi: „Miért használjak szöveges alkalmazásokat az iPhone-on?” Ez egy jogos kérdés. De ha az Opensource.com-ot olvassa, valószínűleg tudja a választ: a Linux felhasználók szeretnék, ha bármilyen eszközön tudnának dolgozni, és szeretnék a saját beállításaikat használni.
De leginkább a bonyolult problémák megoldására vágynak.
Van egy hét éves iPad 2 Mini-m, amely még mindig jól használható e-könyvek olvasására és egyéb feladatokra. Azonban szeretném használni a parancssorhoz is, a saját programjaimmal és szkriptekkel, amelyek nélkül nem tudok dolgozni. Szükségem van egy környezetre, amelyhez hozzászoktam, és a szokásos fejlesztési környezetemre. Így értem el ezt.
Csatlakozás a billentyűzethez
A parancssorban való programozás telefon vagy táblagép képernyőbillentyűzetén eléggé kényelmetlen. Azt javaslom, csatlakoztasson egy külső billentyűzetet, akár Bluetooth-on keresztül, akár a kamera csatlakozóadapterével kábeles billentyűzet csatlakoztatásához (én az utóbbit választottam). Amikor egy Kinesis Advantage megosztott billentyűzetet csatlakoztattam az iPhone 6-hoz, egy furcsa eszközt kaptam, ami úgy néz ki, mint a klasszikus Shadowrun.
Shell telepítése iOS-re
A Linux teljes értékű rendszer indításához iOS-en két lehetőség van:
- Secure shell (SSH), amely kapcsolódik egy Linux számítógéphez
- Virtuális rendszer indítása Alpine Linux használatával az iSH segítségével, amely open source, de a törzskönyvezett Apple TestFlight alkalmazás segítségével kell telepíteni.
Alternatív megoldásként két open source terminálemulátor alkalmazás érhető el, amely lehetővé teszi az open-source eszközökkel való munkát korlátozott környezetben. Ez a legegyszerűbb lehetőség – valójában nem Linuxot indít el, hanem Linux eszközöket. Ezekkel az alkalmazásokkal komoly korlátozások vannak, azonban részleges parancssor funkciót kap.
Mielőtt a bonyolult megoldásokra térnék, először a legegyszerűbb módszert fogom megvizsgálni.
1. lehetőség: shell a „sandbox”-ban
Az egyik legegyszerűbb módszer egy iOS alkalmazás telepítése . Ez egy Parancssor a „sandboxban”, amely támogat több mint 80 parancsot, ára pedig nulla dollár. A Python 2.7, Python 3.7, Lua, C, Clang és sok más program nyújtásával érkezik.
Hasonló funkciókkal bír , amelyet a fejlesztők „a képernyős bevitelhez készített felhasználói felület tesztelőjének” írnak le. Az a-Shell forráskódja elérhető , 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++ mellett Clangot és Clang++-t is tartalmaz. Még a pip segítségével Python csomagok telepítését is lehetővé teszi.
2. lehetőség: SSH
Egy lépéssel tovább van az SSH kliens beállítása az alkalmazás letöltéséhez képest. Már régóta használhatunk bármelyik iOS alapú SSH kliens alkalmazást, hogy csatlakozzunk ahhoz a szerverhez, amelyen Linux vagy BSD fut. Az SSH használatának előnye, hogy bármilyen disztribúció és bármely szoftver futhat a szerveren. Távollévő munkát végzel, és az eredmények egyszerűen átkerülnek az iOS eszköz terminálemulátorába.
— ez egy népszerű, fizetős SSH alkalmazás a . Ha figyelmen kívül hagyjuk az eszköz kis kijelzőjét, akkor a szoftver használata hasonló a szerverhez való csatlakozáshoz bármely más parancssoron keresztül. A Blink terminál csodálatos kivitelű, rengeteg előre elkészített témával rendelkezik, illetve lehetőséget biztosít egyedi témák létrehozására, beleértve az új betűtípusok beállítását és hozzáadását.
3. lehetőség: Linux indítása
Az SSH használata Linux szerverhez való csatlakozáshoz egy nagyszerű mód a parancssor elérésére, de külső szervert és hálózati kapcsolatot igényel. Ez nem a legnagyobb akadály, de teljesen figyelmen kívül sem hagyható, így szükséged lehet Linux használatára szerver nélkül.
Ha ez a helyzet, akkor egy lépéssel tovább kell lépned. — ez egy sajátos szolgáltatás a fejlesztés alatt álló alkalmazások telepítésére, még mielőtt azokat közzétennék az Apple App Store-ban. A TestFlight alkalmazást az App Store-ból lehet telepíteni, majd tesztelési alkalmazásokat használni. A TestFlight-on található alkalmazások lehetővé teszik, hogy egy korlátozott időtartamra egy korlátozott számú bétatesztelő (általában legfeljebb 10 000) dolgozzon velük. A tesztalkalmazás letöltéséhez a felhasználónak a készülékén át kell navigálnia a linkre, amely általában a tesztalkotó weboldalán található.
Alpine Linux indítása iSH-val
— egy open-source TestFlight alkalmazás, amely virtuális gépet futtat egy kész disztribúcióval. (kicsit munkálkodva más disztribúciókat is lehet futtatni).
Fontos jellemző: az alkalmazás kísérleti. Mivel az iSH jelenleg tesztalkalmazás, ne számítson állandó és megbízható működésre. A TestFlight alkalmazások időkorlátosak. Az aktuális kiadásom mindössze 60 napig fog működni. Ez azt jelenti, hogy 60 nap múlva kizárnak, és újra csatlakoznom kell az iSH következő tesztelési fázisához. Továbbiakban elveszítem minden fájlomat, ha nem exportálom őket az iOS Files segítségével, vagy nem másolom őket Git-host-ra vagy . Más szavakkal: Ne számítson rá, hogy ez mindaddig működni fog! Ne helyezzen el benne semmi fontosat! Készítsen biztonsági másolatot külön helyre!
iSH telepítése
Kezdje a telepítéssel az App Store-ból. Ezután telepítse az iSH-t, az alkalmazás weboldaláról. Van egy másik telepítési mód is, amely az AltStore-t használja, de én azt nem próbáltam ki. Vagy ha van egy díjfizetős fejlesztői fiókja, letöltheti az iSH tárolóját a GitHub-ról, és manuálisan telepítheti.
A TestFlight-on keresztül az iSH alkalmazás települ a készülékére. Mint bármely más alkalmazás esetében, itt is megjelenik egy ikon a képernyőn.
Csomagkezelés
Az iSH egy x86 emulátort futtat Alpine Linux-szal. Az Alpine egy apró disztribúció, amely kisebb 5 MB-nál. Először dolgoztam az Alpinéval, ezért azt gondoltam, hogy ez a minimalizmus zavaró lesz, de valójában nagyon tetszett.

Az Alpine csomagkezelőt használ , amely egyszerűbb, mint még az apt vagy a pacman.
Hogyan telepítsünk egy csomagot:
apk add packageHogyan töröljünk egy csomagot:
apk del packageHogyan tudhatunk meg más parancsokat és információt:
apk --helpA csomagkezelő frissítése:
apk update
apk upgradeSzövegszerkesztő telepítése
Az Alpine alapértelmezett szövegszerkesztője a Vi, de én a Vimot kedvelem, ezért telepítettem:
apk add vimIgény szerint telepíthető a Nano vagy az Emacs is.
Shell váltás
Nem tudom, ti hogy vagytok ezzel, de nekem kellett. Mások a vagy kedvelik. Az Alpine azonban az ash-t használja! Az ash a Dash shell forkja, ami önmaga az eredeti ash forkja, vagyis . A sebesség a prioritása. Én a sebességet akartam feláldozni a beépített automatikus kiegészítés, a Vim billentyűkezelés és a szintaxiskiemelés érdekében, amit a fish shell-től szeretek és ismerek.
Fish telepítése:
apk add fishHa a Bash-ra van szükséged az automatikus kiegészítésével és a man-oldalaival együtt, akkor telepítsd őket:
apk add bash bash-doc bash-completionAz Alpine minimalista szemlélete általában azt jelenti, hogy bizonyos programok, amelyek más disztribúciókban egy csomagból állnak, több kisebb csomagra vannak szétbontva. Ez azt is jelenti, hogy konfigurálhatod és csökkentheted a rendszer méretét egészen addig, ahogyan szeretnéd.
A Bash telepítésével kapcsolatos további információk találhatók .
Alapértelmezett shell megváltoztatása
A fish telepítése után ideiglenesen áttérhetsz rá, ha beírod fish és átlépsz a shell-be. De azt szeretném, hogy a fish legyen az alapértelmezett shell, és a parancs chsh, amit más disztribúciókban használtam, nem működött.
Először nézzük meg, hova települt a fish:
which fishItt van, amit kaptam:
/usr/bin/fish Ezután módosítjuk a login shell-t fish-re. Bármilyen kényelmes szerkesztőt használhatsz. Ha kezdő vagy, telepítsd a Nanót (a következő paranccsal: apk add nano), hogy szerkeszthesd a konfigurációs fájlokat és menthesd őket CTRL+X-el, majd megerősíteni és kilépni.
De én a Vimot használtam:
vim /etc/passwdAz első sorom így nézett ki:
root:x:0:0:root:/root:/bin/ashAhhoz, hogy a fish legyen az alapértelmezett shell, módosítsuk ezt a sort a következőre:
root:x:0:0:root:/root:/usr/bin/fishEzután mentsük el a fájlt és lépjünk ki.
Biztos vagyok benne, hogy van egy jó módszer a shell elérési útjának megváltoztatására, hogy azonnal használhassuk. De nem tudom, ezért azt javaslom, térjünk vissza az alkalmazások böngészőjéhez, kényszerített kijelentkezéssel lépjünk ki a shellből, és a megbízhatóság kedvéért kapcsoljuk ki, majd indítsuk újra az iPadet vagy iPhone-t. Ismét nyissa meg az iSH-t, és most a „Welcome to Alpine!” üzenet és az apk indítási információ mellett látni fogja a fish bejelentkezési képernyőjének standard üdvözlő üzenetét. Üdvözöljük a fish-nél, a barátságos interaktív shellnél. Hurrá!

Python és pip beállítása
Úgy döntöttem, hogy hozzáadom (3.x verzió), nemcsak azért, hogy kódot írhassak, hanem mert több Python programot is használok. Telepítsük:
apk add python3Bár a Python 2.x elavult, azt is telepíthetjük:
apk add pythonTelepítjük a pip nevű Python csomagkezelőt és :
python3 -m ensurepip --default-pipA csomagkezelő telepítése és beállítása némi időt vehet igénybe, ezért csak várjon.
Ezután letölthetjük a fájlokat hálózaton át :
apk add curlOlvassuk el a kézikönyveket
A Fish beépített autocompletion-t használ a man-oldalak alapján. Mint más parancssori felhasználó, én is használom a kézikönyvet, man, de az Alpine-on nincs telepítve. Ezért telepítettem terminálos lapozóval: :
apk add man man-pages less less-docA man mellett használok egy csodálatos , amely egyszerűsített és közösség által kezelt man-oldalakat biztosít.
Ezt pip segítségével telepítettem:
pip install tldr A parancs tldr kapcsolódik a webhez új oldalak megszerzéséhez, amikor új oldalra kérdezik. Ha szeretné tudni, hogyan kell használni egy parancsot, írhat valami ilyesmit: tldr curl és kaphat egy leírást egyszerű angol nyelven és jó példákat a parancs használatára.
Természetesen ezt a telepítési munkát automatizálhatjuk vagy telepítő szkript segítségével, de valójában ez nem igazán felel meg az Alpine filozófiájának - a minimális telepítés igényeink szerinti beállítása. Ezen kívül, hát, ez rengeteg időt vett igénybe, igaz?
Dokumentáció
Az iSH Wikijében van egy "" oldal, amely jelentéseket ad arról, hogy mely csomagok működnek jelenleg. Egyébként úgy tűnik, hogy .
Egy másik wikioldalon magyarázzák el, hogyan lehet az iOS Files alkalmazásból. Ez az egyik módja a fájlok áthelyezésének és másolásának.
Git-t is telepíthetünk (igen! apk add git ) és feltölteni a munkáját a távoli tárolóba, vagy átadni azt a szervernek SSH-n keresztül. Természetesen bármennyi nagyszerű nyílt forráskódú projektet is letölthet és futtathat a GitHub-ról.
További információk az iSH-ról az alábbi linkeken találhatóak:
Hirdetés
VDS (Virtual Dedicated Server) ajánlatot tesz vagy Windows-on. Csak , a legjobb saját fejlesztésű szerverkezelő panellel és az egyik legjobb adatközponttal Oroszországban és az EU-ban. Siessen, hogy rendeljen!
Forrás: habr.com
