初探GNU Guix System安裝

這篇文章簡介GNU Guix System是什麼,以及如何安裝GNU Guix在您的電腦上。

使用GNU Guix System理由:

  1. 全由自由開源的軟體組成,尊重使用者的計算機自由。
  2. 系統設定、軟體安裝可輕易複現(reproduce),只要透過一個宣告檔就可配置完成。
  3. 官方有詳細的參考手冊和教學影片。

使用前,你應該考慮:

  1. 自由軟體代表有很多Wifi網路卡、Nvidia顯示卡會無法運作,除非安裝非官方的軟體庫
  2. 使用此系統需要對Linux系統的底層運作有一定了解。
  3. 撰寫宣告檔需要熟悉Scheme (Lisp) 程式語言。

1. GNU Guix System簡介

GNU Guix啟發自Nix,是一種宣告式(delcartion)安裝、版本管理能力強的Linux套件管理員,且Guix強調官方軟體庫只收錄自由軟體。

官方網站有完整的參考手冊詳述每個指令的詳細用法,Guix也是自由軟體基金會(Free Software Foundation)的GNU計畫的一部分。

GNU Guix可以安裝在其他Linux發行版上,跟其他套件管理員共存。對Guix來說,這叫做安裝在外部發行版(foreign distro)上。

另一方面,GNU Guix也可以安裝成獨立的系統,即為GNU Guix System (舊稱GNU GuixSD)。Guix為類似滾動更新的發行版,預設內核是無封閉韌體的"Linux-libre",init程式是GNU Shepherd。

GNU Guix System主打從軟體到系統設定,都可寫一個宣告檔進行安裝,並且能隨時回滾(降級)。甚至Guix系統本身也可以視為一個Git儲存庫,每對系統進行變更就會保留舊版設定檔。

2. 安裝GNU Guix System

  1. 官網下載ISO,目前版本是1.3.0。

  2. 製作開機隨身碟,開機進入系統。會出現Guix的文字介面安裝程式。此畫面無法使用滑鼠,要用鍵盤上下左右+Enter來操作。

  3. 選擇語言按下Enter

  4. 選擇地區

  5. 選擇使用純文字模式繼續安裝

  6. 選擇時區

  7. 選擇鍵盤布局

  8. 給主機取名字

  9. 關閉從區域網路下載substitute

  10. 設定Root密碼

  11. 接著新增一個普通使用者帳戶

  12. 接著是桌面環境,推薦GNOME或XFCE。為輕便我選XFCE。

  13. 設定開機要啟動的服務

  14. 選擇將系統安裝至整個硬碟

  15. 確認好之後開始安裝。

  16. 之後Guix會自動下載需要的軟體套件。由於目前全球鏡像站點不多,下載速度可能會很慢。

  17. 安裝完成後重開機,拔掉隨身碟。開機進入桌面,會顯示GDM。

3. Guix安裝軟體

GNU Guix System的套件管理員當然就是Guix。

更新系統

使用以下指令更新最新版系統:

1
guix pull

此指令等同apt update & apt upgrade。每次修改系統前最好先執行一次。

安裝軟體

Guix安裝軟體的指令是guix install,會將軟體安裝到目前使用者的家目錄下,所以安裝不需要Root權限。

Guix可以從本機編譯軟體套件,不過guix install預設會下載"substitute"安裝,也就是軟體庫上預先編譯好的套件。

Guix官方軟體庫只提供自由軟體,儘管如此還是有非官方的Guix Nonfree軟體庫,裡面才有收錄閉源的Nvidia驅動。

  1. 首先,安裝GNOME Epiphany瀏覽器 (很不幸的,Firefox不夠自由):
1
guix install epiphany
  1. 接著是中文字型,不過這只對目前使用者有效。要將此套件安裝至系統,請參閱下一節的guix system指令用法。
1
2
guix install font-google-noto fontconfig
fc-cache -rv
  1. 再來是輸入法,目前只能用ibus-rime。因為會動到系統檔案,請移動到下一節。

4. Guix修改系統設定

說明

GNU Guix System的桌面環境和系統服務的設定跟一般的GNU/Linux不太一樣。如果要修改系統設定,或是安裝全部使用者可用的系統套件,就要使用指令guix system + 宣告檔。宣告檔可利用安裝系統後生成的檔案,位於/etc/config.scm,直接拿這個下去改。

guix system --reconfigure修改系統的過程稱為實例化,修改後的系統會成為一個新的版本(generation),並成為開機GRUB選單中的預設選項。相反,使用guix system --rollback則是讓系統回滾到上一個版本。因此透過guix system來修改系統設定才能確保系統可滾回舊版本。

未來的Guix會引入guix home指令,此指令主要是用於修改家目錄下的隱藏設定檔。

修改系統安裝ibus

  1. 接續上一節內容,我們要安裝ibus rime輸入法,並將中文字體安裝到系統。因此要修改/etc/config.scm,插入以下內容:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
(use-moudles (gnu))
(use-modules (gnu packages ibus))
(use-modules (gnu packages language))
(use-modules (gnu packages fonts))
(use-modules (gnu packages gnome))
(use-modules (gnu packages certs))
(use-service-modules desktop networking ssh xorg)

(operating-system
;; ...略...
  (packages
   (append
     (list
      nss_certs
      ibus
      lbus-rime
      font-gnu-unifont
      dconf)
     %base-packages))
;; ...略...
)
  1. 變更系統,之後會重新下載套件。
1
2
guix pull
sudo guix system --reconfigure /etc/config.scm
  1. 參考设置输入法 - Guix中文社區,修改家目錄下的.pam_environment檔案,填入:
1
2
3
4
5
6
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

export GUIX_GTK2_IM_MODULE_FILE=/run/current-system/profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache
export GUIX_GTK3_IM_MODULE_FILE=/run/current-system/profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache
  1. 重新開機,GRUB選單會多出新版本的系統

  2. 啟動ibus-setup

如果本網站文章對您有幫助,歡迎贊助我。