Exécutez la ligne de commande Linux sur votre iPad

Saviez-vous que vous pouvez exécuter une ligne de commande Linux sur votre appareil iOS? Vous demandez peut-être: « pourquoi voudrais-je utiliser des applications textuelles sur mon petit iPhone? »OK, assez juste. C’est une question assez raisonnable. Mais si vous lisez Opensource.com , vous connaissez probablement la réponse: les utilisateurs de Linux veulent pouvoir utiliser n’importe quel appareil, et ils veulent également utiliser leurs propres personnalisations.

Et surtout, ils veulent un défi.

J’ai un iPad 2 Mini de sept ans qui fonctionne toujours bien pour lire des livres électroniques et d’autres tâches. Mais je veux aussi l’utiliser pour accéder à la ligne de commande pour les applications et ma suite de programmes et de scripts dont je ne peux pas me passer. Je veux l’environnement auquel je suis habitué, ainsi que mon environnement de développement standard. Voici comment je l’ai fait.

Se connecter à un clavier

Utiliser la ligne de commande pour programmer sur le clavier à l’écran d’un téléphone ou d’une tablette n’est pas très amusant. Je recommande de connecter un clavier externe, soit via Bluetooth, soit en utilisant un adaptateur de kit de connexion de caméra pour connecter un clavier filaire (ma préférence). Brancher mon clavier split avantage Kinesis dans mon iPhone 6 donne des optiques étranges, comme le cyberdeck d’un corp du jeu de rôle classique Shadowrun.

Obtenir un shell sur iOS

Vous avez deux options pour exécuter un système Linux complet sur iOS:

  • Secure shell (SSH) dans un ordinateur Linux
  • Exécutez un système virtualisé à l’aide d’Alpine Linux avec iSH, qui est open source, mais doit être installé à l’aide de l’application TestFlight propriétaire d’Apple

Alternativement, il existe deux applications d’émulateur de terminal open source qui fournissent des outils open source dans un environnement restreint. C’est l’option la plus limitée — elle ne vous permet pas vraiment d’exécuter Linux, mais vous utilisez des outils Linux. Il existe de lourdes restrictions sur ce que vous pouvez faire sur l’appareil avec ces applications, mais elles vous offrent des fonctionnalités de ligne de commande.

Je vais examiner l’approche la plus simple avant d’explorer des solutions plus difficiles.

Option 1: Un shell en bac à sable

L’une des façons les plus simples de commencer est avec l’application iOS LibTerm. Il s’agit d’un shell de ligne de commande open source en boîte à sable avec plus de 80 commandes regroupées dans une application à 0 $. Il est livré avec Python 2.7, Python 3.7, Lua, C, Clang, etc.

Dans le même ordre d’idées, a-Shell est décrit comme une « interface utilisateur basée sur du texte pour une plate-forme basée sur un écran. »a-Shell est open source, en développement actif, donne accès au système de fichiers et est livré avec Lua, Python, Tex, Vim, JavaScript, C et C++, ainsi que Clang et Clang++. Il vous permet même d’installer des packages Python avec pip.

Option 2 : SSH anywhere

Une étape supplémentaire du téléchargement d’une application consiste à configurer un client SSH. Depuis longtemps, il est possible d’utiliser l’une des nombreuses applications client SSH sur iOS pour se connecter à un serveur exécutant une distribution Linux ou un BSD. L’avantage d’utiliser SSH est que votre serveur peut exécuter n’importe quelle distribution avec n’importe quel logiciel que vous aimez. Vous travaillez à distance et votre sortie est acheminée vers l’émulateur de terminal de votre appareil iOS.

Blink shell est une application SSH open source payante populaire. En dehors du petit écran, l’utilisation de ce logiciel s’apparente à une connexion à un serveur via toute autre invite de commande. Le terminal de Blink est magnifique, avec un certain nombre de thèmes inclus et la possibilité de créer vos propres thèmes, y compris la personnalisation et l’ajout de nouvelles polices.

Option 3: Exécuter Linux

Utiliser SSH pour se connecter à un serveur sous Linux est un excellent moyen d’accéder à une invite, mais cela nécessite un accès à un serveur externe et une connexion. Ce n’est pas la pire barrière à l’entrée, mais ce n’est pas complètement négligeable, et vous voudrez peut-être utiliser Linux sans cette exigence de serveur.

Si c’est votre cas, vous devrez sortir quelque chose d’un peu plus à la pointe. TestFlight est un service propriétaire permettant de déployer des applications en développement avant qu’elles ne soient soumises à l’App Store d’Apple. Vous pouvez télécharger l’application TestFlight depuis la boutique, puis vous inscrire à un certain nombre d’applications de test. Les applications de TestFlight autorisent un nombre limité de bêta-testeurs externes (généralement jusqu’à 10 000) pendant une durée limitée. Pour télécharger une application de test, vous devez accéder à un lien directement depuis votre appareil, qui se trouve généralement sur le site Web du développeur de l’application de test.

Exécutez Alpine Linux avec iSH

iSH est une application TestFlight open source qui exécute une machine virtuelle avec la distribution Alpine Linux prête à l’emploi (mais vous pouvez exécuter d’autres distributions avec un peu plus de bricolage).

Une mise en garde importante : c’est expérimental. Étant donné que iSH est actuellement une application de test, ne vous attendez pas à un service permanent ou robuste. Les applications TestFlight sont limitées dans le temps. Ma construction actuelle dure 60 jours. Cela signifie que dans 60 jours, je serai en lock-out et que je devrai rejoindre la prochaine phase de test d’iSH. De plus, je perdrai mes fichiers à moins de les exporter avec des fichiers sur iOS ou de les sauvegarder sur un hôte Git ou avec SSH. Pour être clair: Ne comptez pas sur cela pour continuer à travailler! Ne mettez rien ici qui soit essentiel! Sauvegardez votre travail ailleurs!

Installer iSH

Commencez par installer TestFlight via l’App Store. Ensuite, installez iSH en obtenant le lien d’installation via son site Web. Il existe une autre méthode d’installation qui utilise l’AltStore, mais je ne l’ai pas essayé. Ou, si vous avez un compte développeur payant, vous pouvez télécharger le dépôt d’iSH depuis GitHub et le déployer vous-même.

À l’aide du lien, TestFlight installe une application iSH sur votre appareil. Comme toute autre application, elle apparaît sur votre écran avec une icône.

Gérer les paquets

iSH exécute un émulateur x86 avec Alpine Linux. Alpine est une petite distribution de moins de 5 Mo. C’était la première fois que je courais Alpine, et je pensais que je serais frustré par une distribution aussi minimale, mais j’ai vraiment apprécié.

ish-installer.png

Alpine Linux sur iOS

(Lee Tusman, CC BY-SA 4.0)

Alpine utilise le gestionnaire de paquets apk, qui est plus simple que même apt ou pacman.

Pour installer un paquet :

apk add package

Pour supprimer un paquet :

apk del package

Trouvez d’autres commandes et informations avec:

apk --help

Mettez à jour le gestionnaire de paquets:

apk updateapk upgrade

Obtenez un éditeur de texte

L’éditeur de texte par défaut d’Alpine est Vi, mais je préfère Vim, alors je l’ai installé:

apk add vim

Vous peut installer Nano ou Emacs, si vous préférez.

Changer la coquille

Je ne sais pas pour vous, mais j’ai besoin de la coquille de poisson. D’autres préfèrent Bash ou Zsh. Mais Alpine utilise des cendres! Le frêne est une fourche de coquille de tableau de bord, elle-même une fourche de la coquille originale de frêne ou d’Almquist. Il est conçu pour la vitesse. J’ai décidé d’échanger la vitesse en faveur de l’auto-complétion intégrée, de la couleur, du contrôle des touches Vim et de la coloration syntaxique que je connais et que j’aime dans fish shell.

Installer fish:

apk add fish

Si vous voulez Bash et ses complétions et pages de manuel à la place, vous devez les installer et quelques choses supplémentaires:

apk add bash bash-doc bash-completion

L’idéologie minimaliste d’Alpine signifie généralement que certains programmes qui seraient un seul paquet dans d’autres distributions sont divisés en plusieurs paquets plus petits. Cela signifie également que vous pouvez personnaliser et réduire votre système exactement comme vous le souhaitez.

Vous trouverez plus de détails sur l’installation de Bash dans ce tutoriel.

Changer le shell par défaut

Après avoir installé fish, vous pouvez passer temporairement à celui-ci et l’essayer en tapant fish et en le déposant dans le shell. Mais je veux faire de fish mon shell par défaut, et la commande chsh à laquelle je suis habitué des autres distributions ne fonctionne pas.

Tout d’abord, découvrez où fish est installé:

which fish

Ma sortie:

/usr/bin/fish

Ensuite, modifiez le shell de connexion pour utiliser fish. Vous pouvez utiliser n’importe quel éditeur avec lequel vous êtes à l’aise. Si vous êtes débutant, installez Nano (avec apk add nano) afin de pouvoir modifier les fichiers de configuration et les enregistrer avec CTRL + X, confirmer et quitter.

Mais j’ai utilisé Vim:

vim /etc/passwd

Ma première ligne était:

root:x:0:0:root:/root:/bin/ash

Pour que fish soit la valeur par défaut, changez cette ligne en:

root:x:0:0:root:/root:/usr/bin/fish

Puis enregistrez et quittez.

Je suis sûr qu’il existe un bon moyen de ré-approvisionner le shell afin que vous puissiez commencer à l’utiliser tout de suite. Mais je ne suis pas sûr, je recommande donc de revenir au navigateur de l’application, de quitter le shell de force et, pour faire bonne mesure, de fermer et de redémarrer votre iPad ou votre iPhone. Rouvrez iSH, et maintenant, en plus du « Bienvenue chez Alpine! »message et informations sur la mise en route de l’apk, vous verrez le message de bienvenue de connexion au poisson par défaut: Bienvenue à fish, la coquille interactive conviviale. Hourra!

ish.png

Coquille de poisson sur Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Configurer Python et pip

J’ai décidé d’ajouter Python (version 3.x), pas seulement pour pouvoir écrire du code mais parce que je m’appuie sur plusieurs programmes Python. Installez-le:

apk add python3

Bien que Python 2.x est obsolète, vous pouvez toujours l’installer:

apk add python

Installez le gestionnaire de paquets Python, pip et setuptools:

python3 -m ensurepip --default-pip

Il faut un certain temps pour installer et configurer le gestionnaire de paquets, alors attendez.

Ensuite, vous pouvez télécharger curl, l’outil de transfert de réseau:

apk add curl

Lire le manuel

Fish utilise l’auto-complétion intégrée basée sur les pages de manuel. Comme les autres utilisateurs de ligne de commande, je me fie au manuel man, et Alpine ne vient pas avec son installation. Je l’ai donc installé avec le pager less:

apk add man man-pages less less-doc

En plus de man, j’utilise le fabuleux projet pages tldr, qui fournit des pages de manuel simplifiées et axées sur la communauté.

Je l’ai installé avec pip:

pip install tldr

La commande tldr se connecte au web pour récupérer des pages chaque fois qu’elle rencontre une demande pour une nouvelle. Si vous avez besoin d’apprendre à utiliser une commande, vous pouvez simplement taper quelque chose comme tldr curl pour obtenir une explication en anglais simple et de bons exemples d’utilisation de la commande.

Vous pouvez, bien sûr, automatiser tout ce travail d’installation avec des fichiers dot ou un script d’installation, mais cela ne rentrerait pas vraiment dans la manière Alpine de personnaliser une installation minimale exactement selon vos spécifications. D’ailleurs, ça n’a pas pris si longtemps, n’est-ce pas?

En savoir plus

Le wiki iSH contient une page « ce qui fonctionne » avec des rapports sur les paquets qui fonctionnent actuellement. Il est à noter que npm ne semble pas fonctionner pour le moment.

Une autre page wiki explique comment vous pouvez accéder aux fichiers iSH depuis l’application Fichiers iOS. C’est une façon de déplacer et de transférer des fichiers.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.