微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在nix包中设置标志

如何解决在nix包中设置标志

我正在尝试将我的项目与静态openssl链接。我注意到openssl软件包https://github.com/NixOS/nixpkgs/blob/d6a12e8d9e0a4ac35ed401881e0d3160c764ac36/pkgs/development/libraries/openssl/default.nix#L5中有标志static,但我不知道在使用时如何设置它。 (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的{​​{1}}中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。