
Czy wiedziałeś, że można uruchomić wiersz poleceń Linux na urządzeniach iOS? Możesz zapytać: „Po co mi korzystać z aplikacji tekstowych na iPhonie?” Słuszne pytanie. Ale jeśli czytasz Opensource.com, to prawdopodobnie znasz na nie odpowiedź: użytkownicy Linuxa chcą mieć możliwość pracy na każdym urządzeniu i korzystać z własnych ustawień.
Ale najbardziej pragną rozwiązywać skomplikowane problemy.
Mam siedmioletniego iPada 2 Mini, który nadal całkiem dobrze nadaje się do czytania e-booków i innych zadań. Jednak chcę również używać go do dostępu do wiersza poleceń aplikacji z moim zestawem programów i skryptów, bez których nie mogę pracować. Potrzebuję środowiska, do którego jestem przyzwyczajony, a także mojego standardowego środowiska programistycznego. Oto, jak udało mi się to osiągnąć.
Podłączenie klawiatury
Praca z wierszem poleceń do programowania przez ekranową klawiaturę telefonu lub tabletu jest dość niewygodna. Polecam podłączyć zewnętrzną klawiaturę, albo przez Bluetooth, albo wykorzystując adapter do podłączenia aparatu do podłączenia przewodowej klawiatury (wybrałem tę drugą opcję). Podłączenie oddzielonej klawiatury Kinesis Advantage do iPhone'a 6 tworzy dziwne urządzenie przypominające z klasycznej Shadowrun.
Instalacja powłoki na iOS
Aby uruchomić pełnoprawny system Linux na iOS, są dwie opcje:
- Secure shell (SSH), podłączane do komputera z Linuxem
- Uruchomienie wirtualnego systemu z Alpine Linux za pomocą iSH, który jest oprogramowaniem open source, ale musi być zainstalowane za pomocą zastrzeżonej aplikacji TestFlight firmy Apple.
Alternatywnie są dwa terminalowe aplikacje emulatora w open source, które umożliwiają pracę z narzędziami open source w ograniczonym środowisku. To najprostsza opcja — w rzeczywistości uruchamiasz nie Linuxa, a narzędzia Linux. Praca z tymi aplikacjami wiąże się z surowymi ograniczeniami funkcjonalności, jednak otrzymujesz częściową funkcjonalność wiersza poleceń.
Zanim przejdę do bardziej złożonych rozwiązań, rozważę najprostszy sposób.
Opcja 1: powłoka w „sandboxie”
Jednym z najprostszych sposobów jest zainstalowanie aplikacji na iOS . To "Piaskownica" z interfejsem wiersza poleceń, obsługująca ponad 80 poleceń, za cenę 0 dolarów. W zestawie znajdują się Python 2.7, Python 3.7, Lua, C, Clang i wiele innych.
Z podobną funkcjonalnością dysponuje , opisywana przez twórców jako "interfejs testowy dla platformy z wejściem ekranowym". Źródła a-Shell są dostępne jako , jest aktywnie rozwijana, zapewnia dostęp do systemu plików i zawiera Lua, Python, Tex, Vim, JavaScript, C i C++, a także Clang i Clang++. Umożliwia również instalowanie pakietów Python za pomocą pip.
Opcja 2: SSH
Kolejnym krokiem naprzód w porównaniu do pobierania aplikacji jest skonfigurowanie klienta SSH. Już od dłuższego czasu możemy korzystać z różnych aplikacji klientów SSH dla iOS, aby łączyć się z serwerem działającym na Linuksie lub BSD. Zaletą korzystania z SSH jest to, że na serwerze może działać dowolna dystrybucja z dowolnym oprogramowaniem. Pracujecie zdalnie, a wyniki pracy są przesyłane do emulatora terminala na urządzeniu iOS.
— to popularna płatna aplikacja SSH w . Jeśli pominąć mały ekran urządzenia, korzystanie z tego oprogramowania przypomina łączenie z serwerem przez zwykły wiersz poleceń. Terminal Blink wygląda świetnie, ma wiele gotowych motywów oraz funkcję tworzenia własnych, w tym możliwość dostosowywania i dodawania nowych czcionek.
Opcja 3: uruchamianie Linuxa
Korzystanie z SSH do łączenia się z serwerem działającym pod Linuksem to doskonały sposób na dostęp do wiersza poleceń, ale wymaga to zewnętrznego serwera i połączenia sieciowego. To nie jest największa przeszkoda, ale nie można jej całkowicie zignorować, więc może być konieczne pracowanie z Linuksem bez serwera.
Jeśli to jest Twój przypadek, musisz zrobić kolejny krok naprzód. — to autorski serwis do instalacji aplikacji w trakcie ich tworzenia, jeszcze przed ich opublikowaniem w Apple App Store. Aplikację TestFlight można zainstalować z App Store, a następnie korzystać z aplikacji testowych. Aplikacje w TestFlight pozwalają na współpracę z ograniczoną liczbą beta testerów (zwykle do 10 000) przez ograniczony czas. Aby pobrać aplikację testową, należy przejść na swoje urządzenie do linku, który zazwyczaj znajduje się na stronie internetowej dewelopera testowej aplikacji.
Uruchamianie Alpine Linux z iSH
— to open-source'owa aplikacja TestFlight, uruchamiająca maszynę wirtualną z gotowym dystrybucją (po niewielkich staraniach można również uruchamiać inne dystrybucje).
Ważna cecha: aplikacja jest eksperymentalna. Ponieważ iSH jest w tej chwili aplikacją testową, nie oczekuj stałej i niezawodnej pracy. Aplikacje TestFlight są ograniczone czasowo. Moja aktualna wersja będzie działać tylko przez 60 dni. Oznacza to, że po 60 dniach zostanę wykluczony i będę musiał ponownie dołączyć do następnego etapu testowania iSH. Co więcej, stracę wszystkie swoje pliki, jeśli ich nie wyeksportuję przy pomocy aplikacji Files na iOS lub nie skopiuję ich na Git-host lub . Innymi słowy: Nie miej nadziei, że to wszystko będzie działać wiecznie! Nie przechowuj w systemie niczego dla Ciebie ważnego! Wykonuj kopie zapasowe w innym miejscu!
Instalacja iSH
Rozpocznij od instalacji z App Store. Następnie zainstaluj iSH, ze strony aplikacji. Jest też inny sposób instalacji przy użyciu AltStore, ale go nie próbowałem. Lub, jeśli masz płatne konto dewelopera, możesz pobrać repozytorium iSH z GitHub i zainstalować je samodzielnie.
Dzięki linkowi TestFlight zainstaluje się aplikacja iSH na twoim urządzeniu. Jak w przypadku każdej innej aplikacji, na ekranie pojawi się ikona.
Zarządzanie pakietami
iSH uruchamia emulator x86 z Alpine Linux. Alpine to maleńka dystrybucja o rozmiarze mniejszym niż 5 MB. Po raz pierwszy pracowałem z Alpine, więc myślałem, że taki minimalizm będzie irytujący, ale w rzeczywistości bardzo mi się podobało.

W Alpine używa się menedżera pakietów , który jest prostszy niż nawet apt czy pacman.
Jak zainstalować pakiet:
apk add packageJak usunąć pakiet:
apk del packageJak poznać inne komendy i informacje:
apk --helpAktualizacja menedżera pakietów:
apk update
apk upgradeInstalacja edytora tekstu
Standardowym edytorem tekstu w Alpine jest Vi, ale ja preferuję Vim, dlatego go zainstalowałem:
apk add vimMożna również zainstalować Nano lub Emacs, jeśli chcesz.
Zmiana powłoki
Nie wiem jak wy, ale ja potrzebowałem . Inni wolą lub . Jednak w Alpine używana jest ash! Ash to fork powłoki Dash, która sama jest forkiem oryginalnej ash, czyli . Jej priorytetem jest szybkość. Zdecydowałem się wymienić szybkość na wbudowane autouzupełnienie, kolory, kontrolę klawiszy Vim i podświetlenie składni, które uwielbiam i znam z fish shell.
Instalacja fish:
apk add fishJeśli potrzebujesz Bash z jej autouzupełnieniem i stronami man, zainstaluj je:
apk add bash bash-doc bash-completionMinimalistyczna ideologia Alpine zazwyczaj oznacza, że niektóre programy, które w innych dystrybucjach są jednym pakietem, będą podzielone na kilka mniejszych pakietów. Oznacza to również, że możesz dostosować i zmniejszyć rozmiar systemu dokładnie tak, jak chcesz.
Więcej informacji o instalacji Bash można znaleźć w .
Zmiana powłoki domyślnej
Po zainstalowaniu fish można tymczasowo przełączyć się na nią, wpisując fish i przechodząc do powłoki. Chcę jednak uczynić fish powłoką domyślną, a polecenie chsh, którego użyłem w innych dystrybucjach, nie działało.
Najpierw sprawdźmy, gdzie zainstalowano fish:
which fishOto, co mi wyszło:
/usr/bin/fish Następnie zmienimy powłokę logowania na fish. Możesz użyć dowolnego wygodnego edytora. Jeśli jesteś nowy, zainstaluj Nano (polecenie apk add nano), aby edytować pliki konfiguracyjne i zapisać je przez CTRL+X, potwierdź i wyjdź.
Ale ja użyłem Vima:
vim /etc/passwdMoja pierwsza linia wyglądała tak:
root:x:0:0:root:/root:/bin/ashAby uczynić fish powłoką domyślną, zmienimy ten wiersz na następujący:
root:x:0:0:root:/root:/usr/bin/fishNastępnie zapisz plik i wyjdź.
Jestem pewien, że istnieje dobry sposób, aby zmienić ścieżkę do powłoki, aby można było używać jej od razu. Ale go nie znam, dlatego polecam wrócić do przeglądarki aplikacji, wymusić wylogowanie się z powłoki i dla pewności wyłączyć i ponownie uruchomić iPada lub iPhone'a. Ponownie otwórz iSH i teraz poza komunikatem „Witamy w Alpine!” oraz informacjami o uruchamianiu z apk zobaczysz standardowy komunikat powitalny logowania fish: Witaj w fish, przyjaznej interaktywnej powłoce. Hurra!

Konfiguracja Pythona i pip
Postanowiłem dodać (wersję 3.x), nie tylko po to, by pisać kod, ale również dlatego, że korzystam z kilku programów w Pythonie. Zainstalujmy go:
apk add python3Chociaż Python 2.x jest przestarzały, można go również zainstalować:
apk add pythonZainstalujmy menedżera pakietów Pythona o nazwie pip i :
python3 -m ensurepip --default-pipInstalacja i konfiguracja menedżera pakietów zajmie trochę czasu, więc po prostu poczekaj.
Następnie można będzie pobrać narzędzie do przesyłania plików przez sieć :
apk add curlCzytamy podręczniki
Fish wykorzystuje wbudowane uzupełnianie oparte na stronach man. Tak jak inni użytkownicy powłok, korzystam z podręcznika man, ale w Alpine nie jest on zainstalowany. Dlatego zainstalowałem go wraz z terminalnym pagerem :
apk add man man-pages less less-docOprócz man, korzystam z doskonałego , który zapewnia uproszczone i współtworzone przez społeczność strony man.
Zainstalowałem go za pomocą pip:
pip install tldr Zespół tldr łączy się z siecią, aby pobrać strony, gdy napotyka prośbę o nową stronę. Jeśli chcesz dowiedzieć się, jak używać polecenia, możesz wpisać coś takiego: tldr curl i otrzymać opis w prostym angielskim oraz dobre przykłady użycia polecenia.
Oczywiście, całą tę pracę instalacyjną można zautomatyzować za pomocą lub skryptu instalacyjnego, ale tak naprawdę nie bardzo pasuje to do ideologii Alpine – konfiguracji minimalnej instalacji ściśle pod swoje potrzeby. Poza tym, zajęło to przecież tyle czasu, prawda?
Dodatkowe informacje
Na Wikipedii iSH znajduje się strona "" z raportami o tym, jakie pakiety aktualnie działają. Swoją drogą, wygląda na to, że .
Na innej stronie wiki wyjaśniono, jak z aplikacji iOS Files. To jeden ze sposobów na przenoszenie i kopiowanie plików.
Można także zainstalować Git (tak! apk add git ) i przesyłać swoją pracę do zdalnego repozytorium lub przesyłać ją na serwer przez SSH. Oczywiście, można pobierać i uruchamiać dowolną ilość wspaniałych projektów open-source z GitHub.
Więcej informacji o iSH można znaleźć pod tymi linkami:
Reklama
Wydania oferując lub Windows. Używamy wyłącznie , najlepszy w swojej klasie panel sterowania serwerami opracowany przez nas oraz jedne z najlepszych centrów danych w Rosji i UE. Nie czekaj, zamów już teraz!
Źródło: habr.com
