Linux-ի հրամանի տողի գործարկում iOS-ում

Linux-ի հրամանի տողի գործարկում iOS-ում

Գիտեի՞ք, որ iOS սարքում կարող եք գործարկել Linux հրամանի տողը: Դուք կարող եք հարցնել. «Ինչու՞ պետք է օգտագործեմ տեքստային հավելվածներ iPhone-ում»: Արդար հարց. Բայց եթե կարդում եք Opensource.com-ը, հավանաբար գիտեք պատասխանը. Linux-ի օգտատերերը ցանկանում են այն օգտագործել ցանկացած սարքում և ցանկանում են օգտագործել իրենց սեփական կարգավորումները:

Բայց ամենից շատ նրանք ձգտում են լուծել բարդ խնդիրներ:

Ես ունեմ յոթ տարեկան iPad 2 Mini, որը դեռ լավ է էլեկտրոնային գրքեր կարդալու և այլ առաջադրանքների համար: Այնուամենայնիվ, ես նաև ցանկանում եմ օգտագործել այն իմ ծրագրերի և սկրիպտների հավաքածուով հավելվածների հրամանի տող մուտք գործելու համար, առանց որոնց ես չեմ կարող աշխատել: Ինձ պետք է այնպիսի միջավայր, որին ես սովոր եմ, ինչպես նաև իմ ստանդարտ զարգացման միջավայրը: Եվ ահա թե ինչպես ինձ հաջողվեց հասնել դրան.

Միացում ստեղնաշարին

Հեռախոսի կամ պլանշետի էկրանային ստեղնաշարի միջոցով ծրագրավորման հրամանի տողով աշխատելը բավականին անհարմար է: Ես խորհուրդ եմ տալիս միացնել արտաքին ստեղնաշարը՝ կա՛մ Bluetooth-ի միջոցով, կա՛մ օգտագործելով տեսախցիկի միացման ադապտեր՝ լարային ստեղնաշարը միացնելու համար (ես ընտրել եմ վերջինը): Kinesis Advantage բաժանված ստեղնաշարը iPhone 6-ին միացնելը հանգեցնում է տարօրինակ սարքի, որը նման է. կորպորատիվ կիբերտախտակ դասականից դեր ստվերային վազք.

Կեղևի տեղադրում iOS-ում

iOS-ում լիովին ֆունկցիոնալ Linux համակարգ գործարկելու համար կա երկու տարբերակ.

  • Անվտանգ պատյան (SSH) միացված Linux սարքին
  • Վիրտուալ համակարգի գործարկում Alpine Linux-ի միջոցով iSH-ով, որը բաց կոդով է, բայց պետք է տեղադրվի Apple-ի սեփական TestFlight հավելվածի միջոցով:

Որպես այլընտրանք, կան երկու բաց կոդով տերմինալների էմուլյատոր հավելվածներ, որոնք հնարավորություն են տալիս աշխատել բաց կոդով գործիքների հետ սահմանափակ միջավայրում: Սա ամենաարդյունավետ տարբերակն է. իրականում սա ոչ թե ինչպես եք գործարկում Linux-ը, այլ Linux-ի գործիքները: Այս հավելվածների հետ աշխատելիս լուրջ սահմանափակումներ կան, բայց դուք ստանում եք հրամանի տողի մասնակի գործառույթ:

Նախքան բարդ լուծումների անցնելը, ես կքննարկեմ ամենապարզ ճանապարհը:

Տարբերակ 1. Shell Sandbox-ում

Ամենահեշտ ձևերից մեկը iOS հավելվածի տեղադրումն է LibTerm: Այն բաց կոդով ավազատուփի կեղև, որն ապահովում է ավելի քան 80 հրամաններ զրոյական դոլարով: Այն գալիս է Python 2.7, Python 3.7, Lua, C, Clang և այլնի հետ:

Մոտավորապես նույն ֆունկցիոնալությունը a-shell, մշակողների կողմից նկարագրված որպես «էկրանի մուտքագրմամբ պլատֆորմի փորձնական ինտերֆեյս»։ a-Shell-ի աղբյուրները տեղադրել են բաց աղբյուր, այն գտնվում է ակտիվ մշակման փուլում, ապահովում է ֆայլային համակարգի հասանելիություն և առաքվում է Lua, Python, Tex, Vim, JavaScript, C և C++, ինչպես նաև Clang և Clang++-ով: Այն նույնիսկ թույլ է տալիս տեղադրել Python փաթեթներ pip-ով:

Տարբերակ 2. SSH

Հավելված ներբեռնելուց հետո մեկ այլ քայլ SSH հաճախորդի կարգավորումն է: Երկար ժամանակ մենք կարողացել ենք օգտագործել iOS SSH հաճախորդի բազմաթիվ հավելվածներից որևէ մեկը՝ Linux կամ BSD աշխատող սերվերին միանալու համար: SSH-ի օգտագործման առավելությունն այն է, որ ցանկացած բաշխում կարող է աշխատել սերվերի վրա ցանկացած ծրագրաշարով: Դուք աշխատում եք հեռակա կարգով, և ձեր աշխատանքի արդյունքները պարզապես փոխանցվում են ձեր iOS սարքի տերմինալի էմուլյատորին:

blink shell հայտնի վճարովի SSH հավելված է բաց աղբյուր. Եթե ​​ուշադրություն չեք դարձնում սարքի փոքր էկրանին, ապա այս ծրագրաշարի օգտագործումը նման է ցանկացած այլ հրամանի տողի միջոցով սերվերին միանալուն: Blink տերմինալը հիանալի տեսք ունի, ունի բազմաթիվ պատրաստի թեմաներ և ձեր սեփականը ստեղծելու հնարավորությունը, ներառյալ նոր տառատեսակներ հարմարեցնելու և ավելացնելու հնարավորությունը:

Տարբերակ 3. Գործարկել Linux-ը

Linux-ի տակ սերվերին միանալու համար SSH-ի օգտագործումը հրամանի տող մուտք գործելու հիանալի միջոց է, սակայն այն պահանջում է արտաքին սերվեր և ցանցային կապ: Սա ամենամեծ խոչընդոտը չէ, բայց այն չի կարելի ամբողջությամբ անտեսել, ուստի կարող է անհրաժեշտ լինել առանց սերվերի աշխատել Linux-ի հետ:

Եթե ​​սա ձեր դեպքն է, ապա ձեզ հարկավոր է մեկ քայլ առաջ գնալ: TestFlight մշակման փուլում գտնվող հավելվածների տեղադրման սեփական ծառայություն է, նախքան դրանք թողարկվել են Apple App Store-ում: Դուք կարող եք տեղադրել TestFlight հավելվածը App Store-ից, այնուհետև օգտագործել փորձնական հավելվածները: TestFlight-ի հավելվածները թույլ են տալիս սահմանափակ թվով բետա փորձարկողների (սովորաբար մինչև 10) աշխատել նրանց հետ սահմանափակ ժամանակով: Թեստային հավելվածը ներբեռնելու համար անհրաժեշտ է մուտք գործել ձեր սարքի հղումը, որը սովորաբար գտնվում է թեստային հավելվածի մշակողի կայքում:

Alpine Linux-ի գործարկում iSH-ով

ԻՇՀ բաց կոդով TestFlight հավելված է, որն աշխատում է պատրաստի բաշխմամբ վիրտուալ մեքենայով Alpine Linux- ը (մի փոքր աշխատանքով կարող եք գործարկել այլ բաշխումներ):

Կարեւոր առանձնահատկություն. կիրառական փորձարարական. Քանի որ iSH-ը ներկայումս թեստային ծրագիր է, մի ակնկալեք հետևողական և հուսալի կատարում: TestFlight հավելվածները ժամանակի սահմանափակ են: Իմ ներկայիս կառուցումը կգործի ընդամենը 60 օր: Սա նշանակում է, որ 60 օր հետո ես կհեռացվեմ և պետք է նորից միանամ iSH թեստավորման հաջորդ փուլին։ Ավելին, ես կկորցնեմ իմ բոլոր ֆայլերը, եթե դրանք չարտահանեմ ֆայլերով iOS-ով կամ չպատճենեմ դրանք Git հոսթում կամ SSH-ի միջոցով. Այլ կերպ ասած: Մի սպասեք, որ այդ ամենը կշարունակի գործել: Ձեզ համար կարևոր ոչինչ մի՛ դրեք համակարգում: Պահուստավորեք առանձին վայրում:

iSH-ի տեղադրում

Սկսեք տեղադրումից TestFlight App Store-ից: Այնուհետև տեղադրեք iSH, տեղադրման հղում ստանալը հավելվածի կայքից։ AltStore-ի միջոցով տեղադրելու այլ տարբերակ կա, բայց ես չեմ փորձել: Կամ, եթե ունեք վճարովի ծրագրավորողի հաշիվ, կարող եք ներբեռնել iSH պահոցը GitHub-ից և ինքներդ տեղադրել այն:

Օգտագործելով հղումը՝ TestFlight-ը ձեր սարքում կտեղադրի iSH հավելվածը: Ինչպես ցանկացած այլ հավելվածի դեպքում, էկրանին կհայտնվի պատկերակ:

Փաթեթների կառավարում

iSH-ն աշխատում է x86 էմուլատոր Alpine Linux-ով: Alpine-ը փոքր բաշխում է, որի չափը 5 ՄԲ-ից պակաս է: Ես առաջին անգամ էի աշխատում Alpine-ի հետ, այնպես որ կարծում էի, որ մինիմալիզմը կզայրացնի, բայց ինձ շատ դուր եկավ:

Linux-ի հրամանի տողի գործարկում iOS-ում
Alpine-ն օգտագործում է փաթեթների կառավարիչ APKորն ավելի հեշտ է, քան նույնիսկ apt-ը կամ pacman-ը:

Ինչպես տեղադրել փաթեթը.

apk add package

Ինչպես հեռացնել փաթեթը.

apk del package

Ինչպես պարզել այլ հրամաններ և տեղեկություններ.

apk --help

Փաթեթի կառավարչի թարմացում.

apk update
apk upgrade

Տեքստային խմբագրիչի տեղադրում

Alpine-ի ստանդարտ տեքստային խմբագրիչը Vi-ն է, բայց ես նախընտրում եմ Vim-ը, այնպես որ ես այն տեղադրեցի.

apk add vim

Ցանկության դեպքում կարող եք տեղադրել Nano կամ Emacs:

Կեղևի փոփոխություն

Ես չգիտեմ ձեր մասին, բայց ինձ անհրաժեշտ էր ձկան պատյան. Այլ մարդիկ նախընտրում են Ուժեղ հարվածել կամ Զշ. Այնուամենայնիվ, Alpine-ն օգտագործում է մոխիր: Ash-ը դաշի պատառաքաղ է, որն ինքնին սկզբնական մոխրի պատառաքաղ է, կամ Ալմկվիստական ​​պատյան. Նրա առաջնահերթությունը արագությունն է։ Ես որոշեցի փոխանակել արագությունը ներկառուցված ավտոմատ լրացման, գույների, Vim ստեղնաշարի կառավարման և շարահյուսության ընդգծման հետ, որը ես սիրում և գիտեմ ձկան կեղևից:

ձկան տեղադրում.

apk add fish

Եթե ​​Ձեզ անհրաժեշտ է Bash-ն իր ավտոմատ լրացման և man էջերով, ապա տեղադրեք դրանք.

apk add bash bash-doc bash-completion

Alpine-ի մինիմալիստական ​​գաղափարախոսությունը սովորաբար նշանակում է, որ որոշ ծրագրեր, որոնք մեկ փաթեթ են այլ բաշխումների վրա, կբաժանվեն մի քանի փոքր փաթեթների: Դա նաև նշանակում է, որ դուք կարող եք կարգավորել և փոքրացնել համակարգը ճիշտ այնպես, ինչպես ցանկանում եք:

Bash-ի տեղադրման մասին լրացուցիչ տեղեկությունների համար տե՛ս այս ձեռնարկը.

Լռելյայն կեղևի փոփոխություն

Երբ ձուկը տեղադրվի, դուք կարող եք ժամանակավորապես անցնել դրան՝ մուտքագրելով fish և գնալ դեպի պատյան: Բայց ես ուզում եմ ձուկը դարձնել լռելյայն պատյան և հրամանը chsh, որը ես օգտագործել եմ այլ բաշխումներում, չի աշխատել:

Նախ, եկեք պարզենք, թե որտեղ է տեղադրված ձուկը.

which fish

Ահա թե ինչ կատարվեց ինձ հետ.

/usr/bin/fish

Հաջորդը, մուտքի կեղևը փոխեք ձկան: Դուք կարող եք օգտագործել ցանկացած խմբագրիչ, որը ցանկանում եք: Եթե ​​դուք սկսնակ եք, ապա տեղադրեք Nano (հրամանով apk add nano), որպեսզի կարողանաք խմբագրել կազմաձևման ֆայլերը և պահպանել դրանք CTRL+X-ի միջոցով, հաստատել և դուրս գալ:

Բայց ես օգտագործել եմ Vim:

vim /etc/passwd

Իմ առաջին տողը հետևյալն էր.

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

Ձուկը լռելյայն պատյան դարձնելու համար փոխեք այս տողը հետևյալով.

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

Այնուհետև պահեք ֆայլը և դուրս եկեք:

Համոզված եմ, որ լավ միջոց կա կեղևի ուղին փոխելու, որպեսզի այն անմիջապես օգտագործվի: Բայց ես նրան չեմ ճանաչում, ուստի խորհուրդ եմ տալիս վերադառնալ հավելվածի բրաուզեր, ստիպել դուրս գալ պատյանից և վստահ լինելու համար անջատել և վերագործարկել iPad-ը կամ iPhone-ը: Բացեք iSH նորից և հիմա, ի լրումն «Բարի գալուստ Alpine» հաղորդագրության: և apk-ից գործարկելու մասին տեղեկությունները, կտեսնեք ստանդարտ ձկան մուտքի ողջույնի հաղորդագրությունը. Բարի գալուստ ձուկ, ընկերական ինտերակտիվ կեղև. Ուռա՜

Linux-ի հրամանի տողի գործարկում iOS-ում

Python-ի և pip-ի կարգավորում

Որոշեցի ավելացնել Python (տարբերակ 3.x), ոչ միայն կոդ գրելու համար, այլ նաև այն պատճառով, որ օգտագործում եմ Python-ի մի քանի ծրագրեր։ Եկեք տեղադրենք այն.

apk add python3

Չնայած Python 2.x-ը հնացած է, դուք կարող եք նաև տեղադրել այն.

apk add python

Տեղադրեք Python փաթեթների կառավարիչ, որը կոչվում է pip and տեղադրման սարքեր:

python3 -m ensurepip --default-pip

Որոշ ժամանակ կպահանջվի փաթեթի կառավարչի տեղադրման և կազմաձևման համար, այնպես որ պարզապես համբերատար եղեք:

Այնուհետև կարող եք ներբեռնել գործիք՝ ֆայլերը ցանցով փոխանցելու համար գալար:

apk add curl

Ընթերցանության ձեռնարկներ

Fish-ն օգտագործում է ներկառուցված ավտոմատ լրացում` հիմնված man էջերի վրա: Ինչպես հրամանի տողի մյուս օգտվողները, ես օգտագործում եմ ձեռնարկը man, իսկ Alpine-ում այն ​​տեղադրված չէ։ Այսպիսով, ես այն տեղադրեցի տերմինալային փեյջերի միջոցով ավելի քիչ:

apk add man man-pages less less-doc

Բացի տղամարդուց, ես օգտագործում եմ հոյակապը tldr էջերի նախագիծ, որն ապահովում է պարզեցված և համայնքի վրա հիմնված մարդու էջեր:

Ես տեղադրել եմ այն ​​pip-ով.

pip install tldr

Թիմ tldr միանում է համացանցին՝ էջեր բերելու համար, երբ հանդիպում է նոր էջի հարցում: Եթե ​​Ձեզ անհրաժեշտ է իմանալ, թե ինչպես օգտագործել հրամանը, կարող եք գրել նման բան tldr curl և ստացեք նկարագրություն պարզ անգլերենով և լավ օրինակներ, թե ինչպես օգտագործել հրամանը:

Իհարկե, այս բոլոր տեղադրման աշխատանքները կարող են ավտոմատացվել՝ օգտագործելով dotfiles կամ տեղադրման սցենար, բայց իրականում սա այնքան էլ համահունչ չէ Alpine-ի գաղափարախոսությանը. նվազագույն տեղադրումը հստակորեն հարմարեցնելով ձեր կարիքներին: Բացի այդ, այսքան երկար տեւեց, չէ՞։

Լրացուցիչ տեղեկություններ

iSH Wiki-ն ունի էջ «ինչ է աշխատում«Զեկույցներով, թե որ փաթեթներն են ներկայումս աշխատում: Ի դեպ, կարծես npm-ն այս պահին չի աշխատում.

Մեկ այլ վիքի էջ բացատրում է, թե ինչպես մուտք գործել iSH ֆայլեր iOS Ֆայլեր հավելվածից: Սա ֆայլեր տեղափոխելու և պատճենելու եղանակներից մեկն է:

Կարող եք նաև տեղադրել Git (այո! apk add git ) և մղեք ձեր աշխատանքը դեպի հեռավոր պահեստ կամ սեղմեք այն սերվերին SSH-ի միջոցով: Եվ, իհարկե, դուք կարող եք ներբեռնել և գործարկել GitHub-ից ցանկացած մեծ քանակությամբ բաց կոդով նախագծեր:

iSH-ի մասին լրացուցիչ տեղեկություններ կարելի է գտնել այս հղումներով.

Գովազդի իրավունքների մասին

Վդինա առաջարկություններ վիրտուալ սերվերներ Linux-ում կամ Windows. Մենք օգտագործում ենք բացառապես ֆիրմային սարքավորումներ, իր տեսակի մեջ լավագույն ներքին սերվերի կառավարման վահանակը և լավագույն տվյալների կենտրոններից մեկը Ռուսաստանում և ԵՄ-ում: Շտապե՛ք պատվիրել։

Linux-ի հրամանի տողի գործարկում iOS-ում

Source: www.habr.com

Добавить комментарий