Lanse liy lòd Linux sou iOS

Lanse liy lòd Linux sou iOS

Èske w te konnen ke ou ka kouri liy kòmand Linux sou yon aparèy iOS? Ou ta ka mande, "Poukisa mwen ta dwe itilize aplikasyon tèks sou iPhone mwen an?" Kesyon jis. Men, si ou li Opensource.com, pwobableman ou konnen repons lan: itilizatè Linux vle kapab sèvi ak li sou nenpòt aparèy epi yo vle Customize li tèt yo.

Men, pi fò nan tout, yo anvi rezoud pwoblèm konplèks.

Mwen gen yon sèt ane fin vye granmoun iPad 2 Mini ki toujou byen bon pou li e-liv ak lòt travay. Sepandan, mwen vle tou sèvi ak li pou jwenn aksè nan liy lòd aplikasyon yo ak seri pwogram mwen ak scripts, san yo pa mwen pa ka travay. Mon bezwen en lanvironnman ki mon abitye, osi byen mon lanvironnman devlopman standar. Ak men ki jan mwen jere reyalize sa a.

Konekte ak yon klavye

Travay ak liy lòd pou pwogramasyon atravè klavye sou ekran an nan yon telefòn oswa tablèt se byen konvenyan. Mwen rekòmande pou konekte yon klavye ekstèn, swa via Bluetooth, oswa lè l sèvi avèk yon adaptè koneksyon kamera pou konekte yon klavye branche (mwen te chwazi lèt la). Lè ou konekte klavye fann Kinesis Advantage a nan yon iPhone 6, ou jwenn yon aparèy etranj ki sanble. cyberdeck antrepriz soti nan klasik la jwe wòl Shadowrun.

Enstale koki a sou iOS

Pou kouri yon sistèm Linux konplè sou iOS, gen de opsyon:

  • Secure shell (SSH) konekte ak yon òdinatè Linux
  • Kouri yon sistèm vityèl lè l sèvi avèk Alpine Linux ak iSH, ki se sous louvri men yo dwe enstale lè l sèvi avèk aplikasyon propriétaire Apple TestFlight.

Kòm yon altènativ, gen de aplikasyon pou Emulation tèminal sous louvri ki bay kapasite nan travay ak zouti sous louvri nan yon anviwònman restriksyon. Sa a se opsyon ki pi dezabiye - an reyalite, se konsa ou kouri zouti Linux, pa Linux. Gen limit karakteristik grav lè w ap travay ak aplikasyon sa yo, men ou jwenn fonksyonalite pasyèl liy lòd.

Anvan ou ale nan solisyon konplèks, mwen pral gade nan metòd ki pi senp.

Opsyon 1: Koki Sandbox

Youn nan fason ki pi fasil yo se enstale app iOS la LibTerm. Li se sous louvri Koki lòd sandboxed ak sipò pou plis pase 80 kòmandman pou zewo dola. Li vini fourni ak Python 2.7, Python 3.7, Lua, C, Clang ak plis ankò.

Gen apeprè menm fonksyonalite a yon-koki, devlopè yo dekri kòm "yon koòdone itilizatè tès pou platfòm opinyon ekran an." a-Sous Shell yo afiche louvri sous, li se nan devlopman aktif, bay aksè sistèm dosye, epi li vini ak Lua, Python, Tex, Vim, JavaScript, C ak C++, osi byen ke Clang ak Clang++. Li menm pèmèt ou pip enstale pakè Python.

Opsyon 2: SSH

Yon lòt etap nan telechaje yon aplikasyon se mete kanpe yon kliyan SSH. Pou yon tan long kounye a, nou te kapab itilize nenpòt nan anpil aplikasyon pou kliyan SSH pou iOS pou konekte avèk yon sèvè ki kouri Linux oswa BSD. Avantaj nan itilize SSH se ke sèvè a ka kouri nenpòt distribisyon ak nenpòt lojisyèl. Ou travay adistans ak rezilta yo nan travay ou yo tou senpleman transfere nan Emulation tèminal la sou aparèy iOS ou.

Blink koki se yon aplikasyon SSH popilè ki peye nan louvri sous. Si ou inyore ti ekran aparèy la, lè sa a lè l sèvi avèk lojisyèl sa a se menm jan ak konekte ak sèvè a atravè nenpòt lòt liy lòd. Tèminal Blink sanble gwo, gen anpil tèm ki pare ak kapasite pou kreye pwòp ou a, ki gen ladan kapasite nan Customize epi ajoute nouvo polis.

Opsyon 3: Lanse Linux

Sèvi ak SSH pou konekte avèk yon sèvè Linux se yon bon fason pou jwenn aksè nan liy lòd la, men li mande pou yon sèvè ekstèn ak yon koneksyon rezo. Sa a se pa pi gwo obstak la, men li pa ka konplètman inyore, kidonk ou ka bezwen kouri Linux san yon sèvè.

Si sa a se ka ou, Lè sa a, w ap bezwen pran li yon etap pi lwen. TestFlight se yon sèvis propriétaires pou enstale aplikasyon devlope menm anvan yo pibliye yo nan Apple App Store la. Ou ka enstale aplikasyon TestFlight nan App Store epi itilize aplikasyon pou tès la. Aplikasyon nan TestFlight pèmèt yon kantite limite nan tèsteur beta (anjeneral jiska 10) travay avèk yo pou yon tan limite. Pou telechaje yon aplikasyon tès, ou bezwen ale nan aparèy ou a nan yon lyen ki anjeneral sitiye sou sit entènèt la nan devlopè aplikasyon tès la.

Kouri Alpine Linux ak iSH

ISH se yon aplikasyon sous ouvè TestFlight ki lanse yon machin vityèl ak yon distribisyon pare Alpine Linux (Avèk yon ti efò, ou ka kouri lòt distribisyon).

Karakteristik enpòtan: aplikasyon eksperimantal. Depi iSH se kounye a yon aplikasyon tès, pa atann konstan ak serye operasyon. Aplikasyon pou TestFlight gen tan limite. Konstriksyon aktyèl mwen an pral dire sèlman 60 jou. Sa vle di ke apre 60 jou mwen pral elimine epi yo pral oblije re-antre nan pwochen wonn nan tès iSH. Anplis, mwen pral pèdi tout dosye mwen yo sof si mwen ekspòte yo lè l sèvi avèk Files sou iOS oswa kopye yo nan yon lame Git oswa atravè SSH. Nan yon lòt sans: Pa atann sa a kontinye travay! Pa mete anyen enpòtan pou ou nan sistèm nan! Tounen nan yon kote separe!

Enstale iSH

Kòmanse ak enstalasyon TestFlight soti nan App Store la. Lè sa a, enstale iSH, te resevwa lyen enstalasyon an soti nan sit entènèt aplikasyon an. Gen yon lòt metòd enstalasyon lè l sèvi avèk AltStore, men mwen pa te eseye li. Oswa, si ou gen yon kont pwomotè peye, ou ka telechaje repozitwa iSH la nan GitHub epi enstale li tèt ou.

Sèvi ak lyen an, TestFlight pral enstale aplikasyon iSH la sou aparèy ou an. Menm jan ak nenpòt lòt aplikasyon, yon icon ap parèt sou ekran an.

Jesyon pake

iSH kouri yon Emulation x86 ak Alpine Linux. Alpine se yon ti distribisyon, ki mezire mwens pase 5MB nan gwosè. Sa a te premye fwa mwen te travay ak Alpine, kidonk mwen te panse minimalist la ta dwe anmèdan, men mwen aktyèlman reyèlman te renmen li.

Lanse liy lòd Linux sou iOS
Alpine sèvi ak yon manadjè pake apk, ki pi fasil pase menm apt oswa pacman.

Ki jan yo enstale pake a:

apk add package

Ki jan yo retire yon pake:

apk del package

Ki jan yo jwenn lòt kòmandman ak enfòmasyon:

apk --help

Aktyalizasyon manadjè pake:

apk update
apk upgrade

Enstale yon editè tèks

Editè tèks default Alpine a se Vi, men mwen prefere Vim, kidonk mwen enstale li:

apk add vim

Si ou vle, ou ka enstale Nano oswa Emacs.

Chanjman kokiy

Mwen pa konnen sou ou, men mwen te bezwen koki pwason. Lòt moun pito Bach oswa zsh. Sepandan, Alpine sèvi ak sann! Ash se yon fouchèt nan koki Dash la, ki li menm se yon fouchèt nan sann orijinal la, oswa Almquist kokiy. Priyorite li se vitès. Mwen deside fè echanj vitès pou ranpli otokonplè a, koulè, kontwòl kle Vim, ak sentaks mete aksan sou ke mwen renmen ak konnen nan koki pwason an.

Enstalasyon pwason:

apk add fish

Si ou bezwen Bash ak autocompletion li yo ak paj man, Lè sa a, enstale yo:

apk add bash bash-doc bash-completion

Ideoloji minimalist Alpine a anjeneral vle di ke kèk pwogram ki pake nan lòt distribisyon yo pral divize an plizyè pakè ki pi piti. Sa vle di tou ou ka Customize epi redwi gwosè a nan sistèm ou egzakteman jan ou vle.

Pou plis enfòmasyon sou enstale Bash, gade leson patikilye sa a.

Chanje kokiy default la

Apre enstale pwason, ou ka tanporèman chanje nan li pa antre fish epi antre nan kokiy la. Men, mwen vle fè pwason koki a default ak lòd la chsh, ke mwen te itilize sou lòt distribisyon, pa t travay.

Premyèman, nou chèche konnen ki kote pwason enstale:

which fish

Men sa mwen te resevwa:

/usr/bin/fish

Apre sa, chanje kokiy la konekte nan pwason. Ou ka itilize nenpòt editè ki bon pou ou. Si ou se yon debutan, Lè sa a, enstale Nano (ak lòd la apk add nano) pou ou ka edite fichye konfigirasyon epi sove yo atravè CTRL + X, konfime epi sòti.

Men mwen te itilize Vim:

vim /etc/passwd

Premye liy mwen an te tankou sa a:

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

Pou fè pwason kokiy default la, chanje liy sa a ak sa ki annapre yo:

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

Lè sa a, sove fichye a epi sòti.

Mwen sèten gen yon bon fason pou chanje chemen an nan koki a pou li ka itilize touswit. Men, mwen pa konnen li, kidonk mwen rekòmande pou retounen nan navigatè aplikasyon an, fòse sòti koki a, epi yo dwe sou bò a an sekirite, fèmen epi rekòmanse iPad ou oswa iPhone. Louvri iSH ankò e kounye a, anplis mesaj "Byenveni nan Alpine!" ak enfòmasyon sou lanse soti nan apk, ou pral wè mesaj la akeyi estanda koneksyon pwason: Byenveni nan pwason, kokiy entèaktif zanmitay la. Houra!

Lanse liy lòd Linux sou iOS

Mete kanpe Python ak pip

Mwen deside ajoute Piton (vèsyon 3.x), pa sèlman pou ekri kòd, men tou paske mwen sèvi ak plizyè pwogram Python. Ann enstale li:

apk add python3

Malgre ke Python 2.x demode, ou ka enstale li:

apk add python

Ann enstale manadjè pake Python ki rele pip ak setuptools:

python3 -m ensurepip --default-pip

Li pral pran kèk tan enstale ak konfigirasyon manadjè pake a, kidonk jis rete tann.

Lè sa a, ou ka telechaje yon zouti pou transfere dosye sou rezo a pli:

apk add curl

Lekti manyèl yo

Pwason itilize otokonplesyon entegre ki baze sou paj man. Menm jan ak lòt itilizatè liy lòd, mwen itilize manyèl la man, men li pa enstale nan Alpine. Se konsa, mwen enstale li ak pager tèminal mwens:

apk add man man-pages less less-doc

Anplis moun mwen sèvi ak bèl anpil pwojè paj tldr, ki bay paj man senplifye epi ki baze sou kominote a.

Mwen enstale li lè l sèvi avèk pip:

pip install tldr

Ekip tldr konekte sou entènèt la pou rekipere paj lè li rankontre yon demann pou yon nouvo paj. Si ou bezwen konnen ki jan yo sèvi ak yon lòd, ou ka ekri yon bagay tankou tldr curl epi jwenn yon deskripsyon an angle klè ak bon egzanp sou fason pou itilize kòmandman an.

Natirèlman, tout travay enstalasyon sa a ka otomatize lè l sèvi avèk dotfiles oswa yon script enstalasyon, men an reyalite sa a pa reyèlman koresponn ak ideoloji Alpine a - Customize yon enstalasyon minim jisteman nan adapte ou bezwen. Anplis, sa te pran anpil tan, pa vre?

Lòt enfòmasyon

iSH Wiki a gen yon paj "sa ki travay"ak rapò sou ki pakè yo ap kouri kounye a. By wout la, li sanble npm pa travay kounye a.

Yon lòt paj wiki eksplike kijan jwenn aksè nan dosye iSH yo soti nan aplikasyon iOS Files. Sa a se youn nan fason ou ka deplase ak kopye fichye yo.

Ou kapab tou enstale Git (wi! apk add git ) epi pouse travay ou a nan yon repozitwa aleka oswa transfere li nan sèvè a atravè SSH. Epi, nan kou, ou ka telechaje ak kouri nenpòt ki kantite gwo pwojè sous louvri soti nan GitHub.

Ou ka jwenn plis enfòmasyon sou iSH nan lyen sa yo:

Sou Dwa yo nan Piblisite

Vdsina ofri sèvè vityèl sou Linux oswa Windows. Nou itilize sèlman ekipman mak, pi bon kalite panèl kontwòl sèvè li yo nan pwòp konsepsyon li yo ak youn nan pi bon sant done yo nan Larisi ak Inyon Ewopeyen an. Prese pase lòd!

Lanse liy lòd Linux sou iOS

Sous: www.habr.com

Add nouvo kòmantè