
Ali ste vedeli, da lahko zaženete ukazno vrstico Linux na napravi iOS? Morda se sprašujete: „Zakaj bi uporabljal besedilne aplikacije na iPhonu?“ To je upravičeno vprašanje. Toda, če berete Opensource.com, verjetno poznate odgovor: uporabniki Linuxa želijo delati z njim na kateri koli napravi in uporabljati svoje nastavitve.
Toda najbolj si želijo reševati zapletene naloge.
Imam sedem let star iPad 2 Mini, ki je še vedno dovolj dober za branje e-knjig in drugih nalog. Vendar pa ga želim uporabljati tudi za dostop do ukazne vrstice aplikacij z mojim naborom programov in skript, brez katerih ne morem delati. Potrebujem okolje, na katerega sem navajen, ter svojo standardno razvojno okolje. In tako sem to dosegel.
Povezava 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 Bluetooth bodisi z uporabo adapterja za povezovanje kamer, da priključite žično tipkovnico (izbral sem drugo možnost). Ko priključite razdeljeno tipkovnico Kinesis Advantage na iPhone 6, dobite čudno napravo, ki spominja na iz klasične Shadowrun.
Namestitev lupine na iOS
Za zagon polnofunkcionalnega sistema Linux na iOS sta na voljo dva načina:
- Secure shell (SSH), povezan s računalnikom z Linuxom
- Zagon virtualnega sistema z Alpine Linux s iSH, ki je odprtokoden, vendar ga je treba namestiti s pomočjo lastniške aplikacije TestFlight podjetja Apple
Alternativno obstajata dve aplikaciji-emulatorja terminala v odprti kodi, ki omogočata delo z odprtokodnimi orodji v omejenem okolju. To je najbolj osnovna možnost — v resnici ne zagonite Linuxa, temveč orodja Linux. Pri delu s temi aplikacijami obstajajo stroge omejitve možnosti, vendar pridobite delno funkcionalnost ukazne vrstice.
Preden preidem na kompleksne rešitve, bom obravnaval najpreprostejši način.
Možnost 1: lupina v „peskovniku“
Eden od najpreprostejših načinov je namestitev aplikacije za iOS . To je ukazovna ljuska u „sandboxu“ s podrškom za više od 80 komandi po cijeni od nula dolara. U paketu dolazi s Python 2.7, Python 3.7, Lua, C, Clang i još mnogo toga.
Otprilike sličnu funkcionalnost ima , koju su programeri opisali kao „testno korisničko sučelje za platformu s unosom na ekranu“. Izvori a-Shell su objavljeni kao , aktivno se razvija, omogućava pristup datotečnom sustavu i dolazi s Lua, Python, Tex, Vim, JavaScript, C i C++, kao i s Clang i Clang++. Čak omogućava instalaciju Python paketa putem pip-a.
Opcija 2: SSH
Još jedan korak naprijed u odnosu na preuzimanje aplikacije je postavljanje SSH klijenta. Već dugo vremena mogli smo koristiti bilo koju od mnogih aplikacija SSH klijenata za iOS kako bismo se povezali na server na kojem je pokrenut Linux ili BSD. Prednost korištenja SSH je ta što na serveru može raditi bilo koja distribucija s bilo kojim softverom. Radite udaljeno i rezultati se jednostavno šalju u emulator terminala na iOS uređaju.
— to je popularna plaćena SSH aplikacija u . Ako ne obratite pažnju na mali ekran uređaja, korištenje ovog softvera nalikuje povezivanju s poslužiteljem preko bilo kojeg drugog komandnog retka. Blink terminal izgleda sjajno, ima mnogo unaprijed izrađenih tema i funkciju za izradu vlastitih, uključujući mogućnost prilagođavanja i dodavanja novih fontova.
Opcija 3: pokretanje Linuxa
Korištenje SSH za povezivanje s Linux serverom je odličan način za pristup komandnom retku, ali za to je potreban vanjski server i mrežna veza. To nije najveća prepreka, ali se ne može u potpunosti ignorirati, pa će vam možda biti potrebna mogućnost rada s Linuxom bez servera.
Ako je to vaš slučaj, trebat ćete napraviti još jedan korak naprijed. — to je lastniška storitev za namestitev razvojnih aplikacij, preden so te objavljene v Apple App Store. Aplikacijo TestFlight lahko namestite iz App Store, nato pa uporabljate testne aplikacije. Aplikacije v TestFlight omogočajo omejenemu številu beta testerjev (ponavadi do 10.000), da jih uporabljajo za omejeno časovno obdobje. Da bi prenesli testno aplikacijo, morate na svojem napravi klikniti povezavo, ki je običajno na spletni strani razvijalca testne aplikacije.
Zagon Alpine Linux z iSH
— je open-source aplikacija TestFlight, ki zažene virtualni stroj s predhodno pripravljenim distribucijskim paketom (s kančkom dela lahko zaženete tudi druge distribucije).
Pomembna značilnost: aplikacija je eksperimentalna. Ker je iSH trenutno testna aplikacija, ne pričakujte stalne in zanesljive delovanja. Aplikacije TestFlight so časovno omejene. Moja trenutna različica bo delovala le 60 dni. To pomeni, da me po 60 dneh izključijo in bom moral ponovno pristopiti k naslednjemu testnemu obdobju iSH. Poleg tega bom izgubil vse svoje datoteke, če jih ne izvozite z uporabo Files na iOS-u ali jih ne kopirate na Git gostitelja ali . Drugimi besedami: Ne pričakujte, da bo vse to še naprej delovalo! Ne shranjujte v sistem ničesar, kar je za vas pomembno! Naredite varnostne kopije na drugem mestu!
Namestitev iSH
Začnite z namestitvijo iz App Store. Nato namestite iSH, s spletne strani aplikacije. Obstaja še en način namestitve z uporabo AltStore, a tega nisem preizkusil. Ali pa, če imate plačljiv razvijalčev račun, lahko prenesete repozitorij iSH z GitHub in ga namestite sami.
S povezavo TestFlight bo iSH aplikacija nameščena na vaši napravi. Tako kot katera koli druga aplikacija se bo na zaslonu pojavila ikona.
Upravljanje paketov
iSH deluje kot emulator x86 z Alpine Linux. Alpine je zelo majhna distribucija, ki je manjša od 5 MB. Prvič sem delal z Alpine, zato sem mislil, da bo takšna minimalnost nadležna, vendar mi je dejansko zelo všeč.

Alpine uporablja upravljalnik paketov , ki je preprostejši od apt ali pacman.
Kako namestiti paket:
apk add packageKako odstraniti paket:
apk del packageKako izvedeti druge ukaze in informacije:
apk --helpPosodobitev upravljalnika paketov:
apk update
apk upgradeNamestitev urejevalnika besedila
Privzeti urejevalnik besedila v Alpine je Vi, vendar imam raje Vim, zato sem ga namestil:
apk add vimPo želji lahko namestite tudi Nano ali Emacs.
Zamenjava lupine
Ne vem, kako je pri vas, a potreboval sem . Druge osebe raje uporabljajo ili . Vendar pa Alpine uporablja ash! Ash je odcep lupine Dash, ki je sama odcep iz izvirnega asha ali . Njegova prednost je hitrost. Odločil sem se žrtvovati hitrost za vgrajeno samodejno dopolnjevanje, barve, upravljanje tipk Vim in poudarjanje sintakse, ki jih imam rad in jih poznam iz fish shell.
Namestitev fish:
apk add fishČe potrebujete Bash z njenim samodejnim dopolnjevanjem in man-stranmi, jo namestite:
apk add bash bash-doc bash-completionMinimalistična ideologija Alpine običajno pomeni, da so nekateri programi, ki so v drugih distribucijah en paket, razdeljeni na več manjših paketov. To pomeni tudi, da lahko prilagodite in zmanjšate velikost sistema ravno tako, kot želite.
Več o namestitvi Basha lahko izveste iz .
Zamenjava privzete lupine
Po namestitvi fish se lahko začasno preklopite nanjo tako, da vtipkate fish in preidete v lupino. Ampak želim, da postane fish privzeta lupina, ukaz chsh, ki sem ga uporabljal v drugih distribucijah, ni deloval.
Najprej ugotovimo, kam se je fish namestil:
which fishTukaj je, kar sem dobil:
/usr/bin/fish Nato spremenimo prijavno lupino na fish. Uporabite lahko katerikoli urejevalnik, ki vam ustreza. Če ste začetnik, namestite Nano (z ukazom apk add nano), da boste lahko uredili konfiguracijske datoteke in jih shranili preko CTRL+X, potrditi in zapustiti.
Ampak jaz sem uporabil Vim:
vim /etc/passwdMoja prva vrstica je bila taka:
root:x:0:0:root:/root:/bin/ashDa bi fish postal privzeta lupina, spremenimo to vrstico na naslednjo:
root:x:0:0:root:/root:/usr/bin/fishNato shranimo datotekę in zapustimo.
Prepričan sem, da obstaja dober način za spremembo poti do lupine, da jo lahko takoj uporabite. Vendar ne vem, zato priporočam, da se vrnete v brskalnik aplikacij, prisilno izstopite iz lupine in za zanesljivost izklopite in ponovno zaženete iPad ali iPhone. Ponovno odprete iSH in zdaj poleg sporočila "Welcome to Alpine!" in informacij o zagonu z apk vidite standardno dobrodošlo sporočilo za prijavo fish: Dobrodošli u fish, prijateljski interaktivni shell. Hura!

Podešavanje Pythona i pip
Odlučio sam dodati (verziju 3.x), ne samo da bih pisao kod, već i zato što koristim nekoliko programa na Pythonu. Instaliraćemo ga:
apk add python3Iako je Python 2.x zastareo, možete instalirati i njega:
apk add pythonInstaliraćemo upravljač paketa Python pod imenom pip i :
python3 -m ensurepip --default-pipZa instalaciju i podešavanje upravljača paketa biće potrebno malo vremena, pa samo sačekajte.
Zatim ćete moći da preuzmete alat za prenos datoteka preko mreže :
apk add curlPročitajte priručnike
Fish koristi ugrađeno automatsko dovršavanje zasnovano na man-stranicama. Kao i ostali korisnici komandne linije, koristim priručnik man, a u Alpine nije instaliran. Zato sam ga instalirao sa terminalnim pagerom :
apk add man man-pages less less-docPored mana, koristim sjajan , koji pruža pojednostavljene i zajednicu upravljane man-stranice.
Instalirao sam ga pomoću pip:
pip install tldr Komanda tldr se povezuje sa webom da bi dobio stranice kada naiđe na zahtev za novom stranicom. Ako želite da saznate kako koristiti komandu, možete napisati nešto poput tldr curl i dobiti opis na jednostavnom engleskom jeziku sa dobrim primerima upotrebe komande.
Naravno, sav ovaj posao instalacije se može automatizovati pomoću ili instalacionog skripta, ali zapravo to ne odgovara ideologiji Alpine — podešavanju minimalne instalacije jasno prema vlastitim potrebama. Osim toga, zapravo je to trajalo toliko vremena, zar ne?
Dodatne informacije
Na Viki iSH postoji stranica "" sa izveštajima o tome koji paketi trenutno rade. Usput, izgleda da .
Na još jednoj wiki stranici objašnjeno je kako iz iOS aplikacije Files. To je jedan od načina na koji možete prebaciti i kopirati datoteke.
Možete takođe instalirati Git (da! apk add git ) i pushovati svoj rad u udaljeni repozitorijum ili ga prebaciti na server preko SSH. I, naravno, možete preuzeti i pokrenuti bilo koji broj sjajnih open-source projekata sa GitHub-a.
Više o iSH-u možete saznati na ovim linkovima:
V okviru oglaševanja
VDS ponuja ili Windowsu. Koristimo isključivo , najboljša v svojem razredu nadzorna plošča za strežnike lastne proizvodnje in ena najboljših podatkovnih centrov v Rusiji in EU. Pohitite in naročite!
Izvor: habr.com
