
A e dini se Ă«shtĂ« e mundur tĂ« ekzekutoni komandĂ«n e linjĂ«s Linux nĂ« njĂ« pajisje iOS? Ndoshta do tĂ« pyesni: «PĂ«rse duhet tĂ« pĂ«rdor aplikacione tekstuale nĂ« iPhone?» ĂshtĂ« njĂ« pyetje e drejtĂ«. Por nĂ«se po lexoni Opensource.com, ndoshta e dini pĂ«rgjigjen: pĂ«rdoruesit e Linux duan tĂ« mund tĂ« punojnĂ« me tĂ« nĂ« çdo pajisje dhe tĂ« kenĂ« cilĂ«simet e tyre personale.
Por ata dëshirojnë më së shumti zgjidhjen e problemeve të komplikuara.
Unë kam një iPad 2 Mini të viteve të fundit që akoma i përshtatet mirë leximit të librave elektronikë dhe detyrave të tjera. Megjithatë, unë dua ta përdor atë edhe për qasje në komandën e linjës së aplikacioneve me grupin tim të programeve dhe skripteve, pa të cilat nuk mund të punoj. Më duhet një ambient që jam mësuar, si dhe mjedisi im standard i zhvillimit. Kështu kam arritur ta realizoj këtë.
Lidhja me tastierën
Të punosh me komandën e linjës për programim përmes tastierës virtuale të telefonit ose tabletit është mjaft e pakëndshme. Unë rekomandoj të lidhni një tastierë të jashtme, qoftë përmes Bluetooth-it, ose duke përdorur një adaptues për lidhjen e kamerës për të lidhur një tastierë me kabllo (unë zgjodha opsionin e dytë). Kur lidhem me tastierën e ndarë Kinesis Advantage me iPhone 6, rezulton një pajisje e çuditshme që i ngjan nga klasi Shadowrun.
Dërgimi i shell-it në iOS
Për të ekzekutuar një sistem plotësisht funksional Linux në iOS ka dy mundësi:
- Secure shell (SSH), e lidhur me një kompjuter me Linux
- Ekzekutimi i një sistemi virtual me Alpine Linux përmes iSH, i cili është open source, por duhet të instalohet përmes aplikacionit pronar TestFlight nga Apple
Si alternativĂ«, ka dy aplikacione-emulatorĂ« terminal nĂ« open source, qĂ« ofrojnĂ« mundĂ«sinĂ« e pĂ«rdorimit tĂ« mjeteve open source nĂ« njĂ« ambient tĂ« kufizuar. Ky Ă«shtĂ« varianti mĂ« i reduktuar â nĂ« fakt kĂ«tu nuk po ekzekutoni Linux, por mjete tĂ« Linux-it. NĂ« punĂ«n me kĂ«to aplikacione ka kufizime tĂ« rrepta tĂ« mundĂ«sive, megjithatĂ«, ju fitoni funksionalitetin e pjesshĂ«m tĂ« komandĂ«s sĂ« linjĂ«s.
Para se të kaloj në zgjidhje më të komplikuara, unë do të shqyrtoj mënyrën më të thjeshtë.
Mundësia 1: shell në «sandbox»
Një nga mënyrat më të thjeshta është të instaloni një aplikacion për iOS . Kjo është një shell komandash në "sandbox" me mbështetje për më shumë se 80 komanda për zero dollarë. Ajo vjen së bashku me Python 2.7, Python 3.7, Lua, C, Clang dhe shumë të tjera.
Ajo ka funksionalitet të ngjashëm me , e përshkruar nga zhvilluesit si "interfata e testimit të përdoruesit për platformën me hyrje në ekran." Kodet e burimit të a-Shell janë publikuar , ajo është në zhvillim aktiv, ofron akses në sistemin e skedarëve dhe vjen me Lua, Python, Tex, Vim, JavaScript, C dhe C++, si edhe me Clang dhe Clang++. Ajo madje lejon instalimin e paketave Python përmes pip.
Variant 2: SSH
Një hap tjetër përpara krahasuar me shkarkimin e aplikacionit është konfigurimi i një klienti SSH. Ka kohë që mund të përdorim çdo nga shumë aplikacione të klientëve SSH për iOS për t'u lidhur me një server ku ekzekutohet Linux ose BSD. Avantazhi i përdorimit të SSH është se në server mund të funksionojë çdo shpërndarje me çdo software. Ju punoni në distancë dhe rezultatet e punës thjesht transmetohen në emulatorin e terminalit në pajisjen iOS.
â Ă«shtĂ« njĂ« aplikacion SSH popullor me pagesĂ« nĂ« . NĂ«se nuk i kushtoni vĂ«mendje ekranit tĂ« vogĂ«l tĂ« pajisjes, pĂ«rdorimi i kĂ«tij softueri Ă«shtĂ« si tĂ« lidheni me serverin pĂ«rmes çdo komandĂ«s tjetĂ«r. Terminali Blink duket shkĂ«lqyer, ka shumĂ« tema tĂ« pĂ«rgatitura dhe njĂ« funksion pĂ«r tĂ« krijuar tema tĂ« veta, duke pĂ«rfshirĂ« mundĂ«sinĂ« pĂ«r tĂ« konfigurimin dhe shtimin e fonteve tĂ« reja.
Variant 3: ekzekutimi i Linux
Përdorimi i SSH për t'u lidhur me një server Linux është një mënyrë e shkëlqyer për të aksesuar komandën, por kërkon një server të jashtëm dhe një lidhje rrjeti. Kjo nuk është një pengesë e madhe, por nuk mund të injorohet plotësisht, kështu që ju mund të keni nevojë të punoni me Linux pa server.
NĂ«se kjo Ă«shtĂ« rasti juaj, atĂ«herĂ« do t'ju duhet tĂ« bĂ«ni njĂ« hap tjetĂ«r pĂ«rpara. â Ă«shtĂ« njĂ« shĂ«rbim proprietar pĂ«r instalimin e aplikacioneve qĂ« po zhvillohen pĂ«rpara se ato tĂ« publikohen nĂ« Apple App Store. Aplikacioni TestFlight mund tĂ« instalohet nga App Store dhe mĂ« pas mund tĂ« pĂ«rdoren aplikacione testuese. Aplikacionet nĂ« TestFlight lejojnĂ« qĂ« pĂ«r njĂ« kohĂ« tĂ« kufizuar njĂ« numĂ«r tĂ« caktuar beta-testuesish (zakonisht deri nĂ« 10,000) tĂ« punojnĂ« me to. PĂ«r tĂ« shkarkuar aplikacionin testues, duhet tĂ« kaloni nga pajisja juaj nĂ« njĂ« lidhje, e cila zakonisht ndodhet nĂ« faqen e internetit tĂ« zhvilluesit tĂ« aplikacionit testues.
Nisja e Alpine Linux me iSH
â Ă«shtĂ« njĂ« aplikacion open-source TestFlight qĂ« ekzekuton njĂ« makinĂ« virtuale me njĂ« shpĂ«rndarje tĂ« gatshme (me pak pĂ«rpjekje, mund tĂ« nisni edhe shpĂ«rndarje tĂ« tjera).
Karakteristika e rëndësishme: aplikacioni është eksperimental. Duke qenë se iSH aktualisht është një aplikacion testues, mos prisni një funksionim të vazhdueshëm dhe të qëndrueshëm. Aplikacionet TestFlight janë të kufizuara në kohë. Ndërtesa ime aktuale do të punojë për vetëm 60 ditë. Kjo do të thotë se pas 60 ditësh do të përjashtohem dhe do të duhet të bashkohem përsëri në fazën e ardhshme të testimit të iSH. Për më tepër, do të humbas të gjitha skedarët e mi, nëse nuk i eksportoj duke përdorur Files në iOS ose nuk i kopjoj në një host Git ose . Me fjalë të tjera: Mos prisni që gjithçka do të vazhdojë të funksionojë! Mos vendosni në sistem asgjë të rëndësishme për ju! Bëni kopje rezervë në një vend të veçantë!
Instalimi i iSH
Filloni me instalimin nga App Store. Më pas instaloni iSH, nga faqja e internetit të aplikacionit. Ka edhe një mënyrë tjetër instalimi duke përdorur AltStore, por nuk e kam provuar atë. Ose, nëse keni një llogari të paguar zhvilluesi, mund të shkarkoni depozitat e iSH nga GitHub dhe ta instaloni atë vetë.
Me lidhjen TestFlight, aplikacioni iSH do të instalohet në pajisjen tuaj. Siç ndodh me çdo aplikacion tjetër, do të shfaqet një ikonë në ekran.
Menaxhimi i pakot
iSH ekzekuton emulatorin x86 me Alpine Linux. Alpine është një shpërndarje e vogël me më pak se 5 MB. Unë punova për herë të parë me Alpine, prandaj mendoja se ky minimalizëm do të ishte i bezdisshëm, por realisht më pëlqeu shumë.

Në Alpine përdoret menaxheri i pakove , i cili është më i thjeshtë se edhe apt ose pacman.
Si të instaloni një paketë:
apk add packageSi të fshini një paketë:
apk del packageSi të dini komanda dhe informacion të tjerë:
apk --helpPërditësimi i menaxherit të pakove:
apk update
apk upgradeInstalimi i redaktorit të tekstit
Redaktori standard i tekstit në Alpine është Vi, por unë preferoj Vim, prandaj e instalova atë:
apk add vimNëse dëshironi, mund të instaloni Nano ose Emacs.
Ndryshimi i shell-it
Nuk e di për ju, por unë kisha nevojë për . Të tjerët preferojnë ose . Megjithatë, në Alpine përdoret ash! Ash është një fork i shell-it Dash, i cili vetë është një fork i origjinalit ash, ose . Prioriteti i saj është shpejtësia. Unë vendosa të tregoj shpejtësinë për autocompletimin e integruar, ngjyrat, kontrollet e tastierës Vim dhe ndriçimin e sintaksës, të cilat i dua dhe i njoh nga fish shell.
Instalimi i fish:
apk add fishNëse ju nevojitet Bash me autocompletion dhe faqet e manualit, atëherë instaloni ato:
apk add bash bash-doc bash-completionIdeologjia minimaliste e Alpine zakonisht do të thotë që disa programe që në shpërndarje të tjera janë një paketë do të ndahen në disa paketa më të vogla. Kjo do të thotë gjithashtu se mund të konfiguroni dhe zvogëloni madhësinë e sistemit ashtu siç dëshironi.
Më shumë rreth instalimit të Bash mund të mësoni nga .
Ndryshimi i shell-it të paracaktuar
Pas instalimit të fish, mund të kaloni përkohësisht në të duke shkruar fish dhe kaloni në shell. Por unë dua ta bëj fish shell të paracaktuar, dhe komanda chsh, që përdora në shpërndarje të tjera, nuk funksionoi.
Së pari do të zbulojmë se ku është instaluar fish:
which fishJa çfarë kam marrë:
/usr/bin/fish Më pas do të ndryshojmë login shell në fish. Mund të përdorni çfarëdo redaktori që ju përshtatet. Nëse jeni fillestar, instaloni Nano (me komandën apk add nano), në mënyrë që të mund të redaktoni skedarët e konfigurimit dhe t'i ruani ata përmes CTRL+X, konfirmoni dhe dilni.
Por unë përdora Vim:
vim /etc/passwdRreshti im i parë ishte kështu:
root:x:0:0:root:/root:/bin/ashPër ta bërë fish shell të paracaktuar, do ta ndryshojmë këtë rresht në këtë:
root:x:0:0:root:/root:/usr/bin/fishMë pas do të ruajmë skedarin dhe do të dalim.
Jam i sigurt që ekziston një mënyrë e mirë për të ndryshuar rrugën e shell-it, në mënyrë që të mund të përdoret direkt. Por nuk e di atë, kështu që rekomandoj të ktheheni në shfletuesin e aplikacioneve, të detyroni daljen nga shell-i dhe për siguri ta fikni dhe ta rinstaloni iPad-in ose iPhone-in. Rihapni iSH dhe tani, përveç mesazhit "Mirë se vini në Alpine!" dhe informacionit rreth nisjes me apk, do të shihni mesazhin standard të mirëseardhjes nga fish: Mirësevini në fish, shell-in interaktiv miqësor. Unë jam shumë i kënaqur!

Konfigurimi i Python dhe pip
Vendosa të shtoj (versionin 3.x), jo vetëm për të shkruar kod, por edhe sepse po përdor disa programe në Python. Le të instalojmë atë:
apk add python3Edhe pse Python 2.x është i vjetruar, mund ta instaloni edhe atë:
apk add pythonLe të instalojmë menaxherin e paketave Python të quajtur pip dhe :
python3 -m ensurepip --default-pipInstalimi dhe konfigurimi i menaxherit të paketave do të marrë pak kohë, prandaj thjesht prisni.
Më pas mund të shkarkoni mjetin për transferimin e skedarëve në rrjet :
apk add curlLexojmë manualet
Fish përdor autocomplete të integruar bazuar në faqet man. Si përdorues të tjerë të linjës së komandës, unë përdor manualin man, por në Alpine ai nuk është i instaluar. Prandaj, e kam instaluar atë me paginën e terminalit :
apk add man man-pages less less-docPërveç man, unë përdor projektin e mrekullueshëm të , i cili ofron faqe man të thjeshtuara dhe të menaxhuara nga komuniteti.
E kam instaluar me pip:
pip install tldr Ekipa tldr lidhet me uebin për të marrë faqet kur gjen një kërkesë për një faqe të re. Nëse duhet të dini se si të përdorni një komandë, mund të shkruani diçka si tldr curl dhe do të merrni një përshkrim në anglisht të thjeshtë dhe shembuj të mirë për përdorimin e komandës.
Natyrisht, tĂ« gjithĂ« kĂ«tĂ« punĂ« instalimi mund ta automatizoni me anĂ« tĂ« apo skriptit tĂ« instalimit, por nĂ« tĂ« vĂ«rtetĂ« kjo nuk i pĂ«rket ideologjisĂ« sĂ« Alpine â konfigurohet njĂ« instalim minimal saktĂ«sisht sipas nevojave tuaja. PĂ«r mĂ« tepĂ«r, a nuk mori kaq shumĂ« kohĂ«, apo jo?
Informacione shtesë
Në Wiki iSH ka një faqe "" me raporte se cilat paketa funksionojnë aktualisht. Për më tepër, duket se .
Në një faqe tjetër wiki shpjegohet se si nga aplikacioni iOS Files. Kjo është një nga mënyrat për të dëgjuar dhe kopjuar skedarë.
Mund të instaloni gjithashtu Git (po! apk add git ) dhe të bëni push punën tuaj në një repo të largët ose ta transferoni atë në server përmes SSH. Dhe, natyrisht, mund të shkarkoni dhe ekzekutoni çdo numër projektesh të shkëlqyera open-source nga GitHub.
Më shumë për iSH mund të mësoni nga këto lidhje:
SOF6
VDS ofron ose Windows. Përdorim vetëm , paneli më i mirë i menaxhimit të serverëve të zhvilluar vetë dhe disa nga qendrat më të mira të të dhënave në Rusi dhe BE. Nxitoni të porositni!
Burimi: habr.com
