Zaženemo ukazno vrstico Linux na iOS

Zaženemo ukazno vrstico Linux na iOS

Ali ste vedeli, da lahko na napravi iOS zaženete ukazno vrstico Linux? Morda se sprašujete: „Zakaj bi uporabljal besedilne aplikacije na iPhoneu?“ Pravično vprašanje. Vendar, če berete Opensource.com, potem verjetno poznate odgovor: uporabniki Linuxa želijo imeti možnost delati z njim na kateri koli napravi in želijo uporabljati lastne nastavitve.

Ampak najbolj si želijo reševanja zapletenih nalog.

Imam sedem let star iPad 2 Mini, ki je še vedno dober za branje e-knjig in druge naloge. Vendar ga želim uporabiti tudi za dostop do ukazne vrstice aplikacij s svojim naborom programov in skript, brez katerih ne morem delati. Potrebujem okolje, na katerega sem navajen, ter svojo standardno razvojno okolje. In to je, kako sem to dosegel.

Povezovanje s tipkovnico

Delo z ukazno vrstico za programiranje preko zaslonske tipkovnice telefona ali tablice je precej neprijetno. Priporočam priključitev zunanje tipkovnice, bodisi prek Bluetootha ali z uporabo adapterja za priključek kamere za povezavo žične tipkovnice (sam sem izbral drugo možnost). Ko je razdeljena tipkovnica Kinesis Advantage priključena na iPhone 6, dobimo čudno napravo, ki spominja na korporativni kiberdekk iz klasične role-playing igre Shadowrun.

Namestitev lupine na iOS

Za zagon polnofunkcionalnega sistema Linux na iOS obstajata dve možnosti:

  • Secure shell (SSH), povezan s računalnikom z Linuxom
  • Zagon virtualnega sistema z Alpine Linux z iSH, ki je odprtokoden, vendar ga je treba namestiti prek lastniške aplikacije TestFlight podjetja Apple

Kot alternativa sta na voljo dve aplikaciji-emulatorja terminala v odprti kodi, ki omogočata delo z odprtokodnimi orodji v omejenem okolju. To je najbolj osnovna različica — v resnici ne zaženete Linuxa, temveč orodja Linuxa. Ob delu s temi aplikacijami obstajajo stroge omejitve zmožnosti, vendar dobite delno funkcionalnost ukazne vrstice.

Preden preidemo na zapletene rešitve, bom predstavil najpreprostejši način.

Možnost 1: lupina v „peskovniku“

Eden najlažjih načinov je namestitev aplikacije za iOS LibTerm. To je odprtokodno ukazateljski terminal v „sandboxu“ s podporo za več kot 80 ukazov po ceni nič dolarjev. V kompletu so poleg tega še Python 2.7, Python 3.7, Lua, C, Clang in še več.

Približno enako funkcionalnost ima a-Shell, ki jo razvijalci opisujejo kot „testni uporabniški vmesnik za platformo z vnosom iz zaslona“. Izvorna koda a-Shell je objavljena open source, je v aktivnem razvoju, omogoča dostop do datotečnega sistema in pride z Lua, Python, Tex, Vim, JavaScript, C in C++, pa tudi s Clang in Clang++. Omogoča celo namestitev Python paketov s pip.

Možnost 2: SSH

Še en korak naprej v primerjavi s prenosom aplikacije je nastavitev SSH odjemalca. Že dolgo časa lahko uporabljamo katero koli od številnih aplikacij SSH odjemalcev za iOS, da se povežemo z strežnikom, na katerem delujeta Linux ali BSD. Prednost uporabe SSH je, da lahko na strežniku deluje katerikoli distribucijski sistem z katerim koli programsko opremo. Delate na daljavo, rezultati dela pa se preprosto prenašajo v terminalski emulator na napravi iOS.

Blink shell — priljubljena plačljiva SSH aplikacija v open source. Če ne upoštevamo majhnega zaslona naprave, se zdi, da je uporaba tega programske opreme podobna povezovanju s strežnikom preko katerega koli drugega ukaznega poziva. Terminal Blink odlično izgleda, ima številne prednastavljene teme in funkcijo za ustvarjanje lastnih, vključno z možnostjo prilagajanja in dodajanja novih pisav.

Možnost 3: zagon Linuxa

Uporaba SSH za povezovanje s strežnikom pod Linuxom je odličen način dostopa do ukazne vrstice, vendar zahteva zunanji strežnik in omrežno povezavo. To ni največja ovira, a je ne morete popolnoma prezreti, zato boste morda potrebovali delo z Linuxom brez strežnika.

Če je to vaš primer, boste morali narediti še en korak naprej. TestFlight — to je lastniška storitev za namestitev razvijajočih se aplikacij še pred njihovo objavo v Apple App Store. Aplikacijo TestFlight je mogoče namestiti iz App Store, nato pa uporabljati testne aplikacije. Aplikacije v TestFlight omogočajo, da omejeno število beta testerjev (običajno do 10.000) uporablja aplikacijo v omejenem časovnem obdobju. Da bi prenesli testno aplikacijo, se morate povezati s svojega naprave preko povezave, ki se običajno nahaja na spletni strani razvijalca testne aplikacije.

Zagon Alpine Linux z iSH

iSH — je open-source aplikacija TestFlight, ki zažene virtualni stroj z že pripravljeno distribucijo Alpine Linux (z malo truda je mogoče zagnati tudi druge distribucije).

Pomembna značilnost: aplikacija je eksperimentalna. Ker je iSH trenutno testna aplikacija, ne pričakujte stalnega in zanesljivega delovanja. Aplikacije TestFlight so časovno omejene. Moja trenutna zgradba bo delovala le 60 dni. To pomeni, da bom po 60 dneh izključen in se bom moral ponovno pridružiti naslednji fazi testiranja iSH. Poleg tega bom izgubil vse svoje datoteke, če jih ne izvozite s pomočjo Files na iOS ali jih ne kopiram na Git gostitelj ali prek SSH. Drugimi besedami: Ne upajte, da bo to še naprej delovalo! V sistem ne dajte nič pomembnega za vas! Izvajajte varnostne kopije na ločeno mesto!

Namestitev iSH

Začnite z namestitvijo TestFlight iz App Store. Nato namestite iSH, prejmite povezavo za namestitev s spletne strani aplikacije. Obstaja še en način namestitve z uporabo AltStore, vendar ga nisem preizkusil. Ali pa, če imate plačano razvijalčevo naročnino, lahko prenesete repozitorij iSH z GitHub in ga namestite sami.

S povezavo TestFlight bo aplikacija iSH namestila na vašo napravo. Tako kot pri kateri koli drugi aplikaciji se bo na zaslonu pojavila ikona.

Upravljanje paketov

iSH izvaja emulacijo x86 z Alpine Linux. Alpine je majhna distribucija, ki je manjša od 5 MB. Prvič sem delal z Alpine, zato sem mislil, da bo takšna minimalističnost moteča, a mi je v resnici zelo všeč.

Zaženemo ukazno vrstico Linux na iOS
V Alpine se uporablja upravljalnik paketov apk, ki je lažji celo od apt ali pacman.

Kako namestiti paket:

apk add package

Kako odstraniti paket:

apk del package

Kako izvedeti druge ukaze in informacije:

apk --help

Posodobitev upravljalnika paketov:

apk update
apk upgrade

Namestitev urejevalnika besedil

privzeti urejevalnik besedil v Alpine je Vi, a jaz raje uporabljam Vim, zato sem ga namestil:

apk add vim

Po želji lahko namestite tudi Nano ali Emacs.

Zamenjava lupine

Ne vem, kako je z vami, ampak jaz sem potreboval fish shell. Drugi ljudje raje uporabljajo Bash ili Zsh. Vendar pa Alpine uporablja ash! Ash je fork lupine Dash, ki je sama fork izvornega asha ali Almquist shell. Njegov cilj je hitrost. Odločil sem se, da zamenjam hitrost za vgrajeno samodejno dopolnjevanje, barve, upravljanje s tipkami Vim in poudarjanje sintakse, ki jih imam rad in jih poznam iz fish shell.

Namestitev fish:

apk add fish

Če potrebujete Bash s samodejnim dopolnjevanjem in man-stranmi, ga namestite:

apk add bash bash-doc bash-completion

Minimalistična ideologija Alpine običajno pomeni, da bodo 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 točno tako, kot želite.

Več o namestitvi Basha lahko izveste iz tega priročnika.

Zamenjava privzete lupine

Po namestitvi fish se lahko začasno preklopite nanjo tako, da vnesete fish in preklopite na lupino. Vendar pa želim, da postane fish privzeta lupina, ampak ukaz chsh, ki sem ga uporabljal v drugih distribucijah, ni deloval.

Najprej ugotovimo, kam se je fish namestil:

which fish

To je, kar sem dobil:

/usr/bin/fish

Nato bomo spremenili prijavno lupino na fish. Uporabite lahko katerikoli urejevalnik, ki vam ustreza. Če ste začetnik, namestite Nano (z ukazom apk add nano), da lahko uredite konfiguracijske datoteke in jih shranite s CTRL+X, potrdite in zapustite.

Jaz pa sem uporabljal Vim:

vim /etc/passwd

Prva vrstica je bila takšna:

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

Da bi fish postala privzeta lupina, spremenimo to vrstico v naslednjo:

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

Nato shranimo datoteko in zapustimo.

Prepričan sem, da obstaja dober način, da spremenite pot do lupine, tako da jo lahko uporabite takoj. Toda tega ne poznam, zato priporočam, da se vrnete v brskalnik aplikacij, prisilno izstopite iz lupine in za zanesljivost izklopite in ponovno vklopite iPad ali iPhone. Znova odprite iSH in zdaj poleg sporočila „Dobrodošli v Alpine!“ in informacij o zagonu z apk verjetno boste videli tudi standardno pozdravno sporočilo za prijavo fish: Добро пожаловать в fish, дружелюбную интерактивную оболочку. Ура!

Zaženemo ukazno vrstico Linux na iOS

Настройка Python и pip

Я решил добавить Python (версию 3.x), не только для того, чтобы писать код, но и потому, что я пользуюсь несколькими программами на Python. Установим его:

apk add python3

Хотя Python 2.x устарел, можно установить и его:

apk add python

Установим менеджер пакетов Python под названием pip и setuptools:

python3 -m ensurepip --default-pip

Для установки и настройки менеджера пакетов понадобится какое-то время, поэтому просто подождите.

Затем можно будет скачать инструмент для передачи файлов по сети curl:

apk add curl

Читаем мануалы

Fish использует встроенное автодополнение на основе man-страниц. Как и другие пользователи командной строки, я пользуюсь мануалом man, а в Alpine он не установлен. Поэтому я установил его с терминальным пейджером less:

apk add man man-pages less less-doc

В дополнение к man я использую великолепный проект tldr pages, предоставляющий упрощённые и управляемые сообществом man-страницы.

Я установил его с помощью pip:

pip install tldr

Komanda tldr соединяется с вебом для получения страниц, когда встречает запрос на новую страницу. Если вам нужно узнать, как пользоваться командой, то вы можете написать что-то типа tldr curl и получить описание на простом английском языке и хорошие примеры по использованию команды.

Разумеется, всю эту работу по установке можно автоматизировать с помощью dotfiles или скрипта установки, но на самом деле это не очень соответствует идеологии Alpine — настройке минимальной установки чётко под свои потребности. Кроме того, это ведь заняло так много времени, правда?

Dodatne informacije

В Вики iSH есть страница "what works" с отчётами о том, какие пакеты сейчас работают. Кстати, похоже, что npm сейчас не работает.

На ещё одной вики-странице объясняется, как получить доступ к файлам iSH из приложения iOS Files. Это один из способов, которым можно перемещать и копировать файлы.

Можно также установить Git (да! apk add git ) и пушить свою работу в удалённый репозиторий или передавать его на сервер через SSH. И, разумеется, можно скачивать и запускать любое количество замечательных open-source-проектов с GitHub.

Подробнее об iSH можно узнать по этим ссылкам:

V okviru oglaševanja

Вдсина ponuja виртуальные серверы на Linux или Windows. Используем исключительно брендовое оборудование, najbolja u svojoj klasi kontrolna ploča za servere vlastite izrade i jedan od najboljih data centara u Rusiji i EU. Požurite da naručite!

Zaženemo ukazno vrstico Linux na iOS

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster