GNU Guix System:完全由自由軟體組成的Linux發行版
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儲存庫,每對系統進行變更就會保留舊版設定檔。
總結,使用GNU Guix System理由:
- 全由自由開源的軟體組成,尊重使用者的計算機自由。
- 系統設定、軟體安裝可輕易複現(reproduce),只要透過一個宣告檔就可配置完成。
- 官方有詳細的參考手冊和教學影片。
而在使用前,你應該考慮:
- 自由軟體代表有很多Wifi網路卡、Nvidia顯示卡會無法運作
- 使用此系統需要對Linux系統的底層運作有一定了解。
- 撰寫宣告檔需要熟悉Scheme (Lisp) 程式語言。
2.安裝GNU Guix System
GNU Guix System安裝有文字界面的引導安裝,過程詳見:安裝GNU Guix System
推薦桌面環境為GNOME或XFCE。
3.GNU Guix System的軟體管理
GNU Guix System的套件管理員當然就是Guix。
更新系統的指令是guix pull。此指令等同apt update & apt upgrade。每次變更系統前最好先執行一次。
Guix安裝軟體的指令是guix install,會將軟體安裝到目前使用者的家目錄下,所以安裝不需要Root權限。Guix可以從本機編譯軟體套件,不過guix install預設會下載"substitute"安裝,也就是軟體庫上預先編譯好的套件。
Guix官方軟體庫只提供自由軟體,儘管如此還是有非官方的Guix Nonfree軟體庫,裡面才有收錄閉源的Nvidia驅動。
4.GNU Guix System調整系統設定
GNU Guix System的桌面環境和系統服務的設定跟一般的GNU/Linux不太一樣。如果要修改系統設定,或是安裝全部使用者可用的系統套件,就要使用指令guix system + 宣告檔。宣告檔可利用安裝系統後生成的檔案,位於/etc/config.scm,直接拿這個下去改。
用guix system --reconfigure修改系統的過程稱為實例化,修改後的系統會成為一個新的版本(generation),並成為開機GRUB選單中的預設選項。相反,使用guix system --roll-back則是讓系統回滾到上一個版本。因此透過guix system來修改系統設定才能確保系統可滾回舊版本。
未來的Guix還會引入guix home指令,此指令主要是用於修改家目錄下的隱藏設定檔。