GoboLinux
Compileはソースコードtarballのダウンロード、解凍、コンパイルと、それらの結果として得られた実行可能コードのインストールを、"recipes" として知られる単純なコンパイルスクリプトを使用して(Compile fooのように)全て1つのコマンドで行うプログラムである。
Compileシステムは、FreeBSD Ports collectionを基盤とするGentooのPortageシステムとやや類似しているところがある。しかしながら、PortageはFilesystem Hierarchy Standardと互換性のある伝統的なファイルシステム階層構造用に作られている。一方Compileは、GoboLinux独自のファイルシステム階層構造の効能をパッケージ管理の領域に拡張する。このためGoboLinuxでは、ファイルシステム自体がパッケージ管理データベースの一種として自ずから役立つことになる。
CompileプログラムはGoboLinuxバージョン011に導入された。それ以前はGentooのパッケージ管理システムをGoboLinuxに移植し、GoboPortageという名前のもとにSourceForge.netプロジェクトとしてその移植を開発することについての議論があった。
Compileのその他の機能を以下に示す:
GoboLinuxの設計はNeXTSTEP、AtheOSおよびBeOSのような初期のシステムに影響された。これらのシステムは全て、UNIXとの互換性をかなりの程度まで維持しながら独自のファイルシステム構造を採用したものである。GoboLinuxツリーのルートにはPrograms、Users、System、Files、Mount、Depotの6個のディレクトリが存在する。それぞれの内容を以下に示す。
/Programs/ - このディレクトリにはシステムにインストールされたプログラムごとに1つのディレクトリが含まれる。各プログラムのディレクトリには1つ以上のバージョンのディレクトリが順番に含まれ、必要に応じてSettingsおよびVariableサブディレクトリも含まれる。Programs配下パスの例としては、/Programs/Bash/3.0/bin/bashや/Programs/Xorg-Server/Settings/X11/xorg.confが挙げられる。
/Users/ - このディレクトリには各ユーザーのホームディレクトリが含まれる。ユーザー "harley" のホームディレクトリは/Users/harleyである。
/System/ - このディレクトリには重要なシステムファイルが含まれる。システムファイルのほとんどはシステムアプリケーション(例えば/System/Settings/passwd)とGoboLinuxスクリプト(例えば/System/Index)が管理する。
GoboLinuxの階層構造では、ファイルはシンボリックリンクを使用して/System/Indexをルートとするインデックスライクな構造で機能的カテゴリに分類されている。全ての実行可能ファイルは/System/Index/bin配下にアクセス可能であり、全てのライブラリは/System/Index/lib配下にアクセス可能であるなどといった具合である。これにより、/usrに格納される特に重要ではないファイルと、ルートディレクトリのサブディレクトリに直接格納される極めて重要な緊急ファイルとの間に生ずる区分けのような、Filesystem Hierarchy Standardの伝統的区分けの多くは排除される。GoboLinuxの開発者らは、これらの区分けはかつては大変有用であったが、GoboLinuxのスキーマではもはや必要ないと主張している。
GoboLinuxのファイルシステム階層構造は、ほとんどのUnix系オペレーティングシステムで採用されている伝統的なファイルシステム階層構造からの根本的な脱却を象徴している。伝統的なファイルシステム階層構造とは(実行可能ファイル用に/binがあり設定ファイル用に/etcがあるというように)特定の種類のファイルを共通の標準サブディレクトリにまとめて格納する階層構造であり、パッケージ管理システムはどのファイルがどのプログラムに属しているかを追跡するためにこの階層構造を使用する。GoboLinuxにおける各プログラムのファイルは、各プログラム専用のサブディレクトリに配置される。GoboLinuxの作成者は「ファイルシステム自体がパッケージデータベースである」と言っており、GoboLinuxパッケージシステムはパッケージデータベースとしてファイルシステム自体を使用する。これによってより簡単で、より散らかりにくいディレクトリツリーを生成することが可能だと言われている。GoboLinuxは伝統的なLinuxファイルシステム階層構造と完全な互換性を維持しながらこれを完全に達成するためにシンボリックリンクを使用し、必要に応じてGoboHideと呼ばれるカーネルモジュールを使用する。