npins 项目使用教程

npins 项目使用教程

npins Nix dependency pinning. Very similar to Niv but has a few features that I personally wanted. 项目地址: https://gitcode.com/gh_mirrors/np/npins

1. 项目介绍

npins 是一个用于 Nix 项目中处理不同类型依赖的简单工具。它受到 Niv 的启发,但在某些功能上有所不同。npins 的主要功能包括:

  • 跟踪 Git 分支
  • 跟踪 Git 发布标签(标签必须大致遵循 SemVer 规范)
  • 跟踪 Nix 频道
  • 跟踪 PyPi 包

npins 的设计目标是提供一种简单且方便的方式来管理 Nix 项目中的依赖项。

2. 项目快速启动

安装 npins

npins 应该在所有足够新的 nixpkgs 中都可以直接使用:

nix-shell -p npins

如果你想使用 nightly 版本,可以使用以下命令:

nix shell -f https://github.com/andir/npins/archive/master.tar.gz

你也可以使用 nix-env 将其安装到你的用户配置文件中(不推荐,但可能对引导有用):

nix-env -f https://github.com/andir/npins/archive/master.tar.gz -i

初始化项目

在开始使用 npins 跟踪任何依赖项之前,你需要先初始化项目:

npins init

这将创建一个 npins 文件夹,其中包含 default.nixsources.json 文件。默认情况下,nixpkgs-unstable 频道将被添加为 pin。

查看当前 pin 条目

你可以使用以下命令查看当前的 pin 条目:

npins show

添加依赖

以下是一些常见的使用示例:

npins add channel nixos-21.11 # 移除 -b 以获取最新发布
npins add git https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git -b "nixos-21.11"
npins add github ytdl-org youtube-dl
npins add github ytdl-org youtube-dl -b master # 跟踪 nightly
npins add github ytdl-org youtube-dl -b master --at c7965b9fc2cae54f244f31f5373cb81a40e822ab # 我们想要 *那个* 提交
npins add gitlab simple-nixos-mailserver nixos-mailserver --at v2.3.0 # 我们想要 *那个* 标签(注意:标签,不是版本)
npins add gitlab my-org my-private-repo --token H_BRqzV3NcaPvXcYs2Xf # 使用令牌访问私有仓库
npins add pypi streamlit # 使用最新版本
npins add pypi streamlit --at 1.9.0 # 我们想要 *那个* 版本
npins add pypi streamlit --upper-bound 2.0.0 # 我们只想要 1.X

3. 应用案例和最佳实践

案例1:使用 npins 管理 Nix 项目依赖

假设你有一个 Nix 项目,需要管理多个依赖项,包括 Git 仓库、Nix 频道和 PyPi 包。你可以使用 npins 来简化这个过程。

  1. 初始化项目

    npins init
    
  2. 添加依赖

    npins add git https://github.com/my-org/my-repo.git -b master
    npins add channel nixos-21.11
    npins add pypi requests
    
  3. 更新依赖

    npins update
    
  4. 在 Nix 配置中使用

    let
      sources = import ./npins;
      pkgs = import sources.nixpkgs {};
    in
    ...
    

最佳实践

  • 定期更新依赖:使用 npins update 命令定期更新依赖项,以确保项目使用最新的版本。
  • 使用版本控制:将 npins 文件夹添加到版本控制系统中,以便团队成员可以共享相同的依赖配置。
  • 使用令牌访问私有仓库:如果你需要访问私有仓库,可以使用 --token 选项提供访问令牌。

4. 典型生态项目

NixOS

NixOS 是一个基于 Nix 的 Linux 发行版,npins 可以用于管理 NixOS 系统配置中的依赖项。通过使用 npins,你可以轻松地跟踪和管理系统中的软件包、频道和其他依赖项。

NixOps

NixOps 是一个用于部署 NixOS 系统的工具,npins 可以用于管理 NixOps 部署配置中的依赖项。通过使用 npins,你可以确保所有部署环境使用相同的依赖配置。

Home Manager

Home Manager 是一个用于管理用户环境的工具,npins 可以用于管理 Home Manager 配置中的依赖项。通过使用 npins,你可以轻松地跟踪和管理用户环境中的软件包和其他依赖项。

通过结合这些生态项目,npins 可以帮助你更有效地管理 Nix 项目中的依赖项,提高开发和部署的效率。

npins Nix dependency pinning. Very similar to Niv but has a few features that I personally wanted. 项目地址: https://gitcode.com/gh_mirrors/np/npins

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姬如雅Brina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值