gpt4 book ai didi

在 Docker Alpine 中编译 NSS 模块 - fatal error : nss. h:没有这样的文件或目录

转载 作者:行者123 更新时间:2023-12-02 10:41:48 24 4
gpt4 key购买 nike

我构建了一个 SSH 堡垒镜像,允许客户通过反向 SSH 插入自己(由于授权 key 上的 permitopen 子句,他们都有一个分配的端口)。我通过处理所有公钥的通用帐户实现了这一点。这些 key 通过 BASH 脚本动态检索,该脚本从 HTTP 服务器(AuthorizedKeysCommand SSHD 选项)提取它们。

我的问题来自堡垒的用户群,我也希望它是动态的(而不是拥有一般用户)。为此,我需要一个 HTTP NSS 模块,它不作为 native 包存在,所以我必须自己构建它。

作为开始,我找到了这个项目 https://github.com/gmjosack/nss_http

在根据我的需要更新源代码之前,我试图在沙盒镜像中编译它,但我遇到了这个编译错误

In file included from nss_http-passwd.c:1:
nss_http.h:8:10: fatal error: nss.h: No such file or directory
#include <nss.h>
^~~~~~~
compilation terminated.
make: *** [Makefile:20: nss_http-passwd] Error 1

我现在的形象是

FROM alpine

RUN apk update && \
apk add bash gcc autoconf automake cmake make libc-dev curl-dev jansson-dev && \
mkdir /src

WORKDIR /src

COPY . /src/

RUN make && make install

nssnss-dev Alpine 包链接到另一个 NSS(网络安全服务)...

如有任何帮助,我们将不胜感激!

最佳答案

你应该很好地安装 musl-nscd-dev包裹:

apk add musl-nscd-dev

这个包提供了一个最小的 /usr/include/nss.h 头文件,它只提供了 nss_status 枚举:

enum nss_status
{
NSS_STATUS_TRYAGAIN = -2,
NSS_STATUS_UNAVAIL = -1,
NSS_STATUS_NOTFOUND = 0,
NSS_STATUS_SUCCESS = 1,
NSS_STATUS_RETURN = 2
};

这足以编译 nss_http-passwd.c

关于在 Docker Alpine 中编译 NSS 模块 - fatal error : nss. h:没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62510643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com