在 Ubuntu 等非 Nix 操作系統上安裝和使用 Nix 包管理器
人們喜歡使用不可變的 NixOS 的原因之一是它的 Nix 包管理器。
它有超過 80,000 個軟件包,這可能與 Debian 軟件包的數量相差比較大,但仍然令人印象深刻。
好處是你不必僅僅為了包管理器而 安裝 NixOS。與 Homebrew 和 Rust 的 Cargo 包管理器 一樣,你可以在當前發行版中使用 Nix 包管理器。
為什么要這么做?因為有時,你可能會發現僅以 Nix 打包格式提供的新應用。這種情況很少見,但有可能。
在本教程中,我將引導你完成以下內容:
- 安裝 Nix 包管理器
- 搜索并安裝包
- 嘗試/測試軟件包而不安裝它們
- 更新包
- 刪除包
在其他 Linux 發行版上安裝 Nix 包管理器
Nix 包管理器有兩種安裝方式:全局安裝和本地安裝。
?? 全局安裝意味著系統上的每個可用用戶都可以訪問 nix 包管理器,而本地安裝僅適用于當前用戶。Nix 官方文檔 建議你使用全局安裝。
全局安裝
如果你想全局安裝 Nix 包管理器,那么,你需要執行以下命令:
sh <(curl -L https://nixos.org/nix/install) --daemon
執行上述命令后,需要輸入 y
鍵并按回車鍵:
完成后,關閉當前終端,因為它不會在當前終端會話上運行。
本地安裝
如果你更喜歡本地安裝并且不想每次都使用 sudo
,則執行以下命令:
sh <(curl -L https://nixos.org/nix/install) --no-daemon
輸入 y
并在要求確認時按回車鍵。
完成后,關閉當前終端會話并啟動一個新終端會話以使用 Nix 包管理器。
搜索并安裝包
安裝 Nix 包管理器后,下一步是搜索包。
首先,訪問 Nix 搜索的官方頁面 并輸入你要安裝的軟件包的名稱。
從給定的描述中,你可以找到所需的軟件包,然后選擇 nix-env
進行永久安裝。
在這里,你可以添加一些額外的關鍵字以獲得更好的搜索結果。例如,在這里,我搜索 “Firefox browser”:
我上面提到的最后一步(“復制命令”)什么也不做,只是為你提供了一個用于安裝的命令。
現在,你所要做的就是在終端中執行該命令。
就我而言,它給了我以下命令來安裝 Firefox:
nix-env -iA nixpkgs.firefox
完成后,你可以使用以下命令列出已安裝的軟件包:
nix-env -q
使用包而不安裝它們
到目前為止,這是 Nix 包管理器的最佳功能,因為你可以使用/測試包甚至不用安裝它!
為此,你可以使用 Nix Shell,它允許你將交互式 Shell 與指定的包一起使用,關閉后,你將無法再訪問該包。
很酷,對吧?
要使用 nix-shell 訪問你喜歡的軟件包,請使用以下命令語法:
nix-shell -p <package_name>
例如,我想使用一次 neofetch
,所以我使用了以下命令:
nix-shell -p neofetch
要退出 Shell,你所要做的就是執行 exit
命令:
exit
使用 Nix 包管理器更新包
使用 Nix 包管理器更新包非常簡單。
要更新軟件包,首先,你需要使用以下命令更新頻道:
nix-channel --update
接下來,你可以通過試運行更新命令來列出過時的軟件包:
nix-env --upgrade --dry-run
就我而言,Firefox 瀏覽器已經過時,需要更新!
要更新單個包,請使用以下命令:
nix-env -u <Package_name>
如果你想一次更新所有軟件包,請使用以下命令:
nix-env -u
使用 Nix 包管理器刪除包
要刪除軟件包,你只需按以下方式執行 nix-env
命令即可:
nix-env --uninstall [package_name]
例如,如果我想刪除 Firefox 瀏覽器,那么,我將使用以下命令:
nix-env --uninstall firefox
通過 NixOS 釋放其全部潛力
如果你喜歡 Nix 包管理器背后的想法,請相信我,你一定會喜歡 NixOS。
僅使用一個配置文件來復制整個系統就足以說服我切換到 NixOS,但還有更多原因:
我喜歡 NixOS。以至于我寫了整個系列,這樣你就不必閱讀文檔(基礎知識):
我希望你能像我一樣喜歡使用它。