Как скомпилировать библиотеку llm с помощью nix
Я попытался установить библиотеку llm с помощью nix.
Вам просто нужно сделать это:
git clone https://github.com/rustformers/llm.git
nix build
К сожалению, это не удается:
ошибка: сборщик для '/nix/store/zllzqwj422zqrsl24lgr6j5y0m4c1mx7-rust-workspace-deps-unknown.drv' завершился с ошибкой с кодом выхода 101; последние 10 строк журнала:> [naersk] RUSTFLAGS:> [naersk] CARGO_BUILD_RUSTFLAGS:> [naersk] CARGO_BUILD_RUSTFLAGS (обновлено): --remap-path-prefix /nix/store/772s1031nnkf5b5qzw55g6nkir1k2jjc-зависимости=/sources > Building > Cargo build $ Cargo_release -j "$NIX_BUILD_CORES" --message-format=$cargo_message_format > ошибка: пакет не может быть собран, поскольку для него требуется Rusc 1.70 или новее, в то время как текущая активная версия Rusc - 1.69.0> Либо обновитесь до Rusc 1.70 или новее, либо используйте > обновление груза -p [электронная почта защищена] --точная версия > где
ver
это последняя версияhalf
поддержка Rustc 1.69.0> [naersk] Cargo возвращается с кодом выхода 101, выход. Для получения полных журналов запустите 'nix log /nix/store/zllzqwj422zqrsl24lgr6j5y0m4c1mx7-rust-workspace-deps-unknown.drv'.
Во входных данных flake.nix вы можете видеть, что используется нестабильная версия nix.
inputs = {
nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable;
naersk.url = github:nix-community/naersk;
flake-utils.url = github:numtide/flake-utils;
};
если вы ищете Rusc в списке нестабильных пакетов Nix , вы найдете 1.70, но в Rustc в списке стабильных пакетов Nix вы найдете 1.69
Почему используется Rust 1.69 (Rust из Nix Stable), если на входе указан Nix нестабильный?
Первое объяснение, которое не удалось
Пакет Rusc используется только в devShells.default, а не в packages.default.
packages.default собирается из исходного кода с помощью naersk, который, вероятно, использует стабильную версию nix.
Я имею в виду это
nix develop -i
cargo build --release
должно работать, это не так
ошибка: пакет
half v2.3.1
не может быть собран, поскольку для этого требуется Rusc 1.70 или новее, а текущая активная версия Rusc — 1.69.0. Либо обновитесь до Rusc 1.70 или новее, либо используйте
действительно, Rusc -.версия
1,69
1 ответ
это решает проблему, но не объясняет, почему по умолчанию используется ржавчина 1.69.
добавить ржавчину в чешуйку
packages = [ cargo rustup rustc rust-analyzer rustfmt cmake ];
затем выполните
nix develop -i
rustup toolchain install 1.70.0
cargo build --release
сборка не удалась, но по другой причине