linux 相关问题

LINUX问题必须与编程相关。仅当您的问题与使用Linux API或特定于Linux的行为进行编程有关时才使用此标记,而不仅仅是因为您碰巧在Linux上运行代码。如果您需要Linux支持,可以尝试https://unix.stackexchange.com或特定发行版的SE网站,如https://askubuntu.com,https://elementaryos.stackexchange.com/

使用 libcurl 时出现“SSL CA 证书问题”错误

我使用--openssldir=< path to ssl >/ssl(链接到/etc/ssl)构建了openssl 1.1.1,并使用--with-ssl=< path to openssl >构建了curl 7.76.1。 编译了以下代码: #包括 我使用--openssldir=< path to ssl >/ssl(链接到/etc/ssl)构建了openssl 1.1.1,并使用--with-ssl=< path to openssl >构建了curl 7.76.1。 编译了以下代码: #include <iostream> #include <curl/curl.h> int main() { CURL *curl = curl_easy_init(); if (curl) { struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Accept: */*"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_URL, "https://<address>"); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "<some data>"); curl_easy_perform(curl); curl_slist_free_all(headers) } curl_easy_cleanup(curl); } 当我运行此代码时,出现错误: curl_easy_operation() failed : Problem with the SSL CA cert (path? access rights?) 我在 strace 中看到,它正在尝试打开“/etc/pki/tls/certs/ca-bundle.crt” 但在我的机器(Ubuntu 12 和 Ubuntu 14)中没有文件夹“/etc/pki”。 为什么curl使用“/etc/pki”而不是“/etc/ssl”?我怎样才能强制它使用“/etc/ssl”? 我尝试使用 --without-nss 构建curl,但没有成功。 编辑: 我的解决方案是添加以下代码: ifstream caBundleFile("/etc/pki/tls/certs/ca-bundle.crt"); if (caBundleFile.good()) { curl_easy_setopt(curl, CURLOPT_CAINFO, "/etc/pki/tls/certs/ca-bundle.crt"); caBundleFile.close(); } else { curl_easy_setopt(curl, CURLOPT_CAPATH, "/etc/ssl/certs"); } 有两种流行的存储根证书的格式。第一个适用于 RHEL/Centos 等,第二个适用于 Ubuntu 等发行版。 对于未来的读者,答案是设置curl CA路径 #include <iostream> #include <curl/curl.h> const std::string curlCertPath = "./keys/curl-ca-bundle.crt"; int main() { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/"); curl_easy_setopt(curl, CURLOPT_CAINFO, curlCertPath.c_str()); res = curl_easy_perform(curl); if (res == CURLE_OK) { std::cout << "Curl worked" << std::endl; } else { std::cout << "Error: curl failed: " << curl_easy_strerror(res) << std::endl; } curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }

回答 1 投票 0

Docker overlay2 资源正忙

我需要一些有关 docker 的帮助! :D 当我必须部署我的应用程序时,有时会出现此错误 无法为服务数据库创建容器:创建覆盖安装到 /var/lib/docker/overlay2 时出错...

回答 4 投票 0

为什么 /proc/slabinfo 只能由 root 读取?

在尝试诊断没有 root 权限的系统上的虚拟内存问题时,我发现 /proc/slabinfo 只能由 root 读取。这是什么原因呢。我检查...

回答 1 投票 0

不使用 aa-remove-unknown 命令删除 Docker 容器

我正在尝试停止 docker 容器,但我不能,因为权限被拒绝 来自守护程序的错误响应:无法停止容器::权限被拒绝 我发现了“aa-remove-unknown”c...

回答 2 投票 0

非阻塞读取永不返回

我正在尝试进行非阻塞读取,但该函数永远不会返回。有人可以提出建议吗?这是我设置非阻塞 fd 的代码。 from_ap = 打开(FFS_GBEMU_OUT, O_RDWR|O_NONBLOCK); 如果(fr...

回答 2 投票 0

如何从语义上验证 YAML 架构?

我正在使用 Aerospike,我想创建一个脚本来验证 aerospike 配置。 我可以使用 asconfig validate 命令验证文件的语法...

回答 1 投票 0

Redhat RHE9 ansible 在系统上列出存储库时引发无效的存储库 ID

我正在我的一台 AWS EC2 上运行 Linux Redhat 9,并且正在尝试安装 OpenVPN 服务器。 为此,我想启用 codeready-builder 存储库。 这是启用存储库的 ansible 任务: 15 ...

回答 1 投票 0

linux 在多个目录中查找受 MAX TOTAL SIZE 限制

我的 5TB 硬盘中有两个目录: 文件夹A 文件夹B 我需要在另一个 HDD 中 rclone 同步或 rsync 这两个目录,但存储限制为 2TB。 所以我决定只同步“最新的&q...

回答 1 投票 0

如何使用 jinja2 在 /etc/bind 文件中增加 Serial

我需要使用jinja2在/etc/bind/example.com路径下的绑定文件中增加序列号。 以此为例: $TTL 86400 @ 3600 在 SOA example.server.com 中。主持人考试...

回答 2 投票 0

是ca证书验证问题吗?我该如何解决这个问题?

在我的公司,有几个实例是用于生产、测试和其他目的的后端。我也是公司的新员工。最近所有实例突然不能了

回答 1 投票 0

ALSA:无法打开音频设备[重复]

首先,我想要播放的文件不是错误的原因,这看起来像是 ALSA 的问题。 正如你所看到的,即使我想直接在终端中启动声音文件(自动

回答 2 投票 0

pip找不到满足要求的版本django==2.2.1

我刚刚将操作系统更改为linux,我想安装django。 但我无法安装最新版本的 django。 我努力了 pip install django 但是它安装了 django 1.11.11 ...

回答 5 投票 0

如何在 GNU 并行中为不同主机使用不同的 --workdir

我想在本地计算机和远程计算机上执行我的 script.sh 。但是,在本地计算机上,script.sh 文件位于 ~/dir1/ 内,而在远程计算机上,位于 /dir2 内。 我尝试的是:里面〜/

回答 1 投票 0

我遇到错误“Clearsigned 文件无效,得到‘NOSPLIT’(网络需要身份验证吗?)”

当我运行 sudo apt update 时 表明 :- E:无法获取http://packages.microsoft.com/repos/code/dists/stable/InRelease Clearsigned 文件无效,得到“NOSPLIT”(网络是否需要

回答 6 投票 0

为什么linux对每个CPU使用不同的GDT?

我不明白在多处理器系统(在linux中)中为每个CPU使用不同的GDT背后的原因。 每个 CPU 的 TSS 描述符必须是唯一的,但我们可以为每个 CPU 创建一个描述符...

回答 1 投票 0

linux 标头 <linux/sysctl.h> 已弃用

linux header 是否已弃用? 我在 man 2 sysctl 上读到了这个: 这个系统调用首先出现在Linux 1.3.57中。它在 Linux 5.5 中被删除;版本中删除了 glibc 支持...

回答 1 投票 0

linux 标头 <linux/sysctl.h> 已弃用

linux header 是否已被废弃? 我在 man 2 sysctl 上读到了这个: 这个系统调用首先出现在Linux 1.3.57中。它在 Linux 5.5 中被删除;版本中删除了 glibc 支持...

回答 1 投票 0

如何使用 Yocto 将文件部署到 /boot 分区

我正在尝试将一些二进制文件部署到 RPi CM3 的 Yocto 映像中的 /boot ,但它将它们部署到错误的位置。 执行安装(){ 安装-d ${D}/boot/overlays 安装-m 0664 ${WORKD...

回答 3 投票 0

如何退出psql中的查询结果查看器?

第一次查询: 数据库=#从表限制1中选择*; ... | (1 行) (结尾) 我想进行第二次查询,但不能。 ctrl+Z 退出 psql。我可以按什么键退出结果查看?

回答 1 投票 0

如何从 nmap 中提取开放端口号

现在我的目标是扫描单个IP并仅获取以逗号分隔的单行打印的开放端口。 下面的代码执行此操作,但它在末尾注入 % 。 目标是提取端口 n...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.