在 Ubuntu 等非 Nix 操作系統上安裝和使用 Nix 包管理器
Nix 軟體包管理器可以安裝在任何 Linux 發行版上。具體方法如下。
人們喜歡使用不可變的 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。以至於我寫了整個系列,這樣你就不必閱讀文檔(基礎知識):
我希望你能像我一樣喜歡使用它。
(題圖:MJ/da586165-eadb-4ed7-9a0b-9c92903344d5)
via: https://itsfoss.com/ubuntu-install-nix-package-manager/
作者:Sagar Sharma 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive