在 nix 包中设置标志
Set flag in nix package
我正在尝试 link 我的项目使用静态 openssl。我注意到 openssl 包中有标志 static
:https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5 但我不知道在使用它时如何设置它。 (pkgs.openssl ...
?).
目前我使用 pkgs.pkgsStatic.openssl
“解决”了它,但它对 gcc
的形式和其他不相关的依赖项的静态重新编译有非常烦人的副作用(什么地狱?)。
如何在启用静态标志的情况下使用 openssl
包?
您可以使用 override
更改传递给包的参数。如果您只想构建静态 openssl
:
,这就足够了
pkgs.openssl.override {
static = true;
}
要使用此自定义 openssl
构建其他包,必须使用覆盖将其添加回 nixpkgs
:
self: super: {
openssl = super.openssl.override {
static = true;
};
}
此叠加层可以放置在 ~/.config/nixpkgs/overlays/openssl-static.nix
中或添加到 configuration.nix
的 nixpkgs.overlays
。
我正在尝试 link 我的项目使用静态 openssl。我注意到 openssl 包中有标志 static
:https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5 但我不知道在使用它时如何设置它。 (pkgs.openssl ...
?).
目前我使用 pkgs.pkgsStatic.openssl
“解决”了它,但它对 gcc
的形式和其他不相关的依赖项的静态重新编译有非常烦人的副作用(什么地狱?)。
如何在启用静态标志的情况下使用 openssl
包?
您可以使用 override
更改传递给包的参数。如果您只想构建静态 openssl
:
pkgs.openssl.override {
static = true;
}
要使用此自定义 openssl
构建其他包,必须使用覆盖将其添加回 nixpkgs
:
self: super: {
openssl = super.openssl.override {
static = true;
};
}
此叠加层可以放置在 ~/.config/nixpkgs/overlays/openssl-static.nix
中或添加到 configuration.nix
的 nixpkgs.overlays
。