Zagon ukazne vrstice Linux v sistemu iOS

Zagon ukazne vrstice Linux v sistemu iOS

Ali ste vedeli, da lahko zaženete ukazno vrstico Linux v napravi iOS? Morda se sprašujete: "Zakaj naj uporabljam aplikacije za pošiljanje sporočil v iPhonu?" Pošteno vprašanje. Toda če berete Opensource.com, verjetno poznate odgovor: uporabniki Linuxa ga želijo uporabljati v kateri koli napravi in ​​ga želijo sami prilagoditi.

Predvsem pa hrepenijo po reševanju kompleksnih problemov.

Imam sedem let star iPad 2 Mini, ki je še kar dober za branje e-knjig in druga opravila. Vendar ga želim uporabljati tudi za dostop do ukazne vrstice aplikacij s svojim naborom programov in skript, brez katerih ne morem delati. Potrebujem okolje, ki sem ga navajen, pa tudi svoje standardno razvojno okolje. In tukaj je, kako mi je to uspelo doseči.

Povezovanje s tipkovnico

Delo z ukazno vrstico za programiranje prek zaslonske tipkovnice telefona ali tablice je precej neprijetno. Priporočam, da priključite zunanjo tipkovnico, bodisi prek Bluetootha, bodisi z uporabo adapterja za povezavo kamere za povezavo žične tipkovnice (izbral sem slednje). Ko priključite razdeljeno tipkovnico Kinesis Advantage na iPhone 6, dobite čudno napravo, ki spominja na korporativni cyberdeck od klasike igra vlog Shadowrun.

Namestitev lupine na iOS

Za zagon polnofunkcionalnega sistema Linux v sistemu iOS sta na voljo dve možnosti:

  • Varna lupina (SSH), povezana z računalnikom Linux
  • Izvajanje virtualnega sistema z uporabo Alpine Linux z iSH, ki je odprtokoden, vendar ga je treba namestiti z Applovo lastniško aplikacijo TestFlight

Kot alternativa sta na voljo dve odprtokodni aplikaciji terminalskega emulatorja, ki omogočata delo z odprtokodnimi orodji v omejenem okolju. To je najbolj skrajšana možnost - pravzaprav tako izvajate orodja Linuxa, ne Linuxa. Pri delu s temi aplikacijami obstajajo resne omejitve funkcij, vendar dobite delno funkcionalnost ukazne vrstice.

Preden preidem na zapletene rešitve, si bom ogledal najpreprostejšo metodo.

1. možnost: lupina peskovnika

Eden najpreprostejših načinov je namestitev aplikacije za iOS LibTerm. To odprtokodno ukazna lupina v peskovniku s podporo za več kot 80 ukazov za nič dolarjev. Prihaja v paketu s programi Python 2.7, Python 3.7, Lua, C, Clang in še veliko več.

Ima približno enako funkcionalnost kot v peklu, ki so ga razvijalci opisali kot "testni uporabniški vmesnik za platformo za vnos zaslona." a-Shell viri so objavljeni open source, je v aktivnem razvoju, omogoča dostop do datotečnega sistema in prihaja z Lua, Python, Tex, Vim, JavaScript, C in C++ ter Clang in Clang++. Omogoča celo pip namestitev paketov Python.

Možnost 2: SSH

Še en korak pred prenosom aplikacije je nastavitev odjemalca SSH. Že dolgo lahko uporabljamo katero koli od številnih odjemalskih aplikacij SSH za iOS za povezavo s strežnikom, v katerem se izvaja Linux ali BSD. Prednost uporabe SSH je, da lahko strežnik izvaja katero koli distribucijo s katero koli programsko opremo. Delate na daljavo in rezultati vašega dela se preprosto prenesejo v terminalski emulator na vaši napravi iOS.

Utripajoča lupina je priljubljena plačljiva aplikacija SSH v open source. Če zanemarite majhen zaslon naprave, je uporaba te programske opreme podobna povezovanju s strežnikom prek katere koli druge ukazne vrstice. Blink Terminal izgleda odlično, ima veliko že pripravljenih tem in možnost ustvarjanja lastnih, vključno z možnostjo prilagajanja in dodajanja novih pisav.

Možnost 3: Zaženite Linux

Uporaba SSH za povezavo s strežnikom Linux je odličen način za dostop do ukazne vrstice, vendar zahteva zunanji strežnik in omrežno povezavo. To ni največja ovira, vendar je ni mogoče popolnoma prezreti, zato boste morda morali zagnati Linux brez strežnika.

Če je to vaš primer, potem boste morali narediti še korak dlje. testni let je lastniška storitev za namestitev razvitih aplikacij, še preden so objavljene v Apple App Store. Aplikacijo TestFlight lahko namestite iz trgovine App Store in nato uporabite testne aplikacije. Aplikacije v TestFlightu omejenemu številu beta preizkuševalcev (običajno do 10) omogočajo delo z njimi omejen čas. Če želite prenesti testno aplikacijo, morate iz svoje naprave iti na povezavo, ki se običajno nahaja na spletnem mestu razvijalca testne aplikacije.

Poganjanje Alpine Linux z iSH

ISH je odprtokodna aplikacija TestFlight, ki zažene virtualni stroj z že pripravljeno distribucijo Alpski Linux (z malo truda lahko poganjate druge distribucije).

Pomembna lastnost: eksperimentalna uporaba. Ker je iSH trenutno testna aplikacija, ne pričakujte konstantnega in zanesljivega delovanja. Aplikacije TestFlight so časovno omejene. Moja trenutna zgradba bo trajala le 60 dni. To pomeni, da bom po 60 dneh izločen in se bom moral ponovno pridružiti naslednjemu krogu testiranja iSH. Poleg tega bom izgubil vse svoje datoteke, razen če jih izvozim z uporabo Datoteke v sistemu iOS ali kopiram v gostitelja Git ali prek SSH. Z drugimi besedami: Ne pričakujte, da bo to še naprej delovalo! V sistem ne vnašajte ničesar za vas pomembnega! Varnostno kopirajte na ločeno lokacijo!

Namestitev iSH

Začnite z namestitvijo testni let iz App Store. Nato namestite iSH, prejel povezavo za namestitev s spletne strani aplikacije. Obstaja še en način namestitve z AltStore, vendar ga nisem poskusil. Ali pa, če imate plačan račun razvijalca, lahko prenesete iSH repozitorij iz GitHub in ga namestite sami.

S pomočjo povezave bo TestFlight namestil aplikacijo iSH na vašo napravo. Kot pri vsaki drugi aplikaciji se bo na zaslonu pojavila ikona.

Upravljanje paketov

iSH poganja emulator x86 z Alpine Linux. Alpine je majhna distribucija, ki meri manj kot 5 MB. To je bilo moje prvo sodelovanje z Alpine, zato sem mislil, da bo minimalizem moteč, vendar mi je bil pravzaprav zelo všeč.

Zagon ukazne vrstice Linux v sistemu iOS
Alpine uporablja upravitelja paketov apk, kar je lažje kot celo apt ali pacman.

Kako namestiti paket:

apk add package

Kako odstraniti paket:

apk del package

Kako najti druge ukaze in informacije:

apk --help

Posodobitev upravitelja paketov:

apk update
apk upgrade

Namestitev urejevalnika besedil

Privzeti urejevalnik besedil Alpine je Vi, vendar imam raje Vim, zato sem ga namestil:

apk add vim

Po želji lahko namestite Nano ali Emacs.

Menjava lupine

Ne vem zate, ampak jaz sem potreboval lupina rib. Drugi imajo raje Bash ali zsh. Vendar Alpine uporablja pepel! Ash je vilica školjke Dash, ki je sama vilica originalnega pepela oz Almquist školjka. Njena prioriteta je hitrost. Odločil sem se zamenjati hitrost za vgrajeno samodokončanje, barve, kontrole tipk Vim in poudarjanje sintakse, ki jih obožujem in poznam iz ribjih lupin.

Namestitev rib:

apk add fish

Če potrebujete Bash s samodokončanjem in priročnimi stranmi, jih namestite:

apk add bash bash-doc bash-completion

Minimalistična ideologija Alpine običajno pomeni, da bodo nekateri programi, ki so pakirani v drugih distribucijah, razdeljeni na več manjših paketov. Pomeni tudi, da lahko prilagodite in zmanjšate velikost svojega sistema točno tako, kot želite.

Za več informacij o namestitvi Bash glejte ta vadnica.

Spreminjanje privzete lupine

Po namestitvi ribe lahko nanjo začasno preklopite z vnosom fish in gre v lupino. Toda ribo želim narediti za privzeto lupino in ukaz chsh, ki sem ga uporabljal v drugih distribucijah, ni delovalo.

Najprej ugotovimo, kje so nameščene ribe:

which fish

Evo, kaj sem dobil:

/usr/bin/fish

Nato spremenite lupino za prijavo v fish. Uporabite lahko kateri koli urejevalnik, ki vam ustreza. Če ste začetnik, potem namestite Nano (z ukazom apk add nano), tako da lahko urejate konfiguracijske datoteke in jih shranite prek CTRL+X, potrdite in zapustite.

Vendar sem uporabil Vim:

vim /etc/passwd

Moja prva vrstica je bila takšna:

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

Če želite, da je riba privzeta lupina, spremenite to vrstico v naslednje:

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

Nato shranite datoteko in zaprite.

Prepričan sem, da obstaja dober način za spremembo poti do lupine, da jo lahko takoj uporabimo. Vendar tega ne poznam, zato priporočam, da se vrnete v brskalnik aplikacij, prisilno zaprete lupino in da ste na varni strani, izklopite in znova zaženite iPad ali iPhone. Ponovno odprite iSH in zdaj poleg sporočila »Dobrodošli v Alpine!« in informacije o zagonu iz apk, boste videli standardno pozdravno sporočilo za prijavo v ribe: Dobrodošli v ribah, prijazni interaktivni lupini. Hura!

Zagon ukazne vrstice Linux v sistemu iOS

Nastavitev Pythona in pip

Odločil sem se dodati Python (različica 3.x), ne le za pisanje kode, ampak tudi zato, ker uporabljam več programov Python. Namestimo ga:

apk add python3

Čeprav je Python 2.x zastarel, ga lahko namestite:

apk add python

Namestimo upravitelja paketov Python z imenom pip and orodja za nastavitev:

python3 -m ensurepip --default-pip

Namestitev in konfiguracija upravitelja paketov bo trajala nekaj časa, zato počakajte.

Nato lahko prenesete orodje za prenos datotek prek omrežja curl:

apk add curl

Branje priročnikov

Fish uporablja vgrajeno samodejno dokončanje, ki temelji na straneh priročnika. Tako kot drugi uporabniki ukazne vrstice uporabljam priročnik man, vendar ni nameščen v Alpine. Zato sem ga namestil s terminalskim pozivnikom manj:

apk add man man-pages less less-doc

Poleg človeka uporabljam veličasten tldr pages projekt, ki ponuja poenostavljene strani priročnika, ki jih vodi skupnost.

Namestil sem ga s pipom:

pip install tldr

Ekipa tldr se poveže s spletom, da pridobi strani, ko naleti na zahtevo za novo stran. Če morate vedeti, kako uporabljati ukaz, lahko napišete nekaj takega tldr curl in dobite opis v navadni angleščini in dobre primere uporabe ukaza.

Seveda je vsa ta namestitvena dela mogoče avtomatizirati z uporabo dotfiles ali namestitveni skript, vendar to dejansko ne ustreza ideologiji Alpine - prilagoditev minimalne namestitve natančno vašim potrebam. Poleg tega je trajalo tako dolgo, kajne?

dodatne informacije

iSH Wiki ima stran "kaj deluje" s poročili o tem, kateri paketi se trenutno izvajajo. Mimogrede, izgleda npm trenutno ne deluje.

Druga wiki stran pojasnjuje, kako dostop do datotek iSH iz aplikacije iOS Files. To je eden od načinov premikanja in kopiranja datotek.

Lahko tudi namestite Git (ja! apk add git ) in potisnite svoje delo v oddaljeno skladišče ali ga prenesite na strežnik prek SSH. In seveda lahko prenesete in zaženete poljubno število odličnih odprtokodnih projektov z GitHuba.

Več informacij o iSH najdete na teh povezavah:

O pravicah oglaševanja

Vdsina ponudbe virtualni strežniki na Linuxu ali Windows. Uporabljamo izključno opremo z blagovno znamko, najboljšo strežniško nadzorno ploščo lastne zasnove in enega najboljših podatkovnih centrov v Rusiji in EU. Pohitite z naročilom!

Zagon ukazne vrstice Linux v sistemu iOS

Vir: www.habr.com

Dodaj komentar