iSH: Endlich Linux auf dem iPad und iPhone!
Linux auf dem iPad oder iPhone? Bislang war das nicht möglich. Software-Entwickler Theodore Dubois hat aber mit der App iSH einen Weg gefunden, dass es trotzdem klappt.
Mensch: Manchmal sind wir bei Tutonaut so richtig Avantgarde! Vor einem Jahr war Linux auf iPhone und iPad noch unser Aprilscherz, jetzt geht es wirklich: Mit der Gratis-App iSH von Theodore Dubois holt Ihr Euch ein kleines Linux-System gratis per App auf Euer iDevice. Das besitzt ein vollständiges Kommandozeilen-Interface, mit dem Ihr alles erledigen könnt, was eben auch mit einer Linux-Shell machbar ist.
Komplette Linux-Shell unter iOS und iPadOS
iSH ist eine App, die ein vollständiges Alpine-Linux beinhaltet. Alpine ist eine sehr schlanke Distribution, weshalb iSH auch erst einmal sehr schlank daher kommt. Standardmäßig wird nur wenig Software mitgeliefert, das könnt ihr aber ändern, indem Ihr mit dem Befehl apk add (Programmname)
zusätzliche Software installiert. Bei mir ging das auf Anhieb, um zum Beispiel mit apk add openssh
den OpenSSH-Client zu installieren.
Möglicherweise fehlt der Paketmanager
Bei Kollege Hofferbert klappte das nicht: Eigentlich ist der Paketmanager apk durch die AppStore-Richtlinien nicht erlaubt, bei mir war er aber trotzdem schon da. Kurzum: Wenn er bei Euch nicht an Bord ist, könnt Ihr den Befehl wget -qO- https://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static
eingeben, um apk zu installieren. Anschließend klappt es auch mit der Software-Installation.
iSH aktualisieren
iSH hat zwei Ebenen: Einerseits die App-Store-App, die regelmäßig vom Entwickler aktualisiert wird. Andererseits ist da aber noch das Alpine-Linux-System, das Ihr ganz nach Euren Bedürfnissen anpassen könnt. Die iSH-Repositories sind zwar nutzbar für die interne Aktualisierung und Installation, allerdings sind die nicht wirklich aktuell und vollständig.
The reason why iSH has its own repositories is so that the app is entirely self-contained so that iSH with apk can pass app review. The repositories are a pseudo apk filesystem mounted on /ish/apk that when read, will actually download from App Store as on-demand resources.Ross Smith auf dem iSH-Wiki
Der Grund dafür liegt erneut in den App-Store-Bestimmungen. Diese umgeht Ihr, indem Ihr dem Hinweis des Entwicklers folgt und folgenden String in iSH eingebt. Dadurch werden die regulären Alpine-Repositories aktiviert, mit denen Ihr unter iSH dann wie auf einem Rechner mit Alpine Linux alles installieren könnt: grep -v "file:///ish/apk/" /etc/apk/repositories | dd of=/etc/apk/repositories bs=4194304 echo https://dl-cdn.alpinelinux.org/alpine/v3.12/main >> /etc/apk/repositories echo https://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories
OpenSSH für die Fernverwaltung nutzen
Mit dem Befehl apk add openssh
könnt Ihr nun also OpenSSH installieren, wodurch ihr eine kostenlose Möglichkeit habt, Webserver oder Bastelrechner wie den Raspberry Pi fernzusteuern. Ihr könnt dann natürlich auch Windows-Systeme fernsteuern, sofern hier OpenSSH aktiv ist.
Kleinen Webserver in Linux auf dem iPad einrichten
Natürlich sorgt ein Linux für viel Freude auf einem Tablet. Wie wäre es damit, einen eigenen Webserver unter Alpine-Linux der iSH-App einzurichten? Die Vorgehensweise ist denkbar einfach: Installiert zunächst mit apk add lighttpd
den Lighttpd-Serverdienst. Anschließend holt Ihr mit apk add php7 php7-bcmath php7-bz2 php7-ctype php7-curl php7-dom php7-enchant php7-exif php7-fpm php7-gd php7-gettext php7-gmp php7-iconv php7-imap php7-intl php7-json php7-mbstring php7-opcache php7-openssl php7-phar php7-posix php7-pspell php7-recode php7-session php7-simplexml php7-sockets php7-sysvmsg php7-sysvsem php7-sysvshm php7-tidy php7-xml php7-xmlreader php7-xmlrpc php7-xmlwriter php7-xsl php7-zip php7-sqlite3
PHP auf Euer iPad. Zuguterletzt könnt Ihr noch mit apk add mysql mysql-client
MySQL auf Eurem iPad installieren. Damit habt Ihr eine vollständige Server-Umgebung, die Ihr wie bei jedem Linux-PC anschließend einrichten und verwenden könnt.
iSH mit der Files-App integrieren
Zuguterletzt noch ein kleiner Tipp: Wenn Ihr Dateien zwischen iSH und dem iPad austauschen wollt, geht das ganz einfach über die Dateien-App: Öffnet diese und tippt oben rechts in der Seitenleiste auf die drei Punkte. Wählt nun "Seitenleiste bearbeiten". Nun könnt Ihr unter "Speicherorte" den Schalter bei "iSH" umlegen: Ihr könnt ab sofort mit der Dateien-App auf das Dateisystem von iSH zugreifen und ganz leicht Daten zwischen Eurem iPad und Eurem Linux auf dem iPad austauschen.
Schade, bei mir klappt es leider gar nicht, ich kann ish gar nicht installieren, weil mein iPad-OS zu alt ist (Version 10, nötig wäre min Version 11)
Kann man auch d,en usb Anschluss des iPad nutzen zb für eine serielle Schnittstelle.
Hierzu kann ich leider nichts sagen. Da heißt es ausprobieren. Es wäre toll, wenn Du hier kurz erzählen kannst, ob es geklappt hat.
Wie startet man denn den lighttpd dann? rc-service und rc-update bringen leider fehler
Hallo, danke für den tollen Artikel. Das file sharing zwischen iSH und iPad war zuerst nicht möglich da iSH nicht sichtbar war. Aber ein Neustart des iPads hat das behoben. Danach konnte ich wie oben beschrieben iSH aktivieren. Für newbies wie ich einer bin, die Dateien von iSH werden erst sichtbar wenn die iSHApp gestartet wurde. Grüße GLS
Linux auf meinem Ipad? mit all dem, was ein vernünftiges Basis-Linux ausmacht? Das muss ich ausprobieren!
Super Vorstellung. Hat auf Anhieb geklappt. Bitte zeigt was noch so geht mit der app und iOS. Danke