我尝试使用 nix 安装 llm 库。
你只需要这样做:
git clone https://github.com/rustformers/llm.git
nix build
不幸的是失败了:
错误:构建器 '/nix/store/zllzqwj422zqrsl24lgr6j5y0m4c1mx7-rust-workspace-deps-unknown.drv' 失败,退出代码为 101; 最后 10 行日志: > [naersk] RUSTFLAGS: > [纳尔斯克] CARGO_BUILD_RUSTFLAGS: > [naersk] CARGO_BUILD_RUSTFLAGS(更新):--remap-path-prefix /nix/store/772s1031nnkf5b5qzw55g6nkir1k2jjc-dependency=/sources > 建筑 > 货物构建 $cargo_release -j "$NIX_BUILD_CORES" --message-format=$cargo_message_format > 错误:无法构建包
,因为它需要 rustc 1.70 或更高版本,而当前活动的 rustc 版本 是 1.69.0 > 升级到 rustc 1.70 或更高版本,或者使用 > 货物更新 -p [email protected] --precise 版本 > 其中half v2.3.1
是支持 rustc 1.69.0 的最新版本ver
> [naersk] 货物返回,退出代码 101,正在退出 要获取完整日志,请运行“nix log /nix/store/zllzqwj422zqrsl24lgr6j5y0m4c1mx7-rust-workspace-deps-unknown.drv”。half
在 flake.nix 的输入中可以看到使用了 nix不稳定。
inputs = {
nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable;
naersk.url = github:nix-community/naersk;
flake-utils.url = github:numtide/flake-utils;
};
如果你在nix不稳定软件包列表中搜索rustc,你会发现1.70 但在 nix 稳定包列表中的 rustc 你会发现 1.69
如果输入是 nix不稳定,为什么使用 rust 1.69(来自 nix stable 的 rust)?
第一个失败的解释
rustc 包仅在 devShells.default 中使用,不在packages.default 中使用。
packages.default 是在 naersk 的帮助下从源代码构建的,可能使用 nix stable。
我就是这个意思
nix develop -i
cargo build --release
应该可以工作 事实并非如此
错误:无法构建包
,因为它需要 rustc 1.70 或更高版本,而当前活动的 rustc 版本是 1.69.0 升级到 rustc 1.70 或更高版本,或者使用half v2.3.1
确实 rustc-.版本
1.69
它解决了问题,但没有回答为什么默认使用 rust 1.69。
在薄片中添加锈迹
packages = [ cargo rustup rustc rust-analyzer rustfmt cmake ];
然后执行
nix develop -i
rustup toolchain install 1.70.0
cargo build --release
构建失败但有另一个原因