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á
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
Funkčnost přibližně stejná
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í.
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.
Spuštění Alpine Linuxu s iSH
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
Instalace iSH
Začněte instalací
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ů
Jak balíček nainstalovat:
apk add package
Jak odstranit balíček:
apk del package
Jak zjistit další příkazy a informace:
apk --help
Aktualizace správce balíčků:
apk update
apk upgrade
Instalace textového editoru
Standardní textový editor Alpine je Vi, ale já preferuji Vim, takže jsem ho nainstaloval:
apk add vim
Pokud chcete, můžete nainstalovat Nano nebo Emacs.
Změna skořápky
Nevím jak vy, ale já to potřeboval
instalace ryb:
apk add fish
Pokud potřebujete Bash s automatickým dokončováním a manuálovými stránkami, nainstalujte je:
apk add bash bash-doc bash-completion
Minimalistická 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 fish
Stalo 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/passwd
Můj první řádek byl:
root:x:0:0:root:/root:/bin/ash
Chcete-li nastavit rybu jako výchozí skořápku, změňte tento řádek na následující:
root:x:0:0:root:/root:/usr/bin/fish
Poté 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
apk add python3
Přestože je Python 2.x zastaralý, můžete jej nainstalovat také:
apk add python
Nainstalujte správce balíčků Pythonu s názvem pip a
python3 -m ensurepip --default-pip
Instalace 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 man
a Alpine ji nemá nainstalovanou. Tak jsem to nainstaloval pomocí terminálového pageru
apk add man man-pages less less-doc
Kromě člověka používám velkolepé
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
doplňující informace
iSH Wiki má stránku "
Další wiki stránka vysvětluje jak
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í
Zdroj: www.habr.com