首頁 > 系統教程 > Linux > 如何在Linux中使用Nix-Shell創建開發環境

如何在Linux中使用Nix-Shell創建開發環境

Jennifer Aniston
發布: 2025-03-19 10:11:08
原創
625 人瀏覽過

尼克斯 - 塞爾:用孤立的環境簡化您的開發工作流程

厭倦了在不同項目中雜亂無章的軟件版本? Nix-Shell提供了強大的解決方案!該工具使您可以創建孤立的開發環境,每個環境都根據特定項目的需求進行量身定制,以確保平穩且無衝突的工作流程。

這些孤立的環境阻止了項目之間的干擾,從而消除了軟件版本衝突時經常遇到的令人沮喪的“依賴地獄”。 Nix-Shell簡化了環境的創造和切換,確保了各種機器的一致設置,並提高了團隊協作效率。

本指南提供了使用Linux上的Nix-Shell創建和管理隔離開發環境的分步演練。

目錄

  • 使用Nix-shell的好處
  • 使用Nix-Shell創建和管理開發環境
    • 用nix表達式定義依賴關係
      • 快速,臨時的環境
    • 訪問Nix Shell
    • 在尼克斯外殼中工作
    • 退出尼克斯·殼
  • 常見問題(常見問題解答)
  • 結論

什麼是尼克斯·希爾?

NIX是一個強大的軟件包管理器,並採用功能性和聲明性方法來依賴性管理。它將軟件包視為功能編程範式中的值。

尼克斯·塞爾(Nix-Shell)是一種與Nix軟件包管理器捆綁在一起的命令行工具,利用Nix表達式生成孤立的開發環境。這些環境封裝了給定項目的所有必要工具,庫和依賴項。

通過獨立建立每個依賴性並防止干擾,Nix-shell消除了“依賴性地獄”,並提供了對開發和生產環境中依賴關係的顆粒狀控制。這種隔離和可重複性確保了不同系統之間一致的設置,並促進了無縫開發人員的協作。

使用Nix-shell的好處

  • 隔離:每個Nix-Shell環境都與您的系統和其他環境隔離,以防止依賴性衝突。
  • 可重複性:環境是在代碼中定義的,可確保對運行NIX的任何系統的一致複製。
  • 原子升級和回滾: NIX支持原子升級和回滾,從而可以通過依賴項進行安全的實驗。
  • 無需安裝的測試:未經本地安裝的測試軟件包,非常適合臨時應用程序使用。

使用Nix-Shell創建和管理開發環境

Nix-Shell創建了獨立的可重現環境,以管理項目依賴性,以防止衝突。

用nix表達式定義依賴關係

首先,創建一個定義項目依賴性的NIX表達式。這通常是一個名為default.nixshell.nix的文件。

讓我們創建一個示例項目myproject

 $ mkdir myproject
$ cd myproject
$ nano shell.nix
登入後複製

將以下內容添加到shell.nix

 {pkgs?進口<nixpkgs> {}}:

pkgs.mkshell {
  buildInputs = [
   pkgs.python38
   pkgs.nodejs
   pkgs.ruby
  ];
}</nixpkgs>
登入後複製

這定義了Python 3.8,Node.js和Ruby的環境。在此目錄中運行nix-shell將隔離安裝。

更簡潔的版本:

 {pkgs?進口<nixpkgs> {}}:pkgs.mkshell {buildInputs = with pkgs.buildpackages; [python38 nodejs ruby​​]; }</nixpkgs>
登入後複製

保存並關閉文件。

快速,臨時的環境

對於臨時環境,請使用nix-shell -p package1 package2 ...例如:

 Nix -shell -P Python39packages.numpy Python39packages.scipy
登入後複製

訪問Nix Shell

使用以下方式輸入孤立的環境:

 $ nix-shell
登入後複製

或者

$ nix-shell shell.nix
登入後複製

為了最大程度的隔離,請使用--pure

 $ nix-shell-pure shell.nix
登入後複製

這將與指定的依賴關係創建外殼會話。

在尼克斯外殼中工作

在Nix-Shell環境中,像往常一樣使用開發工具。孤立的環境可確保一致的依賴關係,而不論主機系統如何。

驗證已安裝的版本:

 [nix -shell:〜/myproject] $ python -v
[nix -shell:〜/myproject] $ node -v
[nix -shell:〜/myproject] $ ruby​​ -v 
登入後複製

如何在Linux中使用Nix-Shell創建開發環境

退出尼克斯·殼

使用exitCTRL D出口。退出會刪除臨時環境,將外殼設置轉移到其先前的狀態而不會影響您的系統。項目文件保持不變。可以通過nix-collect-garbage -d )刪除NIX商店中的未使用軟件包。

常見問題(常見問題解答)

問:什麼是尼克斯·希爾?答:具有特定軟件包的命令行工具創建臨時的,孤立的外殼環境。

問:如何安裝它?答:它是NIX軟件包管理器的一部分;首先安裝NIX。

問:如何創建一個孤立的環境?答:使用shell.nix文件指定依賴項,或使用nix-shell -p ...用於臨時環境。

問:它支持什麼?答:大多數類似Unix的系統(Linux,MacOS); Windows用戶可以使用WSL。

問:出口會發生什麼?答:刪除環境;外殼設置還原;保留項目文件。

問:如何避免“依賴地獄”?答:NIX的功能方法可確保孤立的軟件包構建,防止衝突。

問:我可以保存環境狀態嗎?答: shell.nix文件可重現;對於更複雜的方案,請探索Nix的軟件包和配置功能。

問:如何添加/刪除軟件包?答:修改shell.nix文件的buildInputs列表或調整-p標誌。

問:如何執行垃圾收集?答:使用nix-collect-garbage -d

結論

Nix-Shell通過提供孤立的項目工作區來簡化開發。這樣可以防止衝突並確保整個機器之間的一致環境,從而使您可以專注於編碼而不是依賴關係管理。

資源:

  • 尼克斯 - 塞爾官方文件

相關文章:

  • 使用Linux中的conda創建nodejs虛擬環境
  • 在Linux中使用Conda創建Rust虛擬環境
  • 在Linux中使用CONDA創建Golang虛擬環境
  • 如何使用PIP管理Python軟件包
  • PIPX - 在隔離環境中安裝和運行Python應用程序
  • PIPENV - 正式推薦的Python包裝工具

以上是如何在Linux中使用Nix-Shell創建開發環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板