
Vedeli ste, že môžete spustiť príkazový riadok Linux na zariadení iOS? Môžete sa opýtať: „Prečo by som mal používať textové aplikácie na iPhone?“ To je spravodlivá otázka. Ale ak čítate Opensource.com, pravdepodobne poznáte odpoveď: používatelia Linuxu chcú mať možnosť pracovať s ním na akomkoľvek zariadení a používať svoje vlastné nastavenia.
Ale najviac túžia po riešení zložitých úloh.
Mám sedemročný iPad 2 Mini, ktorý je stále dosť dobrý na čítanie elektronických kníh a iné úlohy. Chcem ho však používať aj na prístup k príkazovému riadku aplikácií so svojím súborom programov a skriptov, bez ktorých nemôžem pracovať. Potrebujem prostredie, na ktoré som zvyknutý, a moju štandardnú vývojovú súpravu. A toto je spôsob, ako som to dokázal.
Pripojenie klávesnice
Práca s príkazovým riadkom na programovanie cez obrazovú klávesnicu telefónu alebo tabletu je dosť nepríjemná. Odporúčam pripojiť externú klávesnicu, buď cez Bluetooth, alebo pomocou adaptéra na pripojenie kamery na pripojenie drôtovej klávesnice (ja som si vybral druhú možnosť). Pri pripojení rozdelenej klávesnice Kinesis Advantage k iPhone 6 vzniká zvláštne zariadenie, ktoré pripomína z klasického Shadowrun.
Nastavenie shellu na iOS
Pre spustenie plnohodnotného systému Linux na iOS existujú dve možnosti:
- Secure shell (SSH) pripojená k počítaču s Linuxom
- Spustenie virtuálneho systému pomocou Alpine Linux s iSH, ktorý je open source, ale musí sa nainštalovať pomocou proprietárneho aplikácie TestFlight spoločnosti Apple
Existujú dva open-source terminálové emulátory, ktoré umožňujú prácu s open-source nástrojmi v obmedzenom prostredí. Toto je najobmedzenejšia možnosť – v skutočnosti nespúšťate Linux, ale nástroje Linuxu. Pri práci s týmito aplikáciami existujú prísne obmedzenia funkčnosti, avšak získate čiastočnú funkcionalitu príkazového riadku.
Predtým, než prejdeme k zložitým riešeniam, sa pozriem na najjednoduchší spôsob.
Možnosť 1: shell v „pieskovisku“
Jeden z najjednoduchších spôsobov je nainštalovať aplikáciu pre iOS . Je to príkazová uhlopriečka v „pieskovisku“ s podporou viac ako 80 príkazov za cenu nula dolárov. Dodáva sa s ním Python 2.7, Python 3.7, Lua, C, Clang a veľa ďalšieho.
Približne takúto funkcionalitu má , popisovaná vývojármi ako „testovacie používateľské rozhranie pre platformu s obrazovým vstupom“. Zdrojové kódy a-Shell sú zverejnené , je v aktívnom vývoji, poskytuje prístup k súborovému systému a dodáva sa s Lua, Python, Tex, Vim, JavaScript, C a C++, ako aj s Clang a Clang++. Umožňuje dokonca inštalovať balíky Pythonu pomocou pip.
Možnosť 2: SSH
Ďalším krokom vpred oproti sťahovaniu aplikácie je nastavenie SSH klienta. Už dlhý čas sme mohli používať akékoľvek z množstva aplikácií SSH klientov pre iOS na pripojenie k serveru, na ktorom beží Linux alebo BSD. Výhodou používania SSH je, že na serveri môže bežať akákoľvek distribúcia s akýmkoľvek softvérom. Pracujete na diaľku a výsledky sa jednoducho prenášajú do terminálového emulátora na vašom zariadení iOS.
— je populárna platená SSH aplikácia v . Ak nebudeme brať do úvahy malú obrazovku zariadenia, používanie tohto softvéru sa podobá pripojeniu k serveru cez akýkoľvek iný príkazový riadok. Terminál Blink vyzerá skvele, má množstvo preddefinovaných tém a funkciu vytvárania vlastných, vrátane možnosti nastaviť a pridať nové písma.
Možnosť 3: spustenie Linuxu
Používanie SSH na pripojenie k serveru so systémom Linux je skvelý spôsob, ako získať prístup k príkazovému riadku, ale vyžaduje externý server a internetové pripojenie. Netrápi to najväčšou prekážkou, no nie je možné to úplne ignorovať, preto možno budete potrebovať pracovať s Linuxom bez servera.
Ak je to váš prípad, potom budete musieť urobiť ešte jeden krok vpred. — je to proprietárna služba na inštaláciu vyvíjaných aplikácií ešte predtým, ako boli zverejnené v Apple App Store. Aplikáciu TestFlight si môžete nainštalovať z App Store a následne používať testovacie aplikácie. Aplikácie v TestFlight umožňujú obmedzenému počtu beta testerov (zvyčajne do 10 000) pracovať s nimi počas obmedzeného časového obdobia. Ak chcete stiahnuť testovaciu aplikáciu, musíte prejsť zo svojho zariadenia na odkaz, ktorý sa zvyčajne nachádza na webovej stránke vývojára testovacej aplikácie.
Spustenie Alpine Linux s iSH
— je open-source aplikácia TestFlight, ktorá spúšťa virtuálny stroj s hotovým distribučným balíkom (po troche práce môžete spustiť aj iné distribúcie).
Dôležitá vlastnosť: aplikácia je experimentálna. Pretože iSH je zatiaľ testovacia aplikácia, neočakávajte trvalú a spoľahlivú funkčnosť. Aplikácie TestFlight sú časovo obmedzené. Moje aktuálne zostavenie bude fungovať iba 60 dní. To znamená, že po 60 dňoch budem vylúčený a budem sa musieť znova pripojiť k nasledujúcemu testovaciemu cyklu iSH. Okrem toho stratím všetky svoje súbory, ak ich neexportujem pomocou Files na iOS alebo ich nekopírujem na Git host alebo . Inými slovami: Nehľadajte, že to všetko bude pokračovať v činnosti! Nerobte v systéme nič dôležité! Robte zálohy na iné miesto!
Inštalácia iSH
Začnite inštaláciou z App Store. Potom nainštalujte iSH, z webovej stránky aplikácie. Existuje aj iný spôsob inštalácie pomocou AltStore, ale to som neskúšal. Alebo ak máte platené vývojárske konto, môžete si stiahnuť repozitár iSH z GitHubu a nainštalovať ho ručne.
Pomocou odkazu TestFlight nainštaluje aplikáciu iSH na vaše zariadenie. Rovnako ako pri akejkoľvek inej aplikácii sa na obrazovke objaví ikona.
Správa balíkov
iSH vykonáva emulátor x86 s Alpine Linux. Alpine je maličký distribučný balík s veľkosťou menej ako 5 MB. Prvýkrát som pracoval s Alpine, takže som si myslel, že taký minimalizmus bude obťažovať, ale vlastne sa mi veľmi páčil.

V Alpine sa používa správca balíkov , ktorý je jednoduchší dokonca aj než apt alebo pacman.
Ako nainštalovať balík:
apk add packageAko odstrániť balík:
apk del packageAko zistiť ďalšie príkazy a informácie:
apk --helpAktualizácia správcu balíkov:
apk update
apk upgradeInštalácia textového editora
Štandardným textovým editorom Alpine je Vi, ale ja dávam prednosť Vim, preto som ho nainštaloval:
apk add vimAk chcete, môžete nainštalovať aj Nano alebo Emacs.
Zmena shellu
Neviem, ako vy, ale ja som potreboval . Iní ľudia dávajú prednosť alebo . Vo Alpine sa však používa ash! Ash je fork shellu Dash, ktorý je sám fork pôvodného ashu, alebo . Jeho prioritou je rýchlosť. Rozhodol som sa vymeniť rýchlosť za zabudované automatické dopĺňanie, farby, ovládanie kláves a zvýraznenie syntaxe, ktoré mám rád a poznám z fish shell.
Inštalácia fish:
apk add fishAk potrebujete Bash s jeho automatickým dopĺňaním a man-stránkami, nainštalujte ich:
apk add bash bash-doc bash-completionMinimalistická ideológia Alpine zvyčajne znamená, že niektoré programy, ktoré sú v iných distribúciách jedným balíkom, budú rozdelené na niekoľko menších balíkov. To tiež znamená, že si môžete prispôsobiť a zmenšiť veľkosť systému presne tak, ako chcete.
Viac o inštalácii Bash sa môžete dozvedieť z .
Zmena predvoleného shellu
Po inštalácii fish sa môžete dočasne prepnúť na ňu zadaním fish a prechodom do shellu. Ale chcem, aby bol fish predvoleným shellom, a príkaz chsh, ktorý som použil v iných distribúciách, nefungoval.
Najprv zistíme, kde sa fish nainštalovala:
which fishTu je, čo mi vyšlo:
/usr/bin/fish Potom zmeníme login shell na fish. Môžete použiť akýkoľvek pohodlný editor. Ak ste začiatočník, nainštalujte Nano (príkazom apk add nano), aby ste mohli upraviť konfiguračné súbory a uložiť ich pomocou CTRL+X, potvrdiť a vyjsť.
Ale ja som použil Vim:
vim /etc/passwdMoja prvá línia vyzerala takto:
root:x:0:0:root:/root:/bin/ashAby sme spravili fish predvoleným shellom, zmeníme tento riadok na nasledujúci:
root:x:0:0:root:/root:/usr/bin/fishPotom uložíme súbor a výjdeme.
Som si istý, že existuje dobrý spôsob, ako zmeniť cestu k shellu, aby sa dala použiť okamžite. Ale neviem ho, preto odporúčam vrátiť sa do prehliadača aplikácií, nútene sa odhlásiť zo shellu a pre istotu vypnúť a reštartovať iPad alebo iPhone. Opäť otvorte iSH a teraz okrem správy „Vitajte v Alpine!“ a informácií o spustení s apk uvidíte štandardnú uvítaciu správu prihlasovania fish: Vitajte vo fish, priateľskej interaktívnej shelle. Hurá!

Nastavenie Pythonu a pip
Rozhodol som sa pridať (verziu 3.x), nielen preto, aby som písal kód, ale aj preto, že používam niekoľko programov v Pythone. Nainštalujme ho:
apk add python3Aj keď je Python 2.x zastaraný, môžete nainštalovať aj jeho:
apk add pythonNainštalujeme správcu balíkov Python s názvom pip a :
python3 -m ensurepip --default-pipNa inštaláciu a nastavenie správcu balíkov to chvíľu potrvá, takže jednoducho počkajte.
Potom si môžete stiahnuť nástroj na prenos súborov po sieti :
apk add curlČítame manuály
Fish využíva vstavané automatické doplňovanie na základe man stránok. Ako iní používatelia príkazového riadku, aj ja používam manuál man, ale v Alpine nie je nainštalovaný. Preto som ho nainštaloval s terminálovým pagerom :
apk add man man-pages less less-docOkrem man používam vynikajúci , ktorý poskytuje zjednodušené a komunitne spravované man stránky.
Nainštaloval som ho pomocou pip:
pip install tldr Tím tldr sa pripája na web pre získanie stránok, keď narazí na požiadavku na novú stránku. Ak potrebujete vedieť, ako používať príkaz, môžete napísať niečo ako tldr curl a získať popis v jednoduchom anglickom jazyku a dobré príklady použitia príkazu.
Samozrejme, celú túto prácu na inštalácii je možné automatizovať pomocou alebo inštalačného skriptu, ale skutočne to nie je veľmi v súlade s ideológiou Alpine — nastavením minimálnej inštalácie presne pod svoje potreby. Okrem toho, zaberie to toľko času, že?
Ďalšie informácie
Na Wiki iSH je stránka "" s hláseniami o tom, ktoré balíky teraz fungujú. Mimochodom, zdá sa, že .
Na inej wiki stránke je vysvetlené, ako z aplikácie iOS Files. Je to jeden zo spôsobov, ako môžete presúvať a kopírovať súbory.
Môžete tiež nainštalovať Git (áno! apk add git ) a poslať svoju prácu do vzdialeného repozitára alebo ju prenášať na server cez SSH. A samozrejme, môžete sťahovať a spúšťať akékoľvek množstvo skvelých open-source projektov z GitHubu.
Viac informácií o iSH nájdete na týchto odkazoch:
Na základe reklamy
Vdsina ponúka alebo Windows. Používame výlučne , najlepšia vo svojej triede ovládacia panela serverov vlastného vývoja a jedno z najlepších dátových centier v Rusku a EÚ. Nezabudnite si objednať!
Zdroj: habr.com
