URL: https://linuxfr.org/news/sortie-de-homelinux-version-1-0-0 Title: Sortie de HomeLinux, version 1.0.0 Authors: Sébastien Valat Benoît Sibaud, Nÿco, palm123 et ZeroHeure Date: 2016年01月01日T18:30:39+01:00 License: CC By-SA Tags: homelinux Score: 27 [HomeLinux] (http://svalat.github.io/homelinux/) est un gestionnaire de paquets sources similaire à Gentoo, mais, pour gérer un [prefix](https://wiki.gentoo.org/wiki/Project:Prefix) dans son dossier personnel (donc d'avoir une arborescence alternative). Le but est de télécharger automatiquement la dernière version du paquet demandé et d'installer automatiquement les dépendances si HomeLinux dispose de l'information. HomeLinux peut simplifier la vie d'un développeur ayant besoin des dernières versions d'un paquet ou aider à être à jour lorsque l'on travaille dans un environnement sur lequel on n'est pas administrateur (comme une station de travail dans un laboratoire). Il peut également aider à mettre en place les dépendances dans des environnements de tests gérés par exemple par [Jenkins](https://fr.wikipedia.org/wiki/Jenkins_%28logiciel%29). ---- [Page officielle](http://svalat.github.io/homelinux/) [Dépot GitHub](https://github.com/svalat/homelinux) ---- Un gestionnaire de paquet pour son dossier personnel ======================================= L'approche retenue est similaire à [Gentoo prefix](https://wiki.gentoo.org/wiki/Project:Prefix) mais en tenant compte des paquets systèmes pour tronquer l'arbre de dépendance. On évite ainsi le bootstrapping. HomeLinux ne cherche pas à reconnaitre les paquets stables ou instables et se concentre sur la fourniture des dernières versions publiées ou les versions demandées par l'utilisateur. Il croise sa propre base de données avec celle de Gentoo de sorte qu'il accède déjà à un grand nombre de paquets qu'il tente d'installer avec une méthode automatique. HomeLinux fournit aussi ses propres descriptifs de paquets, mais pour la version 1.0.0 la base est limitée à une centaine de paquets, elle sera améliorée dans les prochaines versions s'il y a des intéressés. L'origine ========= Le projet est initialement né lors de mes travaux de thèse en HPC. Sur les clusters, on a souvent besoin d'installer des dépendances de notre projet. Gérer ce _prefix_ est consommateur de temps surtout lorsque l'on veut le mettre au propre puisqu'il faut recommencer toute la procédure : chercher la dernière version sur le web, l'extraire, configurer, se rendre compte qu'il manque une dépendance et cycler ainsi jusqu'à avoir l'ensemble des paquets installés. Grâce à HomeLinux on ne fait le travail qu'une fois en complétant au fur et à mesure la base de données de dépendance, de sorte qu'il est facile de reconstruire un _prefix_ si on veut repartir de zéro. Même sans la liste de dépendance on procède simplement en ajoutant les noms de paquet à la commande au fur et à mesure que les paquets nous les demandent. Héritage de prefix ================== HomeLinux peut aussi aider les administrateurs de clusters en fournissant des _prefix_ à jour. HomeLinux permet en effet à un _prefix_ utilisateur d'hériter de _prefix_ existants. L'utilisateur dispose donc des paquets installés par l'administrateur en plus des siens, le tout gérer par le même gestionnaire de paquet. Il est ensuite simple de migrer vers de nouvelles versions de _prefix_ si l'administrateur en crée un nouveau dans un nouveau dossier. Il s'agit d'une première version depuis la ré-écriture au propre en NodeJS depuis bash, il y a donc bien sûr des choses à améliorer. Exemple d'utilisation ===================== ```sh #provide environnement variables hl env #update your package DB (fetch gentoo...) hl update-db #install package hl install bash # use name, automatic search db hl install app-shells/bash # force subdir in gentoo way hl install gentoo/htop # use the gentoo archive (nodeps) hl install github/ofiwg/libfabric # from github repos, use last release hl install urls/htop # Use from packages/urls.lst #for non HL packages (gentooo, github...) you can provide some deps #infos and conf options into homelinux/packages/quickpackages/, see examples. #you can force the vesion to install with hl install htop=4.8 #exact version hl install htop<4.8 #less than hl install htop<=4.8 #less eq than hl install 'htop!4.8' #not this one hl install htop~4.8 #regexp allow all 4.8.X, take last avail hl install htop:4 #slot based #search in avail packages hl search htop #list installed packages hl ls #uninstall htop (only if you enable stow support in prefix config) hl uninstall htop ```