Accueil🇫🇷Chercher

GoboLinux

GoboLinux est une distribution Linux gratuite et open-source dont la principale caractéristique est de réorganiser l'arborescence des fichiers.

GoboLinux
Image illustrative de l’article GoboLinux

Famille Linux
Langues Allemand, Anglais, Espagnol, Français, Hongrois, Portugais
Type de noyau Monolithique modulaire
État du projet En cours
Plates-formes x86-64
Licence GNU
États des sources Logiciel libre et Open Source
Première version [1] - [2]
Dernière version stable 017 ()
Environnement de bureau Awesome ou au choix
Gestionnaire de paquets Aucun
Site web gobolinux.org

Plutôt que d'avoir une hiérarchie de fichier de type UNIX, chaque programme est installé dans son propre dossier. Dans ce dossier, tous les fichiers du programme sont réunis, ce qui inclut aussi les fichiers de configuration. Ainsi, il n'y a aucun "éclatement" du programme à plusieurs endroits différents comme c'est le cas pour une distribution Linux classique (ou sous Windows avec les applications Win32 qui peuvent placer des éléments dans d'autres dossiers comme C:\Windows\System32).

Par exemple, imaginons un programme appelé "vlc", tous ses fichiers et bibliothèques spécifiques seront dans le dossier /Programs/vlc. On pourrait donc aussi trouver les chemins d'accès complets suivants :

  • /Programs/XFree86/4.3/
  • /System/Settings/BootScripts/Reboot

« Au lieu d'avoir différents morceaux d'un programme jetés dans /usr/bin, d'autres morceaux dans /etc et encore d'autres /usr/share/quelquechose/ou/autrechose, chaque programme possède sa propre arborescence, ce qui garde tous les programmes bien séparés et vous permet de voir tout ce qui est installé sur le système et quels fichiers appartiennent à quels programmes d'une manière simple et évidente. »

Selon les développeurs de GoboLinux, il en résulte un système plus propre[3].

Vue d'ensemble

L'arborescence de GoboLinux est radicalement différente de la FHS que l'on trouve sur les Systèmes d'exploitation Unix-like. En effet, la FHS regroupe les différents fichiers de chaque programme par type de fichier. Ainsi, chaque type de fichier est regroupé dans un sous-dossier.

Par exemple, les exécutables sont contenus dans le dossier /bin et les fichiers de configuration dans le dossier /etc. La conséquence directe de cet éclatement est la nécessité d'utiliser un Gestionnaire de paquets, un programme chargé de mémoriser quel fichier appartient à quel programme.

Avec GoboLinux, le gestionnaire de paquets devient inutile, puisque l'arborescence elle-même est le gestionnaire de paquets (selon les développeurs du système : "the filesystem is the package manager"). En effet, chaque fichier de chaque programme est placé dans un même dossier. Ainsi, GoboLinux utilise le système de fichiers lui-même comme base de données des paquets[4].

L'ensemble donne un système plus simple, plus logique, plus intuitif, avec une arborescence moins encombrée.

Fonctionnement

Liens symboliques

Le noyau Linux n'est évidemment pas modifié, ce serait un travail bien trop important et instable. Pour fonctionner, GoboLinux utilise des liens symboliques. En réalité, l'arborescence FHS est toujours présente, mais elle est rendue invisible. L'arborescence de GoboLinux coexiste juste à côté de celle-ci. L'arborescence FHS est remplie de liens symboliques qui mènent aux vrais fichiers présents dans l'arborescence de GoboLinux.

On pourrait penser qu'il en résulte une perte de vitesse du système, mais concrètement, ce n'est (pratiquement) pas le cas, la gestion des liens symboliques du noyau Linux étant suffisamment bien programmée.

Les développeurs de GoboLinux ont constaté que cette organisation était même plus performante que la FHS car elle supprime des distinctions empiriques entre des dossiers similaires. Par exemple, les problèmes comme les défauts d'exécution d'un script Console parce qu'un exécutable est dans /bin au lieu d'être dans /usr/bin ou /usr/local/bin sont résolus. Les scripts console plantent ainsi moins souvent que dans d'autres distributions.

Un autre avantage de l'arborescence de GoboLinux est qu'elle permet d'installer plusieurs versions d'un mĂŞme programme cĂ´te Ă  cĂ´te, ou plusieurs fois la mĂŞme version d'un programme. Cela permet de lancer plusieurs fois un mĂŞme programme en mĂŞme temps afin d'effectuer des comparatifs de performances.

Il n'existe aucun risque de désynchronisation entre la FHS et l'arborescence de GoboLinux car lorsqu'un lien symbolique pointe sur un fichier qui n'existe pas, il devient un lien mort, donc inactif. Il est possible de supprimer ces liens morts du système avec l'outil "RemoveBroken".

Éléments spécifiques à GoboLinux

Pour que cette organisation fonctionne, GoboLinux n'est constitué que de 3 éléments. En effet, plus d'éléments rendrait le système trop lourd à maintenir pour le faible nombre de développeurs.

  • Les scripts d'installation permettent d'installer le système convenablement.
  • Le programme Compile permet d'installer un programme selon l'arborescence de GoboLinux.
    • Il peut ĂŞtre utilisĂ© pour supprimer un programme, dans ce cas les liens de la FHS sont automatiquement supprimĂ©s avec.
    • Il est aussi possible de simplement supprimer le dossier du programme pour le dĂ©sinstaller complètement avec rm -rf. Mais dans ce cas, il reste dans la FHS les liens vers les fichiers du programmes. Ces liens sont alors des liens morts qu'on pourra supprimer avec l'outil appelĂ© "RemoveBroken".
  • Une extension du noyau Linux appelĂ©e GoboHide, qui permet de masquer ou de dĂ©masquer un Ă©lĂ©ment du système, et notamment la FHS.

Tous les autres éléments du système peuvent être remplacés par les éléments les plus récents, depuis le noyau Linux jusqu'à n'importe quel programme.

GoboHide

Sous Linux, il est impossible de masquer un fichier ou un dossier sans le renommer en rajoutant le caractère "." devant (contrairement à Windows qui inclut cela dans les attributs du fichier ou du dossier).

  • vlc est un dossier (ou un fichier) non masquĂ©
  • .vlc est un dossier (ou un fichier) masquĂ©

Dès lors, il était indispensable de créer un programme permettant de "cacher" les fichiers et dossiers de la FHS, mais sans les renommer.

Ce programme s'appelle GoboHide et il fonctionne très simplement :

  • ~] gobohide --help pour afficher l'aide
  • ~] gobohide -h ou ~] gobohide --hide pour cacher un fichier ou un dossier
  • ~] gobohide -u ou ~] gobohide --unhide pour dĂ©masquer un fichier ou un dossier
  • ~] gobohide -l ou ~] gobohide --list pour afficher la liste de tous les Ă©lĂ©ments cachĂ©s
  • ~] gobohide -version pour afficher la version du programme

La commande "ls" n'affichera pas les éléments masqués par la commande "gobohide". Elle n'affiche que les éléments masqués parce que leur nom commencent par un point ".", seule la commande "gobohide" permet d'afficher les éléments masqués par elle-même.

Bien sûr, les éléments existent toujours, une simple commande Bash peut le confirmer, comme ~] [ -f /etc/fstab ] && echo "Il existe" ou ~] l /etc/zshrc.

Le patch GoboHide est appliqué au noyau Linux dès l'installation. En utilisant le programme Compile pour compiler le noyau, le "recipe" du noyau Linux contient les patches pour activer l'extension GoboHide. En cas de recompilation du noyau sans utiliser le programme Compile, il est nécessaire de réappliquer le patch.

~/KernelSources] patch
-i /path/to/gobohide.patch -p1

Grâce à GoboHide, il est désormais possible de masquer ou démasquer les éléments que l'on souhaite. Gobohide rend donc possible la traduction des éléments de Linux comme sous Windows, par exemple en utilisant ce type de commandes :

$ mkdir /Programmes
$ mount -o bind /Programs /Programmes
$ gobohide -h /Programs

ou

$ mkdir /Utilisateurs
$ mount -o bind /Users /Utilisateurs
$ gobohide -h /Users

Le code source est librement disponible[5].

Historique de Compile

Le programme Compile est similaire au système de portages de Gentoo[6], lui-même basé sur celui de FreeBSD. Mais ce portage est fait pour être compatible avec l'arborescence FHS, et Compile est capable de l'appliquer à l'arborescence GoboLinux. Compile utilise l'arborescence de GoboLinux comme base de données des programmes installés[7].

Il fut introduit avec la version "011" de GoboLinux. Avant cela, plusieurs discussions portaient sur la possibilité d'adapter le système de Gentoo sur GoboLinux, un projet de SourceForge.net appelé GoboPortage[8] - [9].

Compile

Compile se base sur l'idée que les sources d'un programme ne devraient pas être distribuées selon de multiples formats de paquets spécifiques. En effet, entretenir la compatibilité des paquets comme le font les différentes distributions Linux est une immense perte de temps, et si tous les paquets suivaient les normes Linux, tout serait beaucoup plus simple. L'idée centrale est qu'au final, un programme se réduit toujours à un ensemble de fichiers à installer[10].

Donc le programme Compile se contente de télécharger, décompresser et compiler du code source au format Tarball.

Par exemple, il est possible d'installer un programme au format DEB en le traduisant en RPM avec le logiciel Alien, puis de l'installer avec le logiciel rpm2cpio. rpm2cpio vlc.rpm donne vlc.cpio.gz

gzip -d vlc.cpio.gz
cpio -d -i vlc.cpio
PrepareProgram -t vlc 1.0
mv * /Programs/vlc/1.0
SymlinkProgram vlc 1.0

Compile installe le programme décompressé en utilisant une commande très simple (compile vlc)[11].

Compile se charge de placer le programme dans le dossier /Programs/[Nom du programme]/[Version du programme] et de créer les liens symboliques dans le dossier /System/Index.

Recipe

Le problème est que dans la pratique, tous les paquets ne vont pas s'installer convenablement en utilisant cette méthode, car tous les paquets Linux ne suivent pas forcément les normes de création des paquets. En effet, il existe des variations mineures dans la construction des paquets, et ces variations perturbent les installations. Sous GoboLinux, ces variations seront donc spécifiées dans un "recipe" (traduction : "recette"), une sorte de micro-script utilisé par le programme Compile pour que le programme s'installe correctement.

Le "recipe" est une sorte de fichier de configuration de l'installation que le programme Compile utilise à l'installation de chaque programme. En effet, pour chaque installation, Compile a besoin d'un "recipe". Deux possibilités sont offertes...

  • Soit Compile tĂ©lĂ©charge le "recipe" sur le serveur de GoboLinux http://recipes.gobolinux.org/r/, et dans ce cas ce fichier est stockĂ© dans le dossier /Files/Compile/Recipes.
  • Soit il est possible de crĂ©er soi-mĂŞme son propre "Recipe" avec des outils fournis comme "MakeRecipe" ou "NewVersion", dans ce cas le fichier sera stockĂ© dans /Files/Compile/LocalRecipes et Compile utilisera ce "recipe" en prioritĂ©.

Le "recipe" est obligatoire pour l'installation de chaque programme. Le petit script "MakeRecipe" automatise la création de "recipe" pour un programme non présent sur le serveur. Il suffit de lui donner un URL et il va télécharger le Tarball, le décompresser et l'inspecter pour comprendre comment il doit être compilé (en utilisant "make", "perl", "python", ou un script de configuration). Si aucun message d'erreur n'oblige à modifier le "recipe", vous pouvez lancer Compile juste après.

Typiquement, le "recipe" standard d'un programme qui ne pose aucun problème d'installation ressemble à ceci (sachant que la seconde ligne est facultative) :

url=$httpSourceforge/gphoto/libgphoto2-2.1.3.tar.bz2
is_compileprogram=yes

Il contient simplement l'URL où le programme a été téléchargé, et la méthode d'exécution. La méthode compileprogram est normalement la plus courante, c'est la méthode qui est appliquée par défaut même si la ligne is_compileprogram=yes n'est pas présente.

Le "recipe" sert à spécifier un modèle d'exécution pour le programme Compile. Il existe plusieurs modèles :

  • compileprogram, qui regroupe les programmes dont la configuration est incluse dedans.
  • makefile, qui regroupe les programmes Ă  assembler avec un "make".
  • xmkmf, qui regroupe les applications basĂ©es sur "X imake tools".
  • meta, qui supporte le meta-packaging (mĂ©langer plusieurs paquets en un).

Le "recipe" permet d'indiquer Ă  Compile des variations mineures qui existent dans l'installation des programmes.

  • Par exemple, pour "PSUtils", la commande "makefile" s'appelle "Makefile.unix", il est possible de le spĂ©cifier avec makefile=Makefile.unix.
  • Par exemple, lorsque vous dĂ©compressez l'archive audacity-src-1.0.0-2.tar.gz, les fichiers ne sont pas dans le dossier audacity-src-1.0.0-2 mais dans audacity-src-1.0.0, donc il faut prĂ©ciser dir=audacity-src-1.0.0 dans le "recipe". Malheureusement, certains paquets rĂ©clament des scripts prĂ© et post installation, car ils s'installent selon des spĂ©cificitĂ©s très Ă©loignĂ©es des standards Linux. Les fonctions de script "shell" sont supportĂ©es pour ces cas-lĂ .

Maintenance des recipes

L'essentiel de la maintenance de GoboLinux consiste à maintenir à jour les différents "recipe" de chaque programme un peu particulier afin d'éviter à l'utilisateur d'avoir des difficultés d'installation. Début 2016, il existe des "recipes" pour environ 3500 paquets.

Cela peut apparaître comme étant un travail énorme, mais maintenir les "recipes" des paquets est bien moins compliqué que de maintenir la compatibilité des paquets eux-mêmes, comme le font les distributions Linux telles que Debian. Et au pire, il est possible de créer soi-même un "recipe" en étudiant la façon dont les paquets sont installés.

En règle générale, chaque paquet a besoin d'un "recipe". Les exceptions sont les paquets programmés dans un langage de script pouvant être géré par un paquet déjà installé (CPAN du Perl, Cabal du Haskell, LuaRocks du Lua, RubyGems du Ruby, et PIP du Python), ces paquets n'ont pas besoin de "recipe". Il suffit d'indiquer la dépendance sur le modèle "PackageManager: PackageName" (par exemple: CPAN:XML::Parser), et Compile laissera son gestionnaire de paquet traiter les détails de l'installation de ce programme.

Versions simultanées

Le programme Compile va permettre d'installer plusieurs versions d'un même programme, et décider celle(s) que vous souhaitez tenir à jour grâce à des fichiers de configuration présent dans le dossier d'installation de chaque programme.

  • Vous pouvez installer plusieurs versions d'un mĂŞme programme, par exemple...
/Programs/Firefox/37.0.1/
/Programs/Firefox/40.0.3/
/Programs/Firefox/41.0.2/
/Programs/Firefox/42.0/
  • Et vous pouvez installer plusieurs fois la mĂŞme version d'un programme, par exemple...
/Programs/Firefox/42.0/1/
/Programs/Firefox/42.0/2/
/Programs/Firefox/42.0/3/
/Programs/Firefox/42.0/4/

Pour faire cela, il faut lancer Compile avec le paramètre -e <version> qui permet de modifier le nom du dossier de la version du programme contenu dans /Programs/[Nom du programme]/.

Système de fichiers

Une vue de l’arborescence sous Konqueror (KDE)

Le système de fichier de GoboLinux s'inspire de NeXTSTEP, AtheOS, et BeOS, son principe philosophique étant de considérer qu'un système d'exploitation est par définition un support pour faire tourner plusieurs programmes, donc dès lors, il est illogique de séparer les éléments de ces programmes. C'est la même direction qu'a adopté la distribution Linux Android en regroupant toutes les applications dans un même dossier (/data/data).

À la racine de GoboLinux se trouvent plusieurs dossiers principaux dont voici le détail.

Fonction du dossier Arborescence GoboLinux Correspondance dans l'arborescence FHS Équivalence dans l'arborescence Windows Équivalence dans l’arborescence macOS
Dossier d'installation des programmes disponibles pour tous les utilisateurs /Programs /bin, /sbin, /usr, /usr/bin, /usr/sbin, /usr/share, /usr/games, /usr/local, /usr/local/bin, /opt, /usr/opt, etc. C:\Program Files /Applications, /System/Applications
Dossier d'installation des programmes disponibles pour l'utilisateur courant - - C:\Users\[Nom d'utilisateur]\AppData\Roaming /Users/[Nom d’utilisateur]/Applications
Dossier des fichiers de configuration pour tous les utilisateurs /Programs/[Nom du programme]/[Version]/etc /etc, /usr/etc, /usr/local/etc C:\ProgramData /Applications/[Nom du programme].app/Contents
Dossier des fichiers de configuration pour l'utilisateur courant /Users/[Nom d'utilisateur]/[Nom du programme]/etc /home/[Nom d'utilisateur]/.[Nom du programme]/etc C:\Users\[Nom d'utilisateur]\AppData\Local, C:\Users\Utilisateur\AppData\LocalLow /Users/[Nom d’utilisteur]/Applications/[Nom du programme].app/Contents
Dossier des données disponibles pour tous les utilisateurs - - C:\Users\Public, C:\ProgramData\Microsoft\Windows\Start Menu /Users/Shared
Dossier des données disponibles pour chaque utilisateur /Users /home C:\Users /Users
Dossier des fichiers du système d'exploitation /System /bin, /sbin, /usr/bin, /usr/sbin, /lib, /proc, /sys, /var, etc. C:\Windows /System
Dossier des ressources partagées /Files ? C:\Program Files\Common Files, C:\Windows\Fonts, C:\Windows\System32\Spool\Drivers\Color, C:\Windows\System32, etc. /Library
Dossier contenant les points de montage /Mount /mnt, /media, etc. Menu démarrer, Explorateur de fichiers, Ce PC /Volumes
Dossier de dépôt de fichiers de l'utilisateur /Depot D: ?
  • /Programs contient des sous-dossiers contenant les diffĂ©rents programmes disponibles pour tous les utilisateurs. Chacun de ces sous-dossiers contient lui-mĂŞme des dossiers pour chaque version du programme. Il existe aussi des fichiers et sous-dossiers de configuration optionnels (quelle version faut-il maintenir Ă  jour, etc.). Ensuite, il existe des sous-dossiers qui reprennent l'arborescence FHS. Par exemple, on trouvera un fichier /Programs/Bash/3.0/bin/bash, ou encore /Programs/Xorg-Server/Settings/X11/xorg.conf. Les dĂ©veloppeurs ont tentĂ© de crĂ©er la possibilitĂ© d'installer des applications pour chaque utilisateur dans le rĂ©pertoire /Users/[Nom de l'utilisateur]/[Nom de l'application] mais installer un programme en dehors du dossier dĂ©diĂ© /Programs nĂ©cessitait de gĂ©rer la variable "$PATH" soi-mĂŞme en effectuant une installation "rootless". Cette idĂ©e a donc Ă©tĂ© abandonnĂ©e devant les risques d'instabilitĂ© du système.


  • /Users contient des sous-dossiers portant le nom de chaque utilisateur du système.


  • /System contient les fichiers du système organisĂ©s par application. Par exemple /System/Settings/passwd.
    • /System/Index contient des dossiers qui contiennent des liens symboliques des fichiers contenus dans le dossier /Programs.
      • /System/Index/bin contient des liens vers les fichiers de chaque dossier bin contenu dans un sous-dossier de /Programs.
      • /System/Index/include contient des liens vers les fichiers de chaque dossier include contenu dans un sous-dossier de /Programs.
      • /System/Index/lib contient des liens vers les fichiers de chaque dossier lib contenu dans un sous-dossier de /Programs.
      • /System/Index/share contient des liens vers les fichiers de chaque dossier share contenu dans un sous-dossier de /Programs.
    • /System/Environment contient des liens vers les fichiers d'environnement contenu dans un sous-dossier de /Programs. Ils sont compilĂ©s dans un fichier cache et chargĂ©s par la Console (le Shell), permettant Ă  chaque programme de crĂ©er ses propres variables d'environnement.
    • /System/Tasks contient des liens vers les "boot tasks" de chaque programme, venant de son dossier Resources/Tasks.
    • /System/Settings contient des liens vers les fichiers de configuration de chaque programme.
      • /System/Settings/BootScripts est un lien vers /Programs/BootScripts qui contient les scripts utilisĂ©s au dĂ©marrage.
    • /System/Variable contient des journaux (log), des temporaires, des fichiers transitoires et des bobines (spool).
      • /System/Variable/tmp contient les fichiers temporaires.
    • /System/Kernel contient les fichiers du système.
      • /System/Kernel/Boot contient les fichiers des programmes et de leur configuration utilisĂ©s durant le chargement du système. L'image du noyau Linux et les fichiers de configuration du "bootloader" sont ici.
      • /System/Kernel/Devices Fichiers des pĂ©riphĂ©riques (gĂ©rĂ©s par udev).
      • /System/Kernel/Modules Fichiers des modules noyau (organisĂ©s par le numĂ©ro de version du noyau).
      • /System/Kernel/Objects Donne une vue d'ensemble de l'arbre des pĂ©riphĂ©riques noyau.
      • /System/Kernel/Status Fichiers de statut du noyau (gĂ©rĂ©s par le système de fichiers "proc").

De cette façon, malgré le fait que chaque exécutable soit dans son propre dossier, tous les exécutables sont répertoriés (par des liens symboliques) dans /System/Index/bin, toutes les bibliothèques sont répertoriées dans /System/Index/lib, etc. Cette organisation élimine les problèmes dus aux fichiers non essentiels stockés dans /usr et les fichiers essentiels stockés dans des sous-dossiers.


  • /Files contient les fichiers utilisĂ©s par les programmes, mais qui ne font pas partie des programmes. Par exemple les polices (fonts), les codecs, les plugins, tout ce qui ne requiert pas un gestionnaire de paquets. Chaque programme peut y dĂ©finir des sous-dossiers pour y stocker des donnĂ©es spĂ©cifiques.


  • /Mount contient les points de montage des diffĂ©rents pĂ©riphĂ©riques de l'ordinateur, c'est-Ă -dire les dossiers permettant d'accĂ©der Ă  la mĂ©moire des pĂ©riphĂ©riques de l'ordinateur (lecteur CD-ROM, disques durs internes, disques durs externes, clĂ© USB, appareil photo, tĂ©lĂ©phone portable, etc.).


  • /Depot est un dossier que tous les utilisateurs peuvent organiser comme ils le veulent. Aucun des sous-dossiers de ce dossier n'est considĂ©rĂ© comme faisant partie de l'arborescence de GoboLinux.

Versions

Les versions sont numérotées en utilisant le système octal. Il fut choisi car il répond zéro indicatif que l'on trouve dans de nombreux logiciels libres, et le système octal permet de faire la course aux versions qui se fit autour de 1999.

  • 016 - 15 dĂ©c 2016 : Introduit Runner, un outil pour virtualiser le système de fichiers. Support de l'architecture x64.
  • 015 - : Introduit /System/Index. Linux kernel version 3.14.2, Abandon de KDE 4 pour Enlightenment 18, plus lĂ©ger.
  • 015-beta -
  • 015-alpha -
  • 014.01[12] - : Corrections de bugs et mises Ă  jour de paquets
  • 014 - : Mises Ă  jour de paquets, Corrections de bugsbug fixes, nouveaux outils de gestion GoboLinux.
  • 013 - : Introduit Listener, un outil pour Ă©couter les Ă©vĂ©nements du système de fichier et automatiser des actions.
  • 012 - : Introduit Manager, un système de gestion graphique.
  • 011 - : Introduit Compile, l'outil de compilation.
  • 010 - : Installeur graphique accessible depuis un Live CD.
  • 007 - : Introduit le dossier Adds Resources.
  • 006 - : Introduit GoboHide, et adopte une installation sandboxĂ©e des programmes.
  • 005 - 2003 : Première version publique.
  • Les versions 001 Ă  004 furent rĂ©servĂ©es aux dĂ©veloppeurs seulement.

Notes et références

  1. Hisham Muhammad, « The Unix tree rethought: an introduction to GoboLinux », (consultĂ© le ) : « Without much fuss, on March 20, 2002, GoboLinux was born. »
  2. « https://github.com/gobolinux/gobolinux.org/blob/master/lang/en_US/pages/k5.html#L28-L71 »
  3. Hisham Muhammad, « The Unix tree rethought: an introduction to GoboLinux », (consulté le )
  4. Marc Weinem, « Simplified package management on GoboLinux - an interview with Lucas Villa Real », (consulté le )
  5. Lucas Correia Villa Real, « Simplified package management on GoboLinux - an interview with Lucas Villa Real », (consulté le )
  6. « GoboLinux Compile -- A Scalable Portage ? », Slashdot, (consulté le )
  7. « The Ideas Behind Compile », GoboLinux (consulté le )
  8. Gentoo Forums : View topic - GoboGentoo
  9. SourceForge.net: GoboPortage
  10. Hisham Muhammad, « The ideas behind Compile », (consulté le )
  11. Mayank Sharma, « GoboLinux's recipe for delicious package management », Linux.com, (consulté le )
  12. Thom Holwerda, « GoboLinux 014.01 Released », (consulté le )

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.