
Věděli jste, že na zařízení se systémem iOS můžete spustit příkazový řádek Linuxu? Možná se ptáte: "Proč bych měl používat textové aplikace na iPhone?" Spravedlivá otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď: uživatelé Linuxu chtějí mít možnost jej používat na jakémkoli zařízení a chtějí používat svá vlastní nastavení.
Ale nejvíce ze všeho touží po řešení složitých problémů.
Mám sedm let starý iPad 2 Mini, který je stále dobrý pro čtení e-knih a další úkoly. Chci jej však použít také pro přístup k příkazové řádce aplikací s mojí sadou programů a skriptů, bez kterých nemohu pracovat. Potřebuji prostředí, na které jsem zvyklý, a také své standardní vývojové prostředí. A tady je návod, jak se mi toho podařilo dosáhnout.
Připojení ke klávesnici
Práce s příkazovým řádkem pro programování přes obrazovkovou klávesnici telefonu nebo tabletu je značně nepohodlná. Doporučuji připojit externí klávesnici, ať už přes Bluetooth, nebo pomocí adaptéru pro připojení fotoaparátu k připojení drátové klávesnice (já zvolil druhou). Připojení rozdělené klávesnice Kinesis Advantage k iPhone 6 má za následek podivné zařízení, které vypadá z klasického stínový běh.
Instalace shellu na iOS
Chcete-li provozovat plně funkční systém Linux na iOS, existují dvě možnosti:
- Zabezpečený shell (SSH) připojený k počítači se systémem Linux
- Spuštění virtuálního systému pomocí Alpine Linux s iSH, který je open source, ale musí být nainstalován pomocí proprietární aplikace TestFlight společnosti Apple
Alternativně existují dvě aplikace emulátoru terminálu s otevřeným zdrojovým kódem, které poskytují možnost pracovat s nástroji s otevřeným zdrojovým kódem v omezeném prostředí. Toto je nejvíce okleštěná možnost – ve skutečnosti takto nespouštíte Linux, ale nástroje Linuxu. Při práci s těmito aplikacemi existují vážná omezení, ale získáte částečnou funkčnost příkazového řádku.
Než přejdu ke komplexním řešením, zvážím nejjednodušší způsob.
Možnost 1: Shell v karanténě
Jedním z nejjednodušších způsobů je instalace aplikace pro iOS . To sandbox příkazový shell s podporou více než 80 příkazů za nula dolarů. Dodává se s Python 2.7, Python 3.7, Lua, C, Clang a dalšími.
Funkčnost přibližně stejná , popsaný vývojáři jako „testovací uživatelské rozhraní pro platformu se vstupem z obrazovky“. zveřejněny zdroje a-Shell , je v aktivním vývoji, poskytuje přístup k souborovému systému a dodává se s Lua, Python, Tex, Vim, JavaScript, C a C++ a Clang a Clang++. Dokonce vám umožňuje instalovat balíčky Pythonu pomocí pip.
Možnost 2: SSH
Dalším krokem za stažením aplikace je nastavení klienta SSH. Po dlouhou dobu jsme byli schopni používat kteroukoli z mnoha klientských aplikací iOS SSH pro připojení k serveru se systémem Linux nebo BSD. Výhodou použití SSH je, že na serveru může běžet jakákoli distribuce s libovolným softwarem. Pracujete na dálku a výsledky vaší práce se jednoduše přenesou do emulátoru terminálu na vašem iOS zařízení.
je populární placená aplikace SSH v . Pokud nevěnujete pozornost malé obrazovce zařízení, pak je použití tohoto softwaru jako připojení k serveru pomocí jakéhokoli jiného příkazového řádku. Terminál Blink vypadá skvěle, má mnoho předpřipravených motivů a možnost vytvářet si vlastní, včetně možnosti upravovat a přidávat nové fonty.
Možnost 3: Spusťte Linux
Použití SSH pro připojení k serveru pod Linuxem je skvělý způsob přístupu k příkazovému řádku, ale vyžaduje externí server a síťové připojení. Toto není největší překážka, ale nelze ji zcela ignorovat, takže možná budete muset pracovat s Linuxem bez serveru.
Pokud je to váš případ, budete muset udělat ještě jeden krok dále. je proprietární služba pro instalaci aplikací ve vývoji před jejich vydáním do obchodu Apple App Store. Aplikaci TestFlight si můžete nainstalovat z App Store a poté používat testovací aplikace. Aplikace v TestFlight umožňují omezenému počtu beta testerů (obvykle až 10 000) pracovat s nimi po omezenou dobu. Chcete-li stáhnout testovací aplikaci, musíte na svém zařízení přejít na odkaz, který se obvykle nachází na webu vývojáře testovací aplikace.
Spuštění Alpine Linuxu s iSH
je open-source aplikace TestFlight, která provozuje virtuální stroj s hotovou distribucí (s trochou práce můžete provozovat i jiné distribuce).
Důležitá funkce: aplikace experimentální. Vzhledem k tomu, že iSH je v současnosti testovací aplikace, neočekávejte konzistentní a spolehlivý výkon. Aplikace TestFlight jsou časově omezené. Moje aktuální sestavení poběží pouze 60 dní. To znamená, že po 60 dnech budu vyloučen a budu se muset znovu zapojit do další fáze testování iSH. Navíc o všechny své soubory přijdu, pokud je neexportuji pomocí Files na iOS nebo je nezkopíruji na hostitele Git nebo . Jinými slovy: Nečekejte, že to všechno bude dál fungovat! Nedávejte do systému nic pro vás důležitého! Zálohujte na samostatné místo!
Instalace iSH
Začněte instalací z App Store. Poté nainstalujte iSH, z webu aplikace. Existuje další způsob instalace pomocí AltStore, ale nezkoušel jsem to. Nebo, pokud máte placený vývojářský účet, můžete si stáhnout repozitář iSH z GitHubu a nainstalovat si ho sami.
Pomocí odkazu TestFlight nainstaluje aplikaci iSH do vašeho zařízení. Stejně jako u jakékoli jiné aplikace se na obrazovce objeví ikona.
Správa balíků
iSH provozuje x86 emulátor s Alpine Linuxem. Alpine je malá distribuce, která má velikost menší než 5 MB. Bylo to poprvé, co jsem pracoval s Alpine, takže jsem si myslel, že minimalismus bude otravný, ale opravdu se mi to líbilo.

Alpine používá správce balíčků což je snadnější než dokonce apt nebo pacman.
Jak balíček nainstalovat:
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
Standardní textový editor Alpine je Vi, ale já preferuji Vim, takže jsem ho nainstaloval:
apk add vimPokud chcete, můžete nainstalovat Nano nebo Emacs.
Změna skořápky
Nevím jak vy, ale já to potřeboval . Ostatní lidé preferují nebo . Alpine však používá jasan! Jasan je vidlice skořepiny Dash, která je sama o sobě vidlicí původního jasanu, popř . Její prioritou je rychlost. Rozhodl jsem se vyměnit rychlost za vestavěné automatické dokončování, barvy, správu klíčů Vim a zvýraznění syntaxe, které miluji a znám z rybí skořápky.
instalace ryb:
apk add fishPokud potřebujete Bash s automatickým dokončováním a manuálovými stránkami, nainstalujte je:
apk add bash bash-doc bash-completionMinimalistická ideologie Alpine obvykle znamená, že některé programy, které jsou v jiných distribucích jediným balíčkem, budou rozděleny do několika menších balíčků. Znamená to také, že můžete systém vyladit a zmenšit přesně tak, jak chcete.
Další informace o instalaci Bash viz .
Změna výchozího shellu
Jakmile je ryba nainstalována, můžete na ni dočasně přepnout zadáním fish a jít do skořápky. Ale chci udělat z ryby výchozí shell a příkaz chsh, který jsem používal v jiných distribucích, nefungoval.
Nejprve zjistíme, kde jsou ryby nainstalovány:
which fishStalo se mi toto:
/usr/bin/fish Dále změňte přihlašovací shell na fish. Můžete použít libovolný editor, který se vám líbí. Pokud jste začátečník, nainstalujte Nano (pomocí příkazu apk add nano), abyste mohli upravit konfigurační soubory a uložit je pomocí CTRL+X, potvrdit a ukončit.
Ale použil jsem Vim:
vim /etc/passwdMůj první řádek byl:
root:x:0:0:root:/root:/bin/ashChcete-li nastavit rybu jako výchozí skořápku, změňte tento řádek na následující:
root:x:0:0:root:/root:/usr/bin/fishPoté soubor uložte a ukončete.
Jsem si jistý, že existuje dobrý způsob, jak změnit cestu skořápky, aby se dala hned použít. Já ho ale neznám, takže doporučuji vrátit se do prohlížeče aplikace, vynutit opuštění shellu a pro jistotu vypnout a restartovat iPad nebo iPhone. Otevřete iSH znovu a nyní, kromě zprávy „Vítejte v Alpine!“ a informace o spuštění z apk, uvidíte standardní uvítací zprávu pro přihlášení ryb: Vítejte na rybách, přátelské interaktivní skořápce. Hurá!

Nastavení Pythonu a pipu
Rozhodl jsem se přidat (verze 3.x), nejen kvůli psaní kódu, ale také proto, že používám několik programů Python. Pojďme to nainstalovat:
apk add python3Přestože je Python 2.x zastaralý, můžete jej nainstalovat také:
apk add pythonNainstalujte správce balíčků Pythonu s názvem pip a :
python3 -m ensurepip --default-pipInstalace a konfigurace správce balíčků bude nějakou dobu trvat, takže buďte trpěliví.
Poté si můžete stáhnout nástroj pro přenos souborů po síti :
apk add curlČtení manuálů
Fish používá vestavěné automatické dokončování založené na manuálových stránkách. Stejně jako ostatní uživatelé příkazového řádku používám manuál mana Alpine ji nemá nainstalovanou. Tak jsem to nainstaloval pomocí terminálového pageru :
apk add man man-pages less less-docKromě člověka používám velkolepé , který poskytuje zjednodušené a komunitou řízené manuálové stránky.
Nainstaloval jsem to pomocí pip:
pip install tldr Tým tldr připojí k webu za účelem načtení stránek, když narazí na požadavek 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ískejte popis v jednoduché angličtině a dobré příklady použití příkazu.
Všechny tyto instalační práce lze samozřejmě pomocí automatizovat nebo instalační skript, ale ve skutečnosti to není příliš v souladu s ideologií Alpine - přizpůsobení minimální instalace jasně vašim potřebám. Navíc to trvalo tak dlouho, že?
doplňující informace
iSH Wiki má stránku "" se zprávami o tom, které balíčky aktuálně běží. Mimochodem, vypadá to tak .
Další wiki stránka vysvětluje jak z aplikace Soubory pro iOS. Toto je jeden ze způsobů, jak můžete přesouvat a kopírovat soubory.
Můžete také nainstalovat Git (ano! apk add git ) a odeslat svou práci do vzdáleného úložiště nebo ji odeslat na server přes SSH. A samozřejmě si můžete stáhnout a spustit libovolný počet skvělých open-source projektů z GitHubu.
Více informací o iSH naleznete na těchto odkazech:
Jako reklama
Vdsina nabízí nebo Windows. Používáme výhradně , nejlepší interní serverový ovládací panel svého druhu a jedno z nejlepších datových center v Rusku a EU. Pospěšte si s objednávkou!
Zdroj: www.habr.com
