Pokretanje Linux naredbenog retka na iOS-u

Pokretanje Linux naredbenog retka na iOS-u

Jeste li znali da možete pokrenuti Linux naredbeni redak na iOS uređaju? Možda se pitate: "Zašto bih trebao koristiti tekstualne aplikacije na iPhoneu?" Pošteno pitanje. Ali ako čitate Opensource.com, vjerojatno znate odgovor: korisnici Linuxa žele ga koristiti na bilo kojem uređaju i žele koristiti vlastite postavke.

Ali najviše od svega žude za rješavanjem složenih problema.

Imam sedam godina star iPad 2 Mini koji je još uvijek dobar za čitanje e-knjiga i druge zadatke. Međutim, također ga želim koristiti za pristup naredbenom retku aplikacija sa svojim skupom programa i skripti, bez kojih ne mogu raditi. Treba mi okruženje na koje sam navikao, kao i moje standardno razvojno okruženje. A evo kako sam to uspio postići.

Spajanje na tipkovnicu

Rad s naredbenim redkom za programiranje putem zaslonske tipkovnice telefona ili tableta prilično je nezgodan. Preporučam povezivanje vanjske tipkovnice, bilo putem Bluetootha ili pomoću adaptera za spajanje kamere za spajanje žične tipkovnice (odabrao sam potonje). Spajanje Kinesis Advantage podijeljene tipkovnice na iPhone 6 rezultira čudnim uređajem koji izgleda kao korporativni cyberdeck od klasičnog igranje uloga trčanje u sjeni.

Instaliranje ljuske na iOS

Za pokretanje potpuno funkcionalnog Linux sustava na iOS-u postoje dvije mogućnosti:

  • Sigurna ljuska (SSH) spojena na Linux stroj
  • Pokretanje virtualnog sustava koristeći Alpine Linux s iSH, koji je otvorenog koda, ali se mora instalirati pomoću Appleove vlasničke aplikacije TestFlight

Alternativno, postoje dvije aplikacije otvorenog koda za emulator terminala koje pružaju mogućnost rada s alatima otvorenog koda u ograničenom okruženju. Ovo je najskraćenija opcija - zapravo, ovako ne pokrećete Linux, već Linux alate. Postoje ozbiljna ograničenja pri radu s ovim aplikacijama, ali dobivate djelomičnu funkcionalnost naredbenog retka.

Prije nego prijeđem na složena rješenja, razmotrit ću najjednostavniji način.

Opcija 1: Shell u sandboxu

Jedan od najlakših načina je instalirati iOS aplikaciju LibTerm. To otvoreni izvor sandbox naredbena ljuska s podrškom za više od 80 naredbi za nula dolara. Dolazi s Python 2.7, Python 3.7, Lua, C, Clang i više.

Otprilike ista funkcionalnost kao pakao, koji su razvojni programeri opisali kao "testno korisničko sučelje za platformu s unosom na ekranu." a-Shell izvori objavili open source, u aktivnom je razvoju, pruža pristup datotečnom sustavu i isporučuje se s Lua, Python, Tex, Vim, JavaScript, C i C++ te Clang i Clang++. Čak vam omogućuje da instalirate Python pakete s pipom.

Opcija 2: SSH

Još jedan korak izvan preuzimanja aplikacije je postavljanje SSH klijenta. Dugo smo bili u mogućnosti koristiti bilo koju od mnogih iOS SSH klijentskih aplikacija za povezivanje s poslužiteljem koji pokreće Linux ili BSD. Prednost korištenja SSH-a je u tome što se bilo koja distribucija može pokrenuti na poslužitelju s bilo kojim softverom. Radite na daljinu, a rezultati vašeg rada jednostavno se prenose u emulator terminala na vašem iOS uređaju.

treptati školjka je popularna plaćena SSH aplikacija u open source. Ako ne obraćate pozornost na mali zaslon uređaja, tada je korištenje ovog softvera kao povezivanje s poslužiteljem putem bilo koje druge naredbene linije. Blink terminal izgleda sjajno, ima mnogo gotovih tema i mogućnost izrade vlastitih, uključujući mogućnost prilagodbe i dodavanja novih fontova.

Opcija 3: Pokrenite Linux

Korištenje SSH-a za povezivanje s poslužiteljem pod Linuxom odličan je način pristupa naredbenom retku, ali zahtijeva vanjski poslužitelj i mrežnu vezu. Ovo nije najveća prepreka, ali se ne može potpuno zanemariti, pa ćete možda morati raditi s Linuxom bez poslužitelja.

Ako je ovo vaš slučaj, morat ćete napraviti korak dalje. TestFlight je vlasnička usluga za instaliranje aplikacija u razvoju prije nego što budu puštene u Apple App Store. Možete instalirati aplikaciju TestFlight iz App Storea i zatim koristiti testne aplikacije. Aplikacije u TestFlightu dopuštaju ograničenom broju beta testera (obično do 10 000) da s njima rade ograničeno vrijeme. Za preuzimanje testne aplikacije morate pristupiti poveznici na svom uređaju, koja se obično nalazi na web-mjestu razvojnog programera testne aplikacije.

Pokretanje Alpine Linuxa s iSH-om

ISH je Open-Source aplikacija TestFlight koja pokreće virtualni stroj s već pripremljenom distribucijom Alpine Linux (uz malo rada, možete pokrenuti i druge distribucije).

Važna značajka: primjena eksperimentalna. Budući da je iSH trenutačno testna aplikacija, ne očekujte dosljednu i pouzdanu izvedbu. TestFlight aplikacije su vremenski ograničene. Moja trenutna verzija radit će samo 60 dana. To znači da ću nakon 60 dana biti isključen i da ću se morati ponovno pridružiti sljedećoj fazi iSH testiranja. Štoviše, izgubit ću sve svoje datoteke ako ih ne izvezem s Datotekama na iOS-u ili kopiram na Git host ili putem SSH-a. Drugim riječima: Ne očekujte da će sve nastaviti raditi! Ne stavljajte ništa vama važno u sustav! Sigurnosno kopirajte na zasebno mjesto!

iSH instalacija

Počnite s instalacijom TestFlight iz App Storea. Zatim instalirajte iSH, dobivanje veze za instalaciju s web stranice aplikacije. Postoji još jedan način instaliranja pomoću AltStorea, ali ga nisam isprobao. Ili, ako imate plaćeni račun razvojnog programera, možete preuzeti iSH repozitorij s GitHuba i sami ga instalirati.

Koristeći vezu, TestFlight će instalirati iSH aplikaciju na vaš uređaj. Kao i kod svake druge aplikacije, na zaslonu će se pojaviti ikona.

Upravljanje paketima

iSH pokreće x86 emulator s Alpine Linuxom. Alpine je malena distribucija koja je manja od 5 MB. Ovo je bio moj prvi put da radim s Alpineom, pa sam mislio da će minimalizam smetati, ali mi se jako svidio.

Pokretanje Linux naredbenog retka na iOS-u
Alpine koristi upravitelj paketa aPKšto je lakše čak i nego apt ili pacman.

Kako instalirati paket:

apk add package

Kako ukloniti paket:

apk del package

Kako saznati ostale naredbe i informacije:

apk --help

Ažuriranje upravitelja paketa:

apk update
apk upgrade

Instaliranje uređivača teksta

Alpineov standardni uređivač teksta je Vi, ali ja više volim Vim, pa sam ga instalirao:

apk add vim

Ako želite, možete instalirati Nano ili Emacs.

Promjena ljuske

Ne znam za vas, ali meni je trebalo školjka ribe. Drugi ljudi više vole Tresnuti ili Zsh. Međutim, Alpine koristi pepeo! Ash je vilica ljuske Dash, koja je i sama vilica izvornog pepela, ili Almquist školjka. Prioritet joj je brzina. Odlučio sam zamijeniti brzinu za ugrađeno automatsko dovršavanje, boje, upravljanje Vim ključevima i isticanje sintakse koje volim i poznajem iz riblje ljuske.

instalacija ribe:

apk add fish

Ako vam je potreban Bash sa svojim autocompletion i man stranicama, onda ih instalirajte:

apk add bash bash-doc bash-completion

Alpineova minimalistička ideologija obično znači da će neki programi koji su jedan paket u drugim distribucijama biti podijeljeni u nekoliko manjih paketa. To također znači da možete podesiti i smanjiti sustav baš onako kako želite.

Za više informacija o instaliranju Basha pogledajte ovaj vodič.

Promjena zadane ljuske

Nakon što je fish instaliran, možete se privremeno prebaciti na njega upisivanjem fish i odlazak u školjku. Ali želim postaviti fish kao zadanu ljusku i naredbu chsh, koji sam koristio u drugim distribucijama, nije radio.

Prvo, saznajmo gdje je instalirana riba:

which fish

Evo što mi se dogodilo:

/usr/bin/fish

Zatim promijenite ljusku za prijavu u fish. Možete koristiti bilo koji uređivač koji želite. Ako ste početnik, instalirajte Nano (komandom apk add nano) tako da možete urediti konfiguracijske datoteke i spremiti ih putem CTRL+X, potvrdite i izađite.

Ali koristio sam Vim:

vim /etc/passwd

Moj prvi red je bio:

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

Da bi riba bila zadana ljuska, promijenite ovaj redak u sljedeće:

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

Zatim spremite datoteku i izađite.

Siguran sam da postoji dobar način za promjenu putanje ljuske tako da se može odmah koristiti. Ali ja ga ne poznajem, pa preporučujem da se vratite u preglednik aplikacija, prisilno izađete iz ljuske i da budete sigurni, isključite i ponovno pokrenite iPad ili iPhone. Ponovno otvorite iSH i sada, uz poruku "Dobro došli u Alpine!" i informacije o pokretanju iz apk-a, vidjet ćete standardnu ​​riblju poruku dobrodošlice za prijavu: Dobrodošli u ribu, prijateljsku interaktivnu ljusku... Ura!

Pokretanje Linux naredbenog retka na iOS-u

Postavljanje Pythona i pipa

Odlučio sam dodati Piton (verzija 3.x), ne samo za pisanje koda, već i zato što koristim nekoliko Python programa. Instalirajmo ga:

apk add python3

Iako je Python 2.x zastario, možete ga instalirati i vi:

apk add python

Instalirajte Python upravitelj paketa pod nazivom pip and alati za postavljanje:

python3 -m ensurepip --default-pip

Za instalaciju i konfiguraciju upravitelja paketa trebat će neko vrijeme, stoga budite strpljivi.

Zatim možete preuzeti alat za prijenos datoteka preko mreže sklupčati:

apk add curl

Čitanje priručnika

Fish koristi ugrađeno automatsko dovršavanje na temelju man stranica. Kao i drugi korisnici naredbenog retka, koristim priručnik man, a Alpine ga nema instaliran. Pa sam ga instalirao s terminalskim dojavljivačem manje:

apk add man man-pages less less-doc

Osim čovjeka, koristim se i veličanstvenim projekt tldr stranica, koji pruža pojednostavljene stranice priručnika vođene zajednicom.

Instalirao sam ga s pipom:

pip install tldr

Momčad tldr spaja se na web kako bi dohvatio stranice kada naiđe na zahtjev za novom stranicom. Ako trebate znati kako koristiti naredbu, možete napisati nešto poput tldr curl i dobiti opis na jednostavnom engleskom i dobre primjere o tome kako koristiti naredbu.

Naravno, sav ovaj instalacijski rad može se automatizirati korištenjem dotfiles ili instalacijsku skriptu, ali to zapravo nije baš u skladu s Alpineovom ideologijom - prilagodbom minimalne instalacije jasno vašim potrebama. Osim toga, trajalo je tako dugo, zar ne?

dodatne informacije

iSH Wiki ima stranicu "što radi" s izvješćima o tome koji se paketi trenutno izvode. Usput, izgleda npm trenutno ne radi.

Druga wiki stranica objašnjava kako pristup iSH datotekama iz aplikacije iOS Files. Ovo je jedan od načina na koji možete premještati i kopirati datoteke.

Također možete instalirati Git (da! apk add git ) i gurnite svoj rad u udaljeni repozitorij ili ga gurnite na poslužitelj putem SSH-a. I, naravno, možete preuzeti i pokrenuti bilo koji broj izvrsnih projekata otvorenog koda s GitHuba.

Više informacija o iSH možete pronaći na ovim poveznicama:

O pravima oglašavanja

Vdsina ponude virtualni poslužitelji na Linuxu ili Windows. Koristimo isključivo markirana oprema, najbolja vlastita upravljačka ploča poslužitelja te vrste i jedan od najboljih podatkovnih centara u Rusiji i EU. Požurite s narudžbom!

Pokretanje Linux naredbenog retka na iOS-u

Izvor: www.habr.com

Dodajte komentar