
Věděli jste, že můžete spustit terminál Linux na zařízení iOS? Možná se ptáte: „Proč bych měl používat textové aplikace na iPhonu?“ To je spravedlivá otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď: uživatelé Linuxu chtějí mít možnost pracovat na jakémkoliv zařízení a chtějí používat své vlastní nastavení.
Ale nejvíce touží po řešení složitých úloh.
Mám sedmiletý iPad 2 Mini, který je stále docela dobrý pro čtení elektronických knih a další úkoly. Chtěl bych ho však používat i pro přístup k terminálu aplikací se svým souborem programů a skriptů, bez kterých se neobejdu. Potřebuji prostředí, na které jsem zvyklý, stejně jako své standardní d Developerské prostředí. A tady je, jak jsem to dokázal.
Připojení klávesnice
Práce s terminálem pro programování prostřednictvím obrazovkové klávesnice telefonu nebo tabletu je dost nepohodlná. Doporučuji připojit externí klávesnici, buď přes Bluetooth, nebo pomocí adaptéru pro připojení kamery pro připojení drátové klávesnice (vybral jsem druhou možnost). Po připojení dělené klávesnice Kinesis Advantage k iPhonu 6 to vypadá jako podivný přístroj, který připomíná z klasického Shadowrun.
Instalace shellu na iOS
K provozu plnohodnotného systému Linux na iOS existují dvě možnosti:
- Secure shell (SSH), připojený k počítači s Linuxem
- Spuštění virtuálního systému pomocí Alpine Linux s iSH, což je open source, ale musí být nainstalováno pomocí proprietární aplikace TestFlight od Apple
Alternativně existují dvě terminálové emulátory v open source, které umožňují práci s open-source nástroji v omezeném prostředí. To je nejúspornější varianta - ve skutečnosti nespouštíte Linux, ale nástroje Linuxu. Při práci s těmito aplikacemi existují přísná omezení funkcí, ale získáte částečnou funkčnost terminálu.
Než se dostanu k složitějším řešením, seznámím vás s nejjednodušším způsobem.
Možnost 1: shell v „písku“
Jedním z nejjednodušších způsobů je nainstalovat aplikaci pro iOS . To je příkazový řádek v „sandboxu“ s podporou více než 80 příkazů za cenu nula dolarů. Společně s ním jsou dodávány Python 2.7, Python 3.7, Lua, C, Clang a mnoho dalšího.
Přibližně stejnou funkcionalitou disponuje , která je vývojáři popisována jako „testovací uživatelské rozhraní pro platformu se vstupem na obrazovce“. Zdroje a-Shell jsou zveřejněny jako , je aktivně vyvíjena, poskytuje přístup k souborovému systému a dodává se s Lua, Python, Tex, Vim, JavaScript, C a C++, stejně jako s Clang a Clang++. Dokonce umožňuje instalaci Python balíčků pomocí pip.
Varianta 2: SSH
Dalším krokem vpřed oproti stažení aplikace je nastavení SSH klienta. Již dlouho jsme mohli používat jakoukoli z mnoha aplikací SSH klientů pro iOS, abychom se připojili k serveru, na kterém běží Linux nebo BSD. Výhoda použití SSH spočívá v tom, že na serveru může běžet jakákoli distribuce s jakýmkoli softwarem. Pracujete vzdáleně a výsledky jsou jednoduše přenášeny do terminálového emulátoru na zařízení iOS.
— je populární placená SSH aplikace v . Pokud nebudeme brát v úvahu malou obrazovku zařízení, používání tohoto softwaru připomíná připojení k serveru prostřednictvím jakéhokoli jiného příkazového řádku. Terminál Blink vypadá skvěle, má mnoho hotových témat a možnost vytvářet vlastní, včetně možnosti úpravy a přidávání nových písem.
Varianta 3: spuštění Linuxu
Použití SSH k připojení k serveru s Linuxem je skvělý způsob, jak získat přístup k příkazovému řádku, ale vyžaduje to externí server a síťové připojení. To není největší překážka, ale nelze ji úplně ignorovat, takže možná budete potřebovat pracovat s Linuxem bez serveru.
Pokud je to váš případ, budete muset udělat další krok vpřed. — to je proprietární služba pro instalaci vyvíjených aplikací ještě před tím, než byly zveřejněny v Apple App Store. Aplikaci TestFlight si můžete stáhnout z App Store a používat testovací aplikace. Aplikace v TestFlight umožňují pracovat s nimi po omezenou dobu omezenému počtu beta testerů (obvykle až 10 000). Chcete-li stáhnout testovací aplikaci, musíte přejít ze svého zařízení na odkaz, který je obvykle na webových stránkách vývojáře testovací aplikace.
Spuštění Alpine Linux s iSH
— je open-source aplikace TestFlight, která spouští virtuální stroj s hotovým distribucí (se správným úsilím lze spouštět i jiné distribuce).
Důležitá vlastnost: aplikace je experimentální. Protože je iSH zatím testovací aplikací, neočekávejte stálou a spolehlivou funkčnost. Aplikace TestFlight jsou časově omezeny. Moje současná verze bude fungovat pouze 60 dní. To znamená, že za 60 dní budu vyloučen a budu se muset znovu připojit k dalšímu testování iSH. Navíc ztratím všechny své soubory, pokud je neexportuji pomocí aplikace Soubory na iOS nebo je neokopíruji na Git hostitel nebo . Jinými slovy: Nedoufejte, že to všechno bude stále fungovat! Není dobré ukládat do systému nic důležitého pro vás! Provádějte zálohy na jiné místo!
Instalace iSH
Začněte instalací z App Store. Poté nainstalujte iSH, z webových stránek aplikace. Existuje také další způsob instalace pomocí AltStore, ale ten jsem nezkoušel. Nebo, pokud máte placený účet vývojáře, můžete si stáhnout repozitář iSH z GitHub a nainstalovat ho sami.
Pomocí odkazu TestFlight nainstaluje aplikaci iSH na vaše zařízení. Stejně jako u jakékoli jiné aplikace se na obrazovce objeví ikona.
Správa balíčků
iSH provozuje emulátor x86 s Alpine Linux. Alpine je malá distribuce o velikosti méně než 5 MB. První zkušenost s Alpine mě překvapila, myslel jsem, že mi takový minimalismus bude vadit, ale ve skutečnosti se mi opravdu líbí.

V Alpine se používá správce balíčků , který je jednodušší než apt nebo pacman.
Jak nainstalovat balíček:
apk add packageJak odstranit balíček:
apk del packageJak zjistit další příkazy a informace:
apk --helpAktualizace správce balíčků:
apk update
apk upgradeInstalace textového editoru
Výchozím textovým editorem Alpine je Vi, ale já preferuji Vim, proto jsem ho nainstaloval:
apk add vimPokud chcete, můžete nainstalovat také Nano nebo Emacs.
Změna shellu
Nevím, jak to máte vy, ale já potřeboval . Jiní lidé preferují nebo . V Alpine se však používá ash! Ash je fork shelly Dash, která sama je forkem původního ash, nebo . Jeho priorita je rychlost. Rozhodl jsem se vyměnit rychlost za vestavěné automatické dokončování, barvy, ovládání klávesami Vim a zvýraznění syntaxe, které mám rád a znám z fish shell.
Instalace fish:
apk add fishPokud potřebujete Bash s jejím automatickým dokončováním a man stránkami, nainstalujte je:
apk add bash bash-doc bash-completionMinimalistická ideologie Alpine obvykle znamená, že některé programy, které v jiných distribucích jsou jedním balíčkem, budou rozděleny na několik menších balíčků. Také to znamená, že si můžete svůj systém přizpůsobit a zmenšit velikost přesně podle svých představ.
Více o instalaci Bash se dozvíte z .
Změna výchozího shellu
Po instalaci fish se můžete dočasně přepnout na ni zadáním fish a přepnout se do shellu. Ale chci udělat fish shell výchozím, a příkaz chsh, který jsem používal v jiných distribucích, nefungoval.
Nejdříve zjistíme, kam se fish nainstalovala:
which fishTady je, co jsem dostal:
/usr/bin/fish Pak změníme login shell na fish. Můžete použít jakýkoliv editor, který vám vyhovuje. Pokud jste nováčka, nainstalujte Nano (příkazem apk add nano), abyste mohli upravit konfigurační soubory a uložit je přes CTRL+X, potvrdit a ukončit.
Ale já jsem použil Vim:
vim /etc/passwdMůj první řádek byl takový:
root:x:0:0:root:/root:/bin/ashAbych udělal fish shell výchozím, změníme tento řádek na následující:
root:x:0:0:root:/root:/usr/bin/fishPak uložíme soubor a výjdeme.
Jsem si jistý, že existuje dobrý způsob, jak změnit cestu k shellu, aby se dala použít hned. Ale nevím jak, proto doporučuji vrátit se do aplikace prohlížeče, nutně se odhlásit ze shellu a pro jistotu vypnout a restartovat iPad nebo iPhone. Znovu otevřete iSH a nyní kromě zprávy „Vítejte v Alpine!“ a informace o spuštění s apk uvidíte standardní uvítací zprávu pro přihlášení fish: Vítejte v fish, přátelském interaktivním shellu. Hurá!

Nastavení Pythonu a pip
Rozhodl jsem se přidat (verzi 3.x), nejen proto, abych mohl psát kód, ale také proto, že používám několik programů v Pythonu. Nainstalujeme ho:
apk add python3I když je Python 2.x zastaralý, můžete nainstalovat i jeho:
apk add pythonNainstalujeme správce balíčků Python, nazývaný pip a :
python3 -m ensurepip --default-pipPro instalaci a konfiguraci správce balíčků bude potřeba nějaký čas, takže si prostě počkejte.
Poté si budete moci stáhnout nástroj pro přenos souborů přes síť :
apk add curlČteme manuály
Fish používá vestavěné automatické doplňování na základě man-stránek. Jako ostatní uživatelé příkazové řádky používám manuál man, a v Alpine není nainstalován. Proto jsem ho nainstaloval s terminálovým pagerem :
apk add man man-pages less less-docKromě manuálu používám skvělý , který poskytuje zjednodušené a komunitou spravované man-stránky.
Nainstaloval jsem ho pomocí pip:
pip install tldr Tým tldr se spojuje s webem pro získání stránek, když se setká s požadavkem na novou stránku. Pokud potřebujete vědět, jak používat příkaz, můžete napsat něco jako tldr curl a získat popis v jednoduché angličtině a dobré příklady použití příkazu.
Samozřejmě, že veškerou tuto práci kolem instalace lze automatizovat pomocí nebo instalačního skriptu, ale to vlastně moc neodpovídá ideologii Alpine — konfiguraci minimální instalace přesně podle vlastních potřeb. Kromě toho to zabralo tolik času, že?
Další informace
Na wiku iSH je stránka "" s reporty o tom, které balíčky nyní fungují. Mimochodem, vypadá to, že .
Na další wikipedii je vysvětleno, jak z aplikace iOS Files. To je jeden ze způsobů, jak lze přesouvat a kopírovat soubory.
Můžete také nainstalovat Git (ano! apk add git ) a posílat svou práci do vzdáleného úložiště nebo ji přenášet na server přes SSH. A samozřejmě, můžete stahovat a spouštět libovolné množství úžasných open-source projektů z GitHubu.
Více o iSH se můžete dozvědět na těchto odkazech:
Na základě reklamy
VDS nabízí nebo Windows. Používáme výhradně , nejlepší ve své třídě řídicí panel serverů vyvinutý námi a jedno z nejlepších datových center v Rusku a EU. Nezapomeňte si objednat!
Zdroj: habr.com
