
Saviez-vous qu'il est possible d'exĂ©cuter une ligne de commande Linux sur un appareil iOS ? Vous vous demandez peut-ĂȘtre : « Pourquoi devrais-je utiliser des applications textuelles sur mon iPhone ? » C'est une question lĂ©gitime. Mais si vous lisez Opensource.com, vous savez probablement dĂ©jĂ pourquoi : les utilisateurs de Linux souhaitent pouvoir travailler avec sur n'importe quel appareil tout en gardant leurs propres configurations.
Mais surtout, ils aspirent à résoudre des problÚmes complexes.
J'ai un iPad 2 Mini de sept ans qui est encore assez bon pour lire des livres électroniques et d'autres tùches. Cependant, je veux également l'utiliser pour avoir accÚs à la ligne de commande de mes applications avec mon ensemble de programmes et de scripts, sans lesquels je ne peux pas travailler. J'ai besoin d'un environnement auquel je suis habitué, ainsi que de mon environnement de développement standard. Voici comment j'ai réussi à l'obtenir.
Connexion au clavier
Travailler avec la ligne de commande pour la programmation via le clavier à l'écran du téléphone ou de la tablette est assez inconfortable. Je recommande de connecter un clavier externe, soit via Bluetooth, soit en utilisant un adaptateur de caméra pour brancher un clavier filaire (c'est ce que j'ai choisi). Lorsque je connecte un clavier séparé Kinesis Advantage à un iPhone 6, le résultat est un appareil étrange qui ressemble à un d'un classique Shadowrun.
Installer un shell sur iOS
Pour exécuter un systÚme Linux complet sur iOS, il existe deux options :
- Secure shell (SSH), connecté à un ordinateur sous Linux
- ExĂ©cuter un systĂšme virtuel avec Alpine Linux utilisant iSH, qui est open source, mais doit ĂȘtre installĂ© via l'application propriĂ©taire TestFlight d'Apple.
Alternativement, il existe deux applications émulateurs de terminal open source qui permettent de travailler avec des outils open source dans un environnement limité. C'est la version la plus minimaliste : en fait, vous ne lancez pas Linux, mais des outils Linux. En utilisant ces applications, il y a des limitations strictes, mais vous obtenez une fonctionnalité partielle de la ligne de commande.
Avant de passer Ă des solutions plus complexes, je vais examiner la maniĂšre la plus simple.
Option 1 : shell dans un « sandbox »
L'un des moyens les plus simples est d'installer une application pour iOS . C'est Un shell dans un environnement « sandbox » avec le support de plus de 80 commandes pour un prix de zéro dollars. Il est livré avec Python 2.7, Python 3.7, Lua, C, Clang et bien d'autres.
Une fonctionnalitĂ© Ă peu prĂšs Ă©quivalente est proposĂ©e par , dĂ©crit par ses dĂ©veloppeurs comme « une interface utilisateur de test pour une plateforme Ă entrĂ©e d'Ă©cran ». Les sources de a-Shell sont disponibles en , il est 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 qu'avec Clang et Clang++. Il permet mĂȘme d'installer des packages Python via pip.
Option 2 : SSH
Un autre pas en avant par rapport au téléchargement d'application est la configuration d'un client SSH. Depuis longtemps, nous pouvons utiliser l'un des nombreux clients SSH disponibles sur iOS pour nous connecter à un serveur exécutant Linux ou BSD. L'avantage de l'utilisation de SSH est que sur le serveur, n'importe quelle distribution avec n'importe quel logiciel peut fonctionner. Vous travaillez à distance et les résultats sont simplement transmis à l'émulateur de terminal sur l'appareil iOS.
â est une application SSH payante populaire sur . Si l'on ne tient pas compte de la petite taille de l'Ă©cran, l'utilisation de ce logiciel ressemble Ă une connexion Ă un serveur via n'importe quelle autre ligne de commande. Le terminal Blink est magnifique, propose de nombreux thĂšmes prĂȘts Ă l'emploi et a une fonction permettant de crĂ©er les siens, y compris la possibilitĂ© de configurer et d'ajouter de nouvelles polices.
Option 3 : exécuter Linux
Utiliser SSH pour se connecter à un serveur sous Linux est un excellent moyen d'accéder à la ligne de commande, mais cela nécessite un serveur externe et une connexion réseau. Ce n'est pas le plus grand obstacle, mais on ne peut pas l'ignorer complÚtement, donc vous pourriez avoir besoin de travailler avec Linux sans serveur.
Si c'est votre cas, vous devrez faire un pas de plus. â est un service propriĂ©taire pour installer des applications en cours de dĂ©veloppement avant qu'elles ne soient publiĂ©es sur l'Apple App Store. L'application TestFlight peut ĂȘtre installĂ©e depuis l'App Store, puis utilisĂ©e pour tester des applications. Les applications sur TestFlight permettent Ă un nombre limitĂ© de bĂȘta-testeurs (gĂ©nĂ©ralement jusqu'Ă 10 000) de les utiliser pendant une pĂ©riode limitĂ©e. Pour tĂ©lĂ©charger une application de test, vous devez accĂ©der Ă un lien depuis votre appareil, gĂ©nĂ©ralement situĂ© sur le site Web du dĂ©veloppeur de l'application de test.
Lancement d'Alpine Linux avec iSH
â est une application open-source TestFlight qui exĂ©cute une machine virtuelle avec une distribution prĂȘte Ă l'emploi (avec un peu d'effort, il est possible de lancer d'autres distributions).
Caractéristique importante : l'application est expérimentale. Comme iSH est actuellement une application de test, ne vous attendez pas à un fonctionnement constant et fiable. Les applications TestFlight sont limitées dans le temps. Ma version actuelle ne fonctionnera que pendant 60 jours. Cela signifie qu'aprÚs 60 jours, je serai exclu et je devrai me reconnecter au prochain cycle de tests d'iSH. De plus, je perds tous mes fichiers si je ne les exporte pas via Files sur iOS ou si je ne les copie pas sur un hébergeur Git ou . En d'autres termes : Ne comptez pas sur le fait que tout cela continuera à fonctionner ! N'y mettez rien d'important pour vous ! Faites des sauvegardes à un autre endroit !
Installation d'iSH
Commencez par installer depuis l'App Store. Puis installez iSH, sur le site Web de l'application. Il existe Ă©galement une autre mĂ©thode d'installation utilisant AltStore, mais je ne l'ai pas essayĂ©e. Ou, si vous avez un compte dĂ©veloppeur payant, vous pouvez tĂ©lĂ©charger le dĂ©pĂŽt iSH depuis GitHub et l'installer vous-mĂȘme.
Avec le lien TestFlight, l'application iSH sera installée sur votre appareil. Comme pour toute autre application, une icÎne apparaßtra à l'écran.
Gestion des 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 travaillais avec Alpine, donc je pensais que ce minimalisme serait ennuyeux, mais en réalité, j'ai beaucoup aimé.

Alpine utilise un gestionnaire de paquets , qui est plus simple que mĂȘme apt ou pacman.
Comment installer un paquet :
apk add packageComment supprimer un paquet :
apk del packageComment connaĂźtre d'autres commandes et informations :
apk --helpMise Ă jour du gestionnaire de paquets :
apk mise Ă jour
apk mise à niveauInstallation de l'é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 ajouter vimSi vous le souhaitez, vous pouvez installer Nano ou Emacs.
Changement de shell
Je ne sais pas pour vous, mais j'avais besoin de . D'autres personnes prĂ©fĂšrent ou . Cependant, Alpine utilise ash ! Ash est un fork du shell Dash, qui est lui-mĂȘme un fork de l'original ash, ou . Sa prioritĂ© est la vitesse. J'ai dĂ©cidĂ© d'Ă©changer la vitesse contre l'auto-complĂ©tion intĂ©grĂ©e, les couleurs, les raccourcis clavier Vim et la coloration syntaxique que j'apprĂ©cie et que je connais grĂące Ă fish shell.
Installation de fish :
apk ajouter fishSi vous avez besoin de Bash avec son auto-complétion et ses pages man, alors installez-les :
apk ajouter bash bash-doc bash-completionL'idéologie minimaliste d'Alpine signifie généralement que certains programmes, qui sont un seul paquet dans d'autres distributions, seront divisés en plusieurs petits paquets. Cela signifie également que vous pouvez personnaliser et réduire la taille du systÚme exactement comme vous le souhaitez.
Pour en savoir plus sur l'installation de Bash, consultez .
Changement de shell par défaut
AprÚs l'installation de fish, vous pouvez temporairement passer à celui-ci en entrant fish et en passant dans le shell. Mais je veux faire de fish le shell par défaut, et la commande chsh, que j'ai utilisée dans d'autres distributions, n'a pas fonctionné.
Commençons par savoir oĂč fish est installĂ© :
which fishVoici ce que j'ai obtenu :
/usr/bin/fish Ensuite, changeons le shell de connexion en fish. Vous pouvez utiliser n'importe quel Ă©diteur qui vous convient. Si vous ĂȘtes dĂ©butant, installez Nano (avec la commande apk ajouter nano), afin de pouvoir modifier les fichiers de configuration et les sauvegarder avec CTRL+X, confirmer et quitter.
Mais j'ai utilisé Vim :
vim /etc/passwdMa premiÚre ligne était comme suit :
root:x:0:0:root:/root:/bin/ashPour faire de fish le shell par défaut, modifions cette ligne comme suit :
root:x:0:0:root:/root:/usr/bin/fishPuis sauvegardons le fichier et quittons.
Je suis sĂ»r qu'il existe un moyen appropriĂ© de changer le chemin du shell pour qu'il puisse ĂȘtre utilisĂ© immĂ©diatement. Mais je ne le connais pas, donc je recommande de revenir dans le navigateur des applications, de forcer la dĂ©connexion du shell et, pour plus de sĂ©curitĂ©, d'Ă©teindre et de redĂ©marrer l'iPad ou l'iPhone. Ouvrez Ă nouveau iSH et maintenant, Ă part le message « Bienvenue dans Alpine ! » et les informations sur le dĂ©marrage avec apk, vous verrez le message de bienvenue standard de connexion de fish : Bienvenue dans fish, le shell interactif convivial. Youpi !

Configuration de Python et pip
J'ai décidé d'ajouter (la version 3.x), non seulement pour écrire du code, mais aussi parce que j'utilise plusieurs programmes en Python. Installons-le :
apk add python3Bien que Python 2.x soit obsolÚte, il est également possible de l'installer :
apk add pythonInstallons le gestionnaire de paquets Python appelé pip et :
python3 -m ensurepip --default-pipL'installation et la configuration du gestionnaire de paquets prendront un certain temps, alors veuillez patienter.
Ensuite, vous pourrez télécharger un outil pour transférer des fichiers sur le réseau :
apk add curlConsulter les manuels
Fish utilise l'auto-complétion intégrée basée sur les pages man. Comme d'autres utilisateurs de la ligne de commande, j'utilise le manuel man, mais dans Alpine, il n'est pas installé. C'est pourquoi je l'ai installé avec le pager terminal :
apk add man man-pages less less-docEn plus de man, j'utilise le superbe , qui fournit des pages man simplifiées et gérées par la communauté.
Je l'ai installé avec pip :
pip install tldr Commande tldr se connecte à Internet pour obtenir des pages lorsqu'il rencontre une demande pour une nouvelle page. Si vous souhaitez savoir comment utiliser une commande, vous pouvez écrire quelque chose comme tldr curl et obtenir une description en anglais simple avec de bons exemples d'utilisation de la commande.
Bien sĂ»r, tout ce travail d'installation peut ĂȘtre automatisĂ© Ă l'aide de ou d'un script d'installation, mais en rĂ©alitĂ©, cela ne correspond pas vraiment Ă l'idĂ©ologie d'Alpine â la configuration d'une installation minimale clairement adaptĂ©e Ă vos besoins. De plus, cela a pris tellement de temps, non ?
Informations supplémentaires
Dans le Wiki iSH, il y a une page "" avec des rapports sur les paquets qui fonctionnent actuellement. Ă propos, il semble que .
Une autre page wiki explique comment depuis l'application iOS Files. C'est l'un des moyens de déplacer et de copier des fichiers.
Vous pouvez aussi installer Git (oui ! apk add git ) et pousser votre travail vers un dépÎt distant ou le transmettre à un serveur via SSH. Et, bien sûr, vous pouvez télécharger et exécuter tout un tas de projets open-source formidables depuis GitHub.
Plus d'informations sur iSH sont disponibles via ces liens :
En tant que publicité
VDS propose ou Windows. Nous n'utilisons que du , le meilleur panneau de contrÎle de serveurs de sa catégorie, développé en interne, et l'un des meilleurs centres de données en Russie et en UE. Ne tardez pas à commander !
Source : habr.com
