얼마 전에 새로운 Guix 릴리스가 나왔습니다. 그리고 glibc, gcc, guix를 HURD와 Mach로 부트 스트랩 할 수 있다면 Linux가 아닌 GNU 시스템을 가질 수 있다는 생각이 들었습니다. 그러나 bash, emacs, binutils, coreutils, init 시스템과 같은 소프트웨어도 필요합니다. 리눅스에 의존하는 시스템 호출이 있습니까? LFS 에서처럼 할 수 있습니까?
얼마 전에 새로운 Guix 릴리스가 나왔습니다. 그리고 glibc, gcc, guix를 HURD와 Mach로 부트 스트랩 할 수 있다면 Linux가 아닌 GNU 시스템을 가질 수 있다는 생각이 들었습니다. 그러나 bash, emacs, binutils, coreutils, init 시스템과 같은 소프트웨어도 필요합니다. 리눅스에 의존하는 시스템 호출이 있습니까? LFS 에서처럼 할 수 있습니까?
답변:
몇 년 전, 나는 처음부터 GNU / Hurd 기반 배포판을 만들었습니다. Bee GNU / Hurd를 검색하여 여전히 찾을 수 있습니다 .
언급 한 패키지를 포함한 모든 공식 GNU 소프트웨어는 Hurd를 지원해야하며 대부분의 패키지는 실제로 지원합니다. 그러나 Hurd는 Linux의 드롭 인 대체품이 아니므로 실제로 모든 패키지를 크로스 컴파일하거나 소프트웨어를 빌드하는 것과 같은 방식으로 네이티브 GNU / Hurd 시스템에서 컴파일해야합니다. 다른 아키텍처 (예 : x86에서 arm 소프트웨어 빌드)
즉, 다음 단계를 따르는 것이 좋습니다.
어딘가에 (데비안 GNU / Hurd)를 설치하고 친숙 해지십시오.
해당 시스템에서 Guix를 빌드하고 실제로 패키지를 생성하고 설치할 수 있는지 확인하십시오 (아마도 변경해야 할 수도 있습니다).
생성하고 관리 할 수 있도록 Guix 수정 SubHurds을
이 단계에서, Hurd에 기반한 완전한 GNU 시스템을 원하는 곳에 부트 스트랩 할 준비가되어 있어야합니다. 나중에 GRUB을 올바르게 구성하면됩니다.
행복한 해킹!
[업데이트] 최근 Fosdem에서 Guix를 Hurd로 포팅하는 것에 대해 이야기했습니다. guix_to_hurd_fosdem_16
나는 Guix Hurd 포트에서 일하는 사람입니다. Hurd에서 Guix를 실제로 사용하려면 GNU / Hurd 시스템을 지원하기 위해 Guix 부트 스트랩 프로세스를 먼저 수정해야합니다. 이것은 Guix가 glibc, Gnumach 및 Hurd의 hurd 버전을 교차 빌드 할 수 있어야 함을 의미합니다.
이 부분을 완료하면 새로운 glibc를 사용하여 부트 스트랩 툴체인을 구축하고 부트 스트랩 바이너리를 생성해야합니다. 이 시점에서 새로 빌드 된 바이너리는 GNU / Hurd 시스템으로 복사되어 해당 시스템에서 Guix를 빌드하는 데 사용됩니다.