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
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
Otprilike ista funkcionalnost
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.
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.
Pokretanje Alpine Linuxa s iSH-om
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
iSH instalacija
Počnite s instalacijom
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.
Alpine koristi upravitelj paketa
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
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
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!
Postavljanje Pythona i pipa
Odlučio sam dodati
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
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
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
apk add man man-pages less less-doc
Osim čovjeka, koristim se i veličanstvenim
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
dodatne informacije
iSH Wiki ima stranicu "
Druga wiki stranica objašnjava kako
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
Izvor: www.habr.com