Đặt cờ trong gói nix
Tôi đang cố gắng liên kết dự án của mình với openssl tĩnh. Tôi nhận thấy rằng có cờ statictrong gói openssl:https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5nhưng tôi không biết làm thế nào nó có thể được thiết lập khi sử dụng nó. ( pkgs.openssl ...?).
Hiện tại tôi đã "giải quyết" nó bằng cách sử dụng pkgs.pkgsStatic.openssl, nhưng nó có tác dụng phụ rất khó chịu về hình thức gccvà các phụ thuộc không liên quan khác được biên dịch lại tĩnh (cái quái gì vậy?).
Làm cách nào để sử dụng opensslgói có bật cờ tĩnh?
Trả lời
Bạn có thể thay đổi các đối số được truyền vào một gói với override. Điều này là đủ nếu bạn chỉ muốn xây dựng một tĩnh openssl:
pkgs.openssl.override {
static = true;
}
Để xây dựng các gói khác bằng cách sử dụng tùy chỉnh này openssl, nó phải được thêm lại vào nixpkgsbằng cách sử dụng lớp phủ:
self: super: {
openssl = super.openssl.override {
static = true;
};
}
Lớp phủ này có thể được đặt trong ~/.config/nixpkgs/overlays/openssl-static.nixhoặc thêm vào configuration.nix's nixpkgs.overlays.