Le terminal iSH peut à nouveau installer des paquets avec apk

Nicolas Furno |

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.

Processus d’installation d’un paquet avec apk sur iSH 1.1. La barre de progression en haut à droite de l’écran trahit l’origine du téléchargement, depuis les serveurs de l’App Store plutôt que ceux d’origine du paquet.

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.

avatar Link1993 | 

Comprends pas, mais, on pouvait déjà installer apk avant...

avatar reborn | 

@Link1993

Mais ça ne respectait pas les règles de l’AppStore.

avatar Nicolas Furno | 

@Link1993

On pouvait l'installer, mais il n'était pas fourni par défaut. On pouvait aussi compiler soi-même ses paquets.

avatar oomu | 

ha ben si Apple a que ça à foutre d'héberger 13Go de logiciels libre, ben tant mieux hein...

grotesque Apple et ses règles absurdes.

avatar Phiphi | 

Du coup en pratique, on a une base Linux suffisante pour installer des outils graphiques ou uniquement le terminal ?

avatar Nicolas Furno | 

@Phiphi

Terminal uniquement et je ne vois pas comment on pourrait faire autrement avec les limites de l'App Store…

avatar Phiphi | 

@nicolasf

Oui c’est bien ce que je pensais.
Et on est aussi contraint à un bac à sable je suppose ou on a accès en partie à l’arborescence locale ?
Je crains que l’usage ne soit très limité en local. Et pour travailler sur un serveur on a des moyens moins lourd pour ouvrir un console distante.

avatar Nicolas Furno | 

@Phiphi

Bac à sable en effet. Mais les dossiers iSH sont visibles dans l’app fichiers, ça ouvre quelques possibilités.

Après oui, ça reste limité, clairement.

avatar Link1993 | 

@nicolasf
Il est possible d'emuler X11 et ainsi avoir une interface graphique ! 😉

avatar elpeygey | 

Du super boulot et une solution très élégante. Bravo au développeur.

avatar r e m y | 

@elpeygey

Je dirais plutôt une solution très maligne pour contourner les restrictions d'Apple.
Ce n'est pas "élégant" de devoir stocker 13 Go sur les serveurs d'Apple et que le développeur soit obligé de gérer leur mise à jour régulière pour que ces versions sur l'AppStore soient en permanence les plus récentes.

avatar Nesus | 

@r e m y

Nul doute qu’Apple est à l’origine de l’idée. Vu le tollé que l’affaire a suscitée. En tout cas, ils l’ont validé.
Alors certes, c’est moyennement élégant, mais ça permet de maintenir des règles qui protègent partiellement l’utilisateur. Ça n’est pas parfait, mais pour Apple, c’est mieux que rien.

Quand aux mises à jour, avec un script, ça se fait automatiquement. Ça sera juste un peu plus long. Vu qu’il faudra attendre le transfert du serveur officiel au serveur Apple. Enfin, 13 Go avec un fibre, ça se fait facilement.

Et 13 Go pour Apple...

avatar bunam | 

En gros ça veux dire qu'Apple doit checker au final 13 Go de logiciels ;)

avatar Tibimac | 

Mais du coup si un paquet est mis à jour il faut que le développeur fasse une mise à jour de son app juste pour embarquer la nouvelle version du dit paquet .... pas ouf mais c'est mieux que rien.
Bravo pour la feinte en tout cas.
Chez Apple ils doivent être un peu vert xD

avatar pakal | 

@Tibimac

c’est clair que ça ne garantit pas des mises à jours quotidiennes

avatar MoNg | 

Possible d’y installer youtube-dl ?

avatar miketee | 

@MoNg

Oui, ça fonctionne très bien :-)
Il faut d’abord installer python3, pip et ajouter le repository communautaire pour pourvoir installer ffmpeg.

avatar Lightman | 

@miketee

Merci pour l'info 👍

CONNEXION UTILISATEUR