Tôi đã có một hộp NixOS mà tôi giữ trên nixos-16.03
kênh. Tôi muốn máy ở trạng thái ổn định, và vì vậy tôi muốn tránh chuyển sang nixos-unstable
kênh.
Tuy nhiên, tôi cần cài đặt phiên bản mới hơn của gói hơn là có sẵn trong kênh đó ( nodejs-6_x
trong trường hợp này). Trong hướng dẫn sử dụng, có một phần mô tả Cài đặt bằng một lần nhấp , thoạt nhìn giống như chính xác những gì tôi cần. Tuy nhiên, máy chủ Hydra tại http://hydra.nixos.org dường như không phục vụ bất kỳ .nixpkg
tệp nào được sử dụng bởi nix-install-package
công cụ được mô tả trong phần đó.
Wiki cũng ghi lại một quá trình mà người ta có thể tùy chỉnh một gói (trang được gọi là Gói sửa đổi ), mà tôi cho rằng có thể được sử dụng cho mục đích của mình, mặc dù có vẻ như tôi đang chiến đấu với công cụ thay vì sử dụng nó.
Tôi cũng đã hỏi về vấn đề này ở IRC (cảm ơn M-Ralith
vì đã kiên nhẫn trả lời những câu hỏi thiếu hiểu biết của tôi!), Nhưng tôi không hiểu lắm về cách áp dụng nó. Lời khuyên là "ghi đè src và phiên bản trong cấu hình nixpkgs của bạn", có vẻ như tôi có thể viết biểu thức nix vào .nixpkgs/configuration.nix
và ghi đè các thuộc tính đó cho gói trong kênh đã đăng ký của tôi ( nixos-16.03
). Khi tôi hỏi về các gói không tồn tại trong kênh, lời khuyên là "chỉ định toàn bộ gói thay vì chỉ ghi đè src và phiên bản", điều này có nghĩa là tôi sẽ cần sao chép toàn bộ biểu thức nix cho gói Tôi quan tâm đến.nix-env
Đối với các gói tồn tại trong một kênh khác mà tôi muốn cài đặt, nhưng vẫn ở trên kênh hiện tại của tôi, có cách nào tốt hơn không? Nó gần như cảm thấy tôi có thể làm một cái gì đó như thế nix-build <url> | nix-env -i
. Điều lý tưởng là cài đặt cái này đi, nhưng không có cấu hình có thể ngăn nó được nâng cấp sau này nếu kênh hiện tại của tôi bắt kịp.