web-dev-qa-db-ja.com

コンパイルしてbootstrap GNU)することは可能でしょうか?

新しいGuixリリースが少し前に出ました。そして、bootstrap glibc、gcc、およびguixをHURDとMachに接続できれば、Linux以外のGNUシステムを使用できると思いました。しかし、また、bash、emacs、binutils、coreutils、initシステムなどのソフトウェアも必要です。これらのいずれかにLinuxに依存するシステム呼び出しがありますか?LFSのように実行できますか?

9
toxemicsquire

[更新]最近、Fosdemで、GuixをHurdに移植することについて講演しました。こちらで確認できます。 guix_to_hurd_fosdem_16

私はGuixHurdポートに取り組んでいる人です。 HurdでGuixを実際に使用するには、GNU/Hurdシステムをサポートするために、Guixブートストラッププロセスを最初に変更する必要があります。つまり、Guixは、ハードバージョンのglibc、Gnumach、およびHurdをクロスビルドできる必要があります。
この部分が完了したら、新しいglibcを使用してブートストラップツールチェーンを構築し、ブートストラップバイナリを生成する必要があります。この時点で、新しく構築されたバイナリをGNU/Hurdシステムにコピーし、そのシステムでGuixを構築するために使用する必要があります。

Guixブートストラッププロセス

3

数年前、私はGNU/Hurdベースのディストリビューションを最初から作成しました。グーグルBee GNU/Hurdでまだそれについて見つけることができます。

すべての公式GNUソフトウェア(あなたが言及したパッケージを含む)はHurdをサポートするはずであり、ほとんどのパッケージは実際にサポートします。しかし、HurdはLinuxのドロップイン代替品ではないことに注意してください。実際には、別のアーキテクチャ用のソフトウェアをビルドする場合(つまり、x86でarmソフトウェアをビルドする場合)とほぼ同じ方法で、すべてのパッケージをクロスコンパイルするか、ネイティブGNU/Hurdシステムからコンパイルする必要があります。

そうは言っても、次の手順に従うことをお勧めします。

  • Debian GNU/Hurdをどこかにインストールして(a VM OK))、それに慣れてください。

  • 上記のシステムでGuixをビルドし、実際にパッケージを生成してインストールできることを確認します(おそらく、いくつかの変更を加える必要があります)。

  • Guixを変更して、作成および管理できるようにします SubHurds

  • この段階で、Hurdに基づく完全なGNUシステムを必要な場所でブートストラップする準備ができているはずです。後でGRUBを適切に構成する必要があります。

ハッピーハッキング!

3