Lansarea liniei de comandă Linux pe iOS

Lansarea liniei de comandă Linux pe iOS

Știați că puteți rula linia de comandă Linux pe un dispozitiv iOS? S-ar putea să vă întrebați „De ce ar trebui să folosesc aplicații de trimitere text pe iPhone?” Intrebare corecta. Dar dacă citiți Opensource.com, probabil că știți răspunsul: utilizatorii Linux doresc să îl poată folosi pe orice dispozitiv și doresc să îl personalizeze ei înșiși.

Dar, mai ales, ei tânjesc să rezolve probleme complexe.

Am un iPad 2 Mini vechi de șapte ani, care este încă destul de bun pentru a citi cărți electronice și alte sarcini. Cu toate acestea, vreau să îl folosesc și pentru a accesa linia de comandă a aplicațiilor cu setul meu de programe și scripturi, fără de care nu pot lucra. Am nevoie de un mediu cu care sunt obișnuit, precum și de mediul meu de dezvoltare standard. Și iată cum am reușit să obțin asta.

Conectarea la o tastatură

Lucrul cu linia de comandă pentru programare prin tastatura de pe ecran a unui telefon sau tabletă este destul de incomod. Recomand conectarea unei tastaturi externe, fie prin Bluetooth, fie folosirea unui adaptor de conectare la cameră pentru a conecta o tastatură cu fir (eu am ales-o pe cea din urmă). Când conectați tastatura split Kinesis Advantage la un iPhone 6, obțineți un dispozitiv ciudat care seamănă cu cyberdeck corporativ din clasic joc de rol Shadowrun.

Instalarea shell-ului pe iOS

Pentru a rula un sistem Linux cu funcții complete pe iOS, există două opțiuni:

  • Secure shell (SSH) conectat la un computer Linux
  • Rularea unui sistem virtual folosind Alpine Linux cu iSH, care este open source, dar trebuie instalat folosind aplicația proprietară TestFlight de la Apple

Ca alternativă, există două aplicații de emulator de terminale open source care oferă posibilitatea de a lucra cu instrumente open-source într-un mediu restrâns. Aceasta este cea mai redusă opțiune - de fapt, așa rulați instrumentele Linux, nu Linux. Există limitări severe ale caracteristicilor atunci când lucrați cu aceste aplicații, dar obțineți funcționalitate parțială a liniei de comandă.

Înainte de a trece la soluții complexe, mă voi uita la cea mai simplă metodă.

Opțiunea 1: carcasă Sandbox

Una dintre cele mai ușoare modalități este să instalați aplicația iOS LibTerm. Aceasta sursa deschisa Shell de comandă cu nisip cu suport pentru peste 80 de comenzi pentru zero dolari. Vine la pachet cu Python 2.7, Python 3.7, Lua, C, Clang și multe altele.

Are aproximativ aceeași funcționalitate ca naiba, descris de dezvoltatori drept „o interfață de testare pentru utilizator pentru platforma de introducere pe ecran”. Sursele a-Shell sunt postate open-source, este în dezvoltare activă, oferă acces la sistemul de fișiere și vine cu Lua, Python, Tex, Vim, JavaScript, C și C++, precum și Clang și Clang++. Vă permite chiar să instalați pip pachetele Python.

Opțiunea 2: SSH

Un alt pas înainte de a descărca o aplicație este configurarea unui client SSH. De mult timp, am putut folosi oricare dintre numeroasele aplicații client SSH pentru iOS pentru a ne conecta la un server care rulează Linux sau BSD. Avantajul utilizării SSH este că serverul poate rula orice distribuție cu orice software. Lucrezi de la distanță, iar rezultatele muncii tale sunt pur și simplu transferate pe emulatorul de terminal de pe dispozitivul tău iOS.

Blink shell este o aplicație SSH plătită populară în open-source. Dacă ignorați ecranul mic al dispozitivului, atunci utilizarea acestui software este similară cu conectarea la server prin orice altă linie de comandă. Blink Terminal arată grozav, are multe teme gata făcute și abilitatea de a vă crea propriile, inclusiv abilitatea de a personaliza și adăuga fonturi noi.

Opțiunea 3: Lansați Linux

Utilizarea SSH pentru a vă conecta la un server Linux este o modalitate excelentă de a accesa linia de comandă, dar necesită un server extern și o conexiune la rețea. Acesta nu este cel mai mare obstacol, dar nu poate fi ignorat complet, așa că poate fi necesar să rulați Linux fără un server.

Dacă acesta este cazul tău, atunci va trebui să faci un pas mai departe. TestFlight este un serviciu proprietar pentru instalarea aplicațiilor dezvoltate chiar înainte ca acestea să fie publicate în Apple App Store. Puteți instala aplicația TestFlight din App Store și apoi utilizați aplicații de testare. Aplicațiile din TestFlight permit unui număr limitat de testeri beta (de obicei, până la 10) să lucreze cu aceștia pentru o perioadă limitată de timp. Pentru a descărca o aplicație de testare, trebuie să mergeți de pe dispozitiv la un link care se află de obicei pe site-ul web al dezvoltatorului aplicației de testare.

Rularea Alpine Linux cu iSH

ISH este o aplicație open-source TestFlight care lansează o mașină virtuală cu o distribuție gata făcută Linux Alpine (cu puțin efort, puteți rula alte distribuții).

Caracteristică importantă: aplicare experimentală. Deoarece iSH este în prezent o aplicație de testare, nu vă așteptați la o funcționare constantă și fiabilă. Aplicațiile TestFlight sunt limitate în timp. Construcția mea actuală va dura doar 60 de zile. Aceasta înseamnă că după 60 de zile voi fi eliminat și va trebui să mă reînscriu în următoarea rundă de testare iSH. În plus, îmi voi pierde toate fișierele, cu excepția cazului în care le export folosind Fișiere pe iOS sau le copiez pe o gazdă Git sau prin SSH. Cu alte cuvinte: Nu vă așteptați să funcționeze în continuare! Nu pune nimic important pentru tine în sistem! Faceți backup într-o locație separată!

Instalarea iSH

Începeți cu instalarea TestFlight din App Store. Apoi instalați iSH, a primit linkul de instalare de pe site-ul aplicației. Există o altă metodă de instalare folosind AltStore, dar nu am încercat-o. Sau, dacă aveți un cont de dezvoltator plătit, puteți descărca depozitul iSH de pe GitHub și îl puteți instala singur.

Folosind linkul, TestFlight va instala aplicația iSH pe dispozitivul dvs. Ca și în cazul oricărei alte aplicații, pe ecran va apărea o pictogramă.

Managementul pachetelor

iSH rulează un emulator x86 cu Alpine Linux. Alpine este o distribuție mică, cu o dimensiune mai mică de 5 MB. A fost prima dată când am lucrat cu Alpine, așa că am crezut că minimalismul ar fi enervant, dar chiar mi-a plăcut foarte mult.

Lansarea liniei de comandă Linux pe iOS
Alpine folosește un manager de pachete APK, care este mai ușor decât chiar și apt sau pacman.

Cum se instalează pachetul:

apk add package

Cum să eliminați un pachet:

apk del package

Cum să găsiți alte comenzi și informații:

apk --help

Actualizare manager de pachete:

apk update
apk upgrade

Instalarea unui editor de text

Editorul de text implicit al Alpine este Vi, dar eu prefer Vim, așa că l-am instalat:

apk add vim

Dacă doriți, puteți instala Nano sau Emacs.

Schimbarea carcasei

Nu știu despre tine, dar aveam nevoie coaja de pește. Alți oameni preferă Bash sau zsh. Cu toate acestea, Alpine folosește cenușă! Ash este o furculiță a carcasei Dash, care ea însăși este o furculiță a cenușii originale, sau coajă Almquist. Prioritatea ei este viteza. Am decis să schimb viteza pentru completarea automată încorporată, culori, comenzile cheie Vim și sintaxa evidențiind ceea ce iubesc și cunosc din scoica de pește.

Instalare pește:

apk add fish

Dacă aveți nevoie de Bash cu completarea automată și paginile sale de manual, atunci instalați-le:

apk add bash bash-doc bash-completion

Ideologia minimalistă a lui Alpine înseamnă de obicei că unele programe care sunt ambalate în alte distribuții vor fi împărțite în mai multe pachete mai mici. De asemenea, înseamnă că puteți personaliza și reduce dimensiunea sistemului exact așa cum doriți.

Pentru mai multe informații despre instalarea Bash, consultați acest tutorial.

Schimbarea shell-ului implicit

După instalarea peștelui, puteți trece temporar la acesta introducând fish și intrând în carapace. Dar vreau să fac din fish coaja implicită și comanda chsh, pe care l-am folosit pe alte distribuții, nu a funcționat.

Mai întâi aflăm unde este instalat peștele:

which fish

Iată ce am primit:

/usr/bin/fish

Apoi, schimbați shell-ul de conectare în fish. Puteți folosi orice editor convenabil pentru dvs. Dacă sunteți începător, atunci instalați Nano (cu comanda apk add nano) astfel încât să puteți edita fișierele de configurare și să le salvați prin CTRL+X, să confirmați și să ieșiți.

Dar am folosit Vim:

vim /etc/passwd

Prima mea linie a fost cam asa:

root:x:0:0:root:/root:/bin/ash

Pentru a face peștele cochilia implicită, modificați această linie la următoarea:

root:x:0:0:root:/root:/usr/bin/fish

Apoi salvați fișierul și ieșiți.

Sunt sigur că există o modalitate bună de a schimba calea către shell, astfel încât să poată fi folosit imediat. Dar nu știu asta, așa că recomand să reveniți la browserul aplicației, să forțați ieșirea din shell și, pentru a fi în siguranță, opriți și reporniți iPad-ul sau iPhone-ul. Deschideți iSH din nou și acum, pe lângă mesajul „Bine ați venit în Alpine!” și informații despre lansarea din apk, veți vedea mesajul standard de bun venit pentru conectare pește: Bine ați venit la pește, coaja interactivă prietenoasă. Ura!

Lansarea liniei de comandă Linux pe iOS

Configurarea Python și pip

Am decis să adaug Piton (versiunea 3.x), nu doar pentru a scrie cod, ci și pentru că folosesc mai multe programe Python. Hai să-l instalăm:

apk add python3

Deși Python 2.x este învechit, îl puteți instala:

apk add python

Să instalăm managerul de pachete Python numit pip și instrumente de configurare:

python3 -m ensurepip --default-pip

Va dura ceva timp pentru a instala și configura managerul de pachete, așa că așteptați.

Apoi puteți descărca un instrument pentru a transfera fișiere prin rețea răsuci:

apk add curl

Citirea manualelor

Fish folosește completarea automată încorporată bazată pe paginile de manual. Ca și alți utilizatori de linie de comandă, folosesc manualul man, dar nu este instalat în Alpine. Așa că l-am instalat cu paginatorul terminal mai puțin:

apk add man man-pages less less-doc

Pe lângă om, folosesc magnific proiect pagini tldr, care oferă pagini de manual simplificate și bazate pe comunitate.

L-am instalat folosind pip:

pip install tldr

Echipă tldr se conectează la web pentru a prelua pagini atunci când întâlnește o solicitare pentru o pagină nouă. Dacă trebuie să știi cum să folosești o comandă, poți scrie ceva de genul tldr curl și obțineți o descriere în limba engleză simplă și exemple bune de utilizare a comenzii.

Desigur, toate aceste lucrări de instalare pot fi automatizate folosind dotfiles sau un script de instalare, dar de fapt acest lucru nu corespunde cu adevărat ideologiei Alpine - personalizând o instalare minimă exact pentru a se potrivi nevoilor dumneavoastră. În plus, a durat atât de mult, nu-i așa?

informaţii suplimentare

Wiki iSH are o pagină "ce funcționează" cu rapoarte despre pachetele care rulează în prezent. Apropo, se pare că npm nu funcționează acum.

O altă pagină wiki explică cum accesați fișierele iSH din aplicația iOS Files. Acesta este unul dintre modalitățile prin care puteți muta și copia fișiere.

Puteți instala și Git (da! apk add git ) și împingeți-vă munca într-un depozit de la distanță sau transferați-o pe server prin SSH. Și, desigur, puteți descărca și rula orice număr de proiecte open-source grozave din GitHub.

Mai multe informații despre iSH pot fi găsite la aceste link-uri:

Despre drepturile de publicitate

Vdsina ofertele servere virtuale pe Linux sau Windows. Folosim exclusiv echipamente de marcă, cel mai bun panou de control al serverului de acest fel cu design propriu și unul dintre cele mai bune centre de date din Rusia și UE. Grăbește-te să comanzi!

Lansarea liniei de comandă Linux pe iOS

Sursa: www.habr.com

Adauga un comentariu