Hello Guix는 애플 실리콘 맥에 GNU Guix를 설치하는 도구다. macOS를 별도의 시동 선택지로 유지하면서 Guix를 설치하고, 시스템 설정을 Scheme으로 읽고 바꿀 수 있게 한다.

이 프로젝트는 Scheme으로 구성할 수 있는 선언형 운영체제 GNU Guix를 애플 실리콘 맥으로 가져온다. 설치 프로그램은 사용자의 선택을 시스템 설정으로 저장하고, Asahi의 하드웨어 지원을 더해 Guix가 해당 시스템을 빌드하도록 한다.

[](https://github.com/hnarayanan/hello-guix#hello-guix)

설치 전 확인할 점

시작하기 전에 데이터를 백업해야 한다. 운영체제를 설치하면 컴퓨터의 저장 공간과 부팅 설정이 바뀌므로, 시작하기 전에 절차를 충분히 이해해야 한다. Guix는 macOS와 함께 설치되며, macOS는 별도의 시동 선택지로 남는다. 요구 사항과 테스트한 하드웨어, 전체 설치 절차는 설치 안내에서 확인할 수 있다.

설치할 맥에서 시작 방법을 고른다.

  • 설치 스크립트를 내려받아 검토한 뒤 실행한다. 설치 스크립트를 hello-guix.sh라는 이름으로 Downloads 폴더에 저장하고, 텍스트 편집기로 내용을 읽는다. 그런 다음 터미널을 열어 실행한다.
sh
sh "$HOME/Downloads/hello-guix.sh"
  • 내려받으면서 바로 실행한다. 터미널을 열어 다음 명령을 실행한다.
sh
curl -fsSL --proto '=https' \
 https://harishnarayanan.org/hello-guix.sh | sh

두 방법 모두 같은 설치 프로그램을 내려받아 확인한 뒤, 세 단계로 설치를 안내한다.

  1. Guix를 설치할 공간을 마련한다. 설치 프로그램은 macOS 파티션의 크기를 조정하거나 이미 있는 여유 공간을 사용하도록 돕고, Guix를 부팅하는 데 필요한 파일을 준비한다.
  2. 맥이 Guix로 부팅하도록 허용한다. 종료 및 전원 버튼 안내에 따라 Apple 복구 모드로 들어가 새 설치를 승인한다.
  3. 설치할 항목을 고른다. Guix에서 언어, 키보드, 계정, 데스크톱 환경과 서비스를 설정한다. 선택 사항을 확인하고 설치한 뒤 재부팅해 로그인한다.

[](https://camo.githubusercontent.com/84fc5f83d2eba6806b8a7dcf7ceaeec0fe8dbc556993da18222b93353daa0161/68747470733a2f2f6861726973686e61726179616e616e2e6f72672f696d616765732f70726f6a656374732f68656c6c6f2d677569782f737461727475702d6f7074696f6e732e6a7067)

설치 후 설정을 바꾸는 방법

새 시스템으로 부팅한 뒤에는 설치 프로그램이 저장한 설정을 살펴볼 수 있다. 선택한 내용은 /etc/config.scm에 저장되며, 이 파일에서 시스템을 설명하는 Scheme 설정을 읽을 수 있다. 사용 가능한 패키지와 서비스, 다른 설정을 살펴보려면 Guix 매뉴얼의 설정 시스템 사용하기를 참고하면 된다.

Hello Guix의 핵심은 일반적인 Guix 설정에 작은 부분을 더하는 것이다. 시스템 설명을 with-asahi-hardware라는 Scheme 함수에 전달하면 맥 하드웨어 지원이 포함된 설정을 돌려준다.

scheme
(with-asahi-hardware
 (operating-system
 ;; Your accounts, packages, services and other choices.
 ...))

위 예시는 일부만 보여준다. 계정과 패키지, 서비스 등 원하는 설정을 함수 안에 넣으면 된다. 바깥 함수는 Asahi 커널과 펌웨어 서비스, 오디오 통합을 추가하며, 필요한 경우 독점 펌웨어에 접근하도록 한다. Guix는 이렇게 구성된 시스템을 빌드한다. 설치할 때와 나중에 설정을 다시 적용할 때 같은 함수를 사용하므로, 선택 사항을 바꾸더라도 하드웨어 지원을 유지한다.

설정 안내는 저장된 채널 버전과 초기 부팅 파일이 업데이트와 롤백에 어떻게 연결되는지 설명한다.

구성 요소와 라이선스

Hello Guix는 세 프로젝트의 작업을 결합한다.

  • Asahi Linux는 리눅스 하드웨어 지원과 저장 공간 준비, 펌웨어 수집, 애플의 부팅 승인에 쓰이는 macOS 설치 프로그램을 제공한다.
  • Asahi Guix Channel은 관련 하드웨어 지원을 Guix 패키지와 서비스로 구성하고, Asahi 호환 이미지 빌더를 제공한다.
  • GNU Guix는 안내형 설치 프로그램과 설정 도구, 패키지 빌드, 시스템 세대를 제공한다.

아키텍처 안내는 소스 코드를 살펴보는 길잡이다. 개발 안내는 프로젝트를 빌드하고 테스트하는 방법을 설명한다.

프로젝트의 철학은 다른 사람이 자신의 작업을 살펴보고, 바꾸고, 그 위에 새 작업을 쌓도록 허용했기 때문에 이 프로젝트도 이어져야 한다는 데 있다. 다음 사람에게도 같은 자유를 주고, 그들의 시간과 이해를 존중하기 위해 코드를 읽기 쉽게 유지하고 구성 요소를 작게 만들며 선택의 이유를 분명히 한다는 뜻이다.

프로젝트 철학에는 이런 기대와 기여 내용을 검토하는 방식이 담겨 있다. 프로젝트가 지향하는 바를 설명하므로 아래 라이선스와 함께 읽어야 한다.

Hello Guix의 독자적인 코드와 문서 대부분은 GPL 버전 3 이상을 따른다. 분리 가능한 Asahi 설치 프로그램 기여분은 원 프로젝트에 따라 MIT 라이선스를 사용한다. 상위 프로젝트에서 가져온 자료는 각자의 이용 조건을 유지한다. COPYING에서 구성 요소별 라이선스를, 설치 프로그램 고지에서 함께 포함된 소프트웨어에 관한 내용을 확인할 수 있다.

프로젝트의 목표는 개인적인 관심에서 출발했다. 하리시 나라야난(Harish Narayanan)은 자신의 MacBook Air (M1, 2020)이 잘 작동하고, 기기를 계속 자신에게 맞게 바꿀 수 있을 만큼 이해하고 싶다고 밝혔다. 그는 비슷한 관심을 가진 사람도 이 작업을 활용할 수 있도록 공개했다.

하리시 나라야난은 문제 신고나 변경 제안을 받고 있으며, 이메일 주소는 mail@harishnarayanan.org다.