如何在NixOS中安装私有软件包
NixOS安装私有Git仓库编译包的方案
直接用nix-env安装本地编译产物
如果已经在本地完成编译,直接找到对应的产物路径或.drv文件安装:
- 若知道编译后包在
/nix/store里的完整路径(比如/nix/store/abc123-your-package),执行:nix-env -i /nix/store/abc123-your-package - 手里只有编译生成的
.drv文件,执行:nix-env -i -f /path/to/your/package.drv
把私有仓库集成到系统配置(长期维护推荐)
如果需要让这个包长期出现在系统里,直接在configuration.nix里引用私有仓库的Nix表达式:
- 先确保机器能访问私有Git仓库(比如配置好SSH密钥),然后在
configuration.nix的environment.systemPackages里添加:environment.systemPackages = with pkgs; [ (import (fetchGit { url = "git@your-private-repo:user/repo.git"; rev = "a1b2c3d4e5f6"; # 你要使用的提交哈希 sha256 = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"; })).your-package-name ]; - 上面的
sha256可以用命令生成,替换成你的仓库和提交哈希:nix-prefetch-git git@your-private-repo:user/repo.git a1b2c3d4e5f6 - 最后重建系统配置生效:
sudo nixos-rebuild switch
用本地Nix表达式目录安装
如果不想拉远程仓库,直接用本地的包定义目录:
- 假设本地有个目录
/home/you/private-package,里面有default.nix定义了你的包; - 在
configuration.nix里添加:environment.systemPackages = with pkgs; [ (import /home/you/private-package) ]; - 重建系统:
sudo nixos-rebuild switch
内容的提问来源于stack exchange,提问作者DevOps
相关产品推荐
相关产品推荐

