Czy wiesz, że możesz uruchomić linię poleceń Linux na urządzeniu z systemem iOS? Możesz zapytać: „dlaczego miałbym używać aplikacji tekstowych na moim małym iPhonie?”W porządku. To całkiem rozsądne pytanie. Ale jeśli czytasz Opensource.com, prawdopodobnie znasz odpowiedź: użytkownicy Linuksa chcą móc korzystać z dowolnego urządzenia, a także chcą korzystać z własnych dostosowań.
a przede wszystkim chcą wyzwania.
mam siedmioletniego iPada 2 Mini, który nadal działa dobrze do czytania e-booków i innych zadań. Ale chcę również użyć go, aby uzyskać dostęp do wiersza poleceń dla aplikacji i mojego pakietu programów i skryptów, bez których nie mogę się obejść. Chcę środowiska, do którego jestem przyzwyczajony, a także mojego standardowego środowiska programistycznego. Oto jak to zrobiłem.
łączenie się z klawiaturą
używanie wiersza poleceń do programowania na klawiaturze ekranowej telefonu lub tabletu nie jest zbyt zabawne. Polecam podłączenie klawiatury zewnętrznej, poprzez Bluetooth lub za pomocą adaptera zestawu do podłączenia kamery, aby podłączyć klawiaturę przewodową (moje preferencje). Podłączenie mojej podzielonej klawiatury Kinesis Advantage do mojego iPhone ’ a 6 sprawia, że pojawia się jakaś dziwna Optyka, jak cyberdeck firmy corp z klasycznej gry RPG Shadowrun.
Pobierz powłokę na iOS
masz dwie opcje uruchamiania kompletnego systemu Linux na iOS:
- Secure shell (SSH) na komputerze z systemem Linux
- Uruchom zwirtualizowany system za pomocą Alpine Linux z iSH, który jest open source, ale musi być zainstalowany przy użyciu zastrzeżonej aplikacji TestFlight firmy Apple
alternatywnie istnieją dwie aplikacje emulatora terminala open source, które zapewniają narzędzia open source w ograniczonym środowisku. Jest to najbardziej ograniczona opcja—tak naprawdę nie pozwala na uruchamianie Linuksa, ale używasz narzędzi Linuksowych. Istnieją poważne ograniczenia dotyczące tego, co możesz zrobić na urządzeniu za pomocą tych aplikacji, ale zapewniają one pewną funkcjonalność wiersza poleceń.
przyjrzę się najprostszemu podejściu, zanim zgłębię bardziej wymagające rozwiązania.
Opcja 1: piaskownica
jednym z najprostszych sposobów na rozpoczęcie pracy jest aplikacja iOS LibTerm. Jest to powłoka wiersza poleceń open source w piaskownicy z ponad 80 poleceniami dołączonymi do aplikacji $0. Jest dostarczany z Python 2.7, Python 3.7, Lua, C, Clang i więcej.
podobnie jest z-shellem, opisanym jako „tekstowy interfejs użytkownika dla platformy ekranowej.”A-Shell jest open source, w aktywnym rozwoju, zapewnia dostęp do systemu plików i jest dostarczany z Lua, Python, Tex, Vim, JavaScript, C i c++, wraz z Clang i clang++. Pozwala nawet na instalowanie pakietów Pythona za pomocą pip.
Opcja 2: SSH anywhere
jednym krokiem od pobrania aplikacji jest skonfigurowanie klienta SSH. Od dłuższego czasu możliwe jest użycie jednej z wielu aplikacji klienckich SSH na iOS, aby połączyć się z serwerem z dystrybucją Linuksa lub BSD. Zaletą korzystania z SSH jest to, że twój serwer może działać w dowolnej dystrybucji z dowolnym oprogramowaniem. Pracujesz zdalnie, a Twoje dane wyjściowe są przesyłane do emulatora terminala Urządzenia z systemem iOS.
Blink shell to popularna płatna aplikacja open source SSH. Poza małym ekranem korzystanie z tego oprogramowania jest podobne do łączenia się z serwerem za pomocą dowolnego innego wiersza polecenia. Terminal Blink wygląda pięknie, z wieloma dołączonymi motywami i możliwością tworzenia własnych motywów, w tym dostosowywania i dodawania nowych czcionek.
Wariant 3: Uruchom Linuksa
używanie SSH do łączenia się z serwerem z systemem Linux to świetny sposób na uzyskanie dostępu do monitu, ale wymaga dostępu do zewnętrznego serwera i połączenia. Nie jest to najgorsza bariera wejścia, ale nie jest całkowicie nieistotna i możesz chcieć używać Linuksa bez tego wymogu serwera.
Jeśli tak jest w Twoim przypadku, będziesz musiał wybić coś nieco bardziej na krawędzi tnącej. TestFlight to zastrzeżona usługa do wdrażania aplikacji programistycznych przed ich przesłaniem do Apple App Store. Możesz pobrać aplikację TestFlight ze sklepu, a następnie zarejestrować się w kilku aplikacjach testowych. Aplikacje w TestFlight pozwalają na ograniczoną liczbę zewnętrznych beta testerów (zazwyczaj do 10 000) Przez ograniczony czas. Aby pobrać aplikację testową, musisz uzyskać dostęp do łącza bezpośrednio z urządzenia, który zazwyczaj znajduje się na stronie internetowej twórcy aplikacji testowej.
Uruchom Alpine Linux z iSH
iSH to aplikacja open source TestFlight, która uruchamia Maszynę wirtualną z dystrybucją Alpine Linux po wyjęciu z pudełka (ale możesz uruchomić inne dystrybucje z nieco większym majsterkowaniem).
ważne zastrzeżenie: jest to eksperymentalne. Ponieważ iSH jest obecnie aplikacją testową, nie oczekuj stałej lub solidnej usługi. Aplikacje TestFlight są ograniczone czasowo. Moja obecna budowa trwa 60 dni. Oznacza to, że za 60 dni będę zamknięty i będę musiał wrócić do następnej fazy testów iSH. Co więcej, stracę moje pliki, chyba że wyeksportuję je z plikami na iOS lub wykonam kopię zapasową na Hostie Git lub za pomocą SSH. Żeby było jasne: nie polegaj na tym, aby kontynuować pracę! Nie wkładaj tu niczego, co jest niezbędne! Wróć do pracy gdzie indziej!
zainstaluj iSH
Rozpocznij od zainstalowania TestFlight w App Store. Następnie zainstaluj iSH, pobierając link install za pośrednictwem swojej strony internetowej. Istnieje inna metoda instalacji, która korzysta z AltStore, ale nie próbowałem go. Jeśli masz płatne konto dewelopera, możesz pobrać repozytorium iSH z GitHub i wdrożyć je samodzielnie.
korzystając z linku, TestFlight instaluje aplikację iSH na Twoim urządzeniu. Jak każda inna aplikacja, pojawia się na ekranie z ikoną.
Zarządzanie pakietami
iSH uruchamia emulator x86 z Linuksem Alpine. Alpine to malutki, poniżej 5MB distro. To był mój pierwszy raz biegania Alpine, i myślałem, że będę sfrustrowany z tak minimalnym distro, ale rzeczywiście bardzo mi się podobało.
ish-install.png
(Lee Tusman, CC BY-SA 4.0)
Alpine używa menedżera pakietów apk, który jest prostszy niż nawet apt lub pacman.
aby zainstalować pakiet:
apk add package
aby usunąć pakiet:
apk del package
Znajdź inne polecenia i informacje za pomocą:
apk --help
zaktualizuj menedżera pakietów:
apk updateapk upgrade
pobierz edytor tekstu
domyślny edytor tekstu Alpine to Vi, ale wolę Vim, więc go zainstalowałem:
apk add vim
Możesz można zainstalować nano lub emacs, jeśli wolisz.
Zmień muszlę
Nie wiem jak ty, ale potrzebuję muszli rybiej. Inni wolą Bash lub Zsh. Ale Alpine używa popiołu! Ash jest widelcem skorupy Dash, sam widelec oryginalnej skorupy ash lub Almquist. Jest przeznaczony do prędkości. Postanowiłem wymienić szybkość na wbudowane autouzupełnianie, kolor, sterowanie klawiszem Vim i podświetlanie składni, które znam i uwielbiam w fish shell.
zainstaluj fish:
apk add fish
Jeśli zamiast tego chcesz Basha i jego uzupełnienia i strony podręcznika, musisz je zainstalować i kilka dodatkowych rzeczy:
apk add bash bash-doc bash-completion
minimalistyczna ideologia Alpine ogólnie oznacza, że niektóre programy, które byłyby pojedynczym pakietem w innych dystrybucjach, są podzielone na wiele mniejszych pakietów. Oznacza to również, że możesz dostosować i odchudzić swój system dokładnie tak, jak chcesz.
Więcej szczegółów na temat instalacji Basha znajdziesz w tym samouczku.
Zmień domyślną powłokę
Po zainstalowaniu fish, możesz tymczasowo przełączyć się na nią i wypróbować ją, wpisującfish
I spadając do powłoki. Ale chcę zrobić fish moją domyślną powłokę ,a poleceniechsh
, do którego przywykłem z innych dystrybucji, nie działa.
najpierw dowiedz się, gdzie jest zainstalowana ryba:
which fish
moje wyjście:
/usr/bin/fish
następnie Edytuj powłokę logowania, aby użyć ryby. Możesz użyć dowolnego edytora, z którym czujesz się komfortowo. Jeśli jesteś początkującym, zainstaluj Nano (z apk add nano
), aby móc edytować pliki konfiguracyjne i zapisywać je za pomocą CTRL+X, confirm I quit.
ale użyłem Vima:
vim /etc/passwd
moja pierwsza linia to:
root:x:0:0:root:/root:/bin/ash
aby ustawić fish jako domyślną, zmień tę linię na:
root:x:0:0:root:/root:/usr/bin/fish
następnie zapisz i zakończ.
jestem pewien, że istnieje dobry sposób na ponowne źródło powłoki, abyś mógł od razu zacząć z niej korzystać. Ale nie jestem pewien, więc polecam powrót do przeglądarki aplikacji, Wymuszenie zamknięcia powłoki i na dobry środek, wyłączenie i ponowne uruchomienie iPada lub iPhone ’ a. Reopen iSH, a teraz, oprócz „Witamy w Alpine!”wiadomość i informacje na temat rozpoczęcia pracy z apk, zobaczysz domyślną wiadomość powitalną fish login: Witamy w fish, przyjaznej interaktywnej powłoce. Hura!
png
(Lee Tusman, CC BY-SA 4.0)
Konfiguracja Pythona i pip
postanowiłem dodać Pythona (wersja 3.x), nie tylko po to, żebym mógł pisać kod, ale dlatego, że polegam na kilku programach Pythona. Zainstaluj go:
apk add python3
chociaż Python 2.x jest przestarzały, nadal możesz go zainstalować:
apk add python
Zainstaluj Menedżera pakietów Pythona, pip i setuptools:
python3 -m ensurepip --default-pip
instalacja i konfiguracja menedżera pakietów zajmuje trochę czasu, więc po prostu poczekaj.
następnie możesz pobrać curl, narzędzie do przesyłania sieci:
apk add curl
przeczytaj instrukcję
Fish wykorzystuje wbudowane autouzupełnianie oparte na stronach podręcznika. Podobnie jak inni użytkownicy wiersza poleceń, opieram się na instrukcji man
, a Alpine nie ma go zainstalowanego. Zainstalowałem go wraz z less pager:
apk add man man-pages less less-doc
oprócz man, używam wspaniałego projektu tldr pages, który zapewnia uproszczone, oparte na społeczności strony podręcznika.
zainstalowałem go z pip:
pip install tldr
polecenietldr
łączy się z Internetem, aby pobrać strony za każdym razem, gdy napotka żądanie nowej. Jeśli chcesz nauczyć się obsługi polecenia, możesz po prostu wpisać coś w stylu tldr curl
, aby uzyskać proste w języku angielskim wyjaśnienie i dobre przykłady użycia polecenia.
możesz oczywiście zautomatyzować całą tę instalację za pomocą dotfiles lub skryptu instalacyjnego, ale tak naprawdę nie mieściłoby się to w alpejskim sposobie dostosowywania minimalnej instalacji dokładnie do Twoich specyfikacji. Poza tym, to nie trwało tak długo, prawda?
dowiedz się więcej
ish wiki zawiera stronę „co działa” z raportami na temat aktualnie działających pakietów. Warto zauważyć, że npm nie wydaje się działać w tej chwili.
inna strona wiki wyjaśnia, w jaki sposób można uzyskać dostęp do plików iSH z aplikacji Pliki iOS. Jest to jeden ze sposobów przenoszenia i przesyłania plików.