iSH Shell (gratuit) est un terminal UNIX proposé dans l’App Store qui se distingue de ses prédécesseurs par l’intégration d’une distribution Linux, Alpine. C’est ainsi un « vrai » terminal, sans couche d’émulation et avec toutes les possibilités offertes par cet environnement. Cette liberté a quasiment valu à l’app une exclusion de la boutique, parce que l’on pouvait installer d’autres outils en ligne de commande.
Cette possibilité, proposée dans toutes les distributions GNU/Linux, contrevient à l’une des règles fondamentales de l’App Store qui empêche une app de télécharger du code qui change ses fonctionnalités. La version 1.1 désormais disponible sur la boutique restaure toutefois apk, le gestionnaire de paquets d’Alpine qui posait problème jusque-là. Le développeur d’iSH a trouvé une solution pour offrir cette fonctionnalité tout en respectant les règles de l’App Store.
Traditionnellement, apk télécharge ses paquets depuis un serveur distant qui varie selon les cas. Pour offrir cette fonctionnalité dans l’App Store, le développeur a téléchargé les 12 538 paquets disponibles par défaut avec apk et il les a intégrés à son app. Cela représente 13,3 Go de ressources, alors pour éviter d’avoir un téléchargement aussi gros à effectuer, il a utilisé une fonction proposée par Apple pour les ressources supplémentaires.
Cette fonction a été pensée avant tout pour les jeux, qui peuvent proposer des niveaux au téléchargement et alléger l’app de base. Mais iSH l’utilise pour les paquets : quand vous installez un élément avec la commande apk add
, le paquet est téléchargé depuis les serveurs d’Apple, et non plus depuis ceux d’origine. Comme ce n’est pas un cas de figure prévu par Alpine, on peut s’en douter, il a fallu innover. Le téléchargement depuis l’App Store est ainsi signalé par une barre de progression maison qui apparaît en haut à droite de l’écran.
L’expérience reste par ailleurs la même, avec une gestion des dépendances quand c’est nécessaire. On peut aussi mettre à jour les paquets téléchargés avec les deux commandes apk update
(mise à jour du catalogue) et apk upgrade
(mise à jour des paquets). Tout ne sera pas disponible néanmoins, mais il existe déjà une astuce pour ajouter les paquets « communautaires », qui ne sont pas dans la liste de base.
Si vous aviez installé la version précédente d’iSH, mettre à jour l’app ne suffira pas à basculer sur la nouvelle gestion approuvée par Apple. Des instructions sont disponibles à cette adresse pour mettre à jour votre installation locale. iSH est une app entièrement gratuite et open-source.