sshd源码编译报错处理:
这是笔者在初次源码编译安装sshd服务所遇到的一些问题,希望能帮助到一些初Linux初学者所遇到的问题:
遇到的错误信息
错误一:
这个错误信息 “working libcrypto not found, check config.log” 通常在尝试构建或安装依赖于 OpenSSL加密库的软件包时出现。
以下是您可以采取的一些步骤来解决此问题:
- 检查 OpenSSL 是否已安装在您的系统上。您可以在终端中运行以下命令来执行此操作:
openssl version
如果 OpenSSL 已安装,则此命令将输出版本号。如果未安装,则需要在继续之前安装它。 - 检查 OpenSSL 开发头文件是否已安装在您的系统上。这些头文件需要构建依赖于 OpenSSL 的软件。包含这些头文件的软件包通常称为 “openssl-devel” 或 “libssl-dev”,具体取决于您的操作系统。
- 检查错误消息中提到的 config.log 文件。此文件应包含有关发生的错误的更详细信息。查找与 OpenSSL 库或头文件相关的任何错误消息或警告。
- 确保 OpenSSL 库和头文件在编译器的搜索路径中。您可以在运行要安装的软件包的 configure 脚本之前设置适当的环境变量,例如 CFLAGS 和 LDFLAGS。
- 如果仍然遇到问题,请尝试更新或重新安装 OpenSSL 以及依赖于它的任何软件包。这有时可以修复缺少或过时库的问题。
解决:安装openssl-devel
yum install openssl-devel
错误二:
configure: WARNING: unrecognized options: --with-md5-passwords checking for cc… no checking for gcc… no checking for clang… no configure: error: in /root/openssh-9.3p1’: configure: error: no acceptable C compiler found in P A T H S e e c o n f i g . l o g ′ f o r m o r e d e t a i l s 这个错误提示表明在编译安装 O p e n S S H 时, c o n f i g u r e 命令使用了未识别的选项 " − − w i t h − m d 5 − p a s s w o r d s " 。同时, c o n f i g u r e 还提示找不到可用的 C 编译器。为了解决这个问题,您可以尝试以下步骤: 7. 确认您的系统中已经安装了 C 编译器,例如 g c c 或 c l a n g 。您可以在终端中运行命令 " g c c − v " 或 " c l a n g − v " 来确认是否已经安装。 8. 如果您尚未安装 C 编译器,请使用您的发行版的软件包管理器安装它们。例如,在 U b u n t u 上,您可以运行命令 " s u d o a p t − g e t i n s t a l l b u i l d − e s s e n t i a l " 来安装 C 编译器和其他必要的工具。 9. 如果您已经安装了 C 编译器,但仍然收到相同的错误,请检查您的 PATH Seeconfig.log' for more details 这个错误提示表明在编译安装OpenSSH时,configure命令使用了未识别的选项"--with-md5-passwords"。同时,configure还提示找不到可用的C编译器。 为了解决这个问题,您可以尝试以下步骤: 7. 确认您的系统中已经安装了C编译器,例如gcc或clang。您可以在终端中运行命令"gcc -v"或"clang -v"来确认是否已经安装。 8. 如果您尚未安装C编译器,请使用您的发行版的软件包管理器安装它们。例如,在Ubuntu上,您可以运行命令"sudo apt-get install build-essential"来安装C编译器和其他必要的工具。 9. 如果您已经安装了C编译器,但仍然收到相同的错误,请检查您的PATHSeeconfig.log′formoredetails这个错误提示表明在编译安装OpenSSH时,configure命令使用了未识别的选项"−−with−md5−passwords"。同时,configure还提示找不到可用的C编译器。为了解决这个问题,您可以尝试以下步骤:7.确认您的系统中已经安装了C编译器,例如gcc或clang。您可以在终端中运行命令"gcc−v"或"clang−v"来确认是否已经安装。8.如果您尚未安装C编译器,请使用您的发行版的软件包管理器安装它们。例如,在Ubuntu上,您可以运行命令"sudoapt−getinstallbuild−essential"来安装C编译器和其他必要的工具。9.如果您已经安装了C编译器,但仍然收到相同的错误,请检查您的PATH环境变量是否包含了C编译器的路径。您可以运行命令"echo P A T H " 来查看您的当前 PATH"来查看您的当前PATH"来查看您的当前PATH设置。
10. 如果您仍然无法解决问题,请检查"config.log"文件以获取更多详细信息,可能会有其他错误信息。您可以通过运行命令"tail -f config.log"来跟踪实时日志。
解决:安装gcc
yum install gcc
错误三:
unable to find a match libcrypto
这个错误通常会在编译和安装软件时出现,表示无法找到匹配的libcrypto库。这个库是OpenSSL加密库的一部分,许多软件都依赖它来提供安全性功能。
以下是一些可能导致出现这个错误的原因以及解决方法:
10. 没有安装OpenSSL:如果系统中没有安装OpenSSL,则需要使用包管理器安装它。
11. OpenSSL版本不匹配:有时,编译软件所需的OpenSSL版本与系统中已安装的版本不匹配,可能需要手动安装或升级OpenSSL。
12. 缺少libcrypto.so库:如果出现错误“unable to find a match libcrypto”,则需要检查系统中是否存在libcrypto.so库文件,如果缺少,则需要安装或手动编译。
13. 库路径不正确:如果已经安装了OpenSSL,但是仍然找不到libcrypto库,则需要确保库路径正确设置。可以尝试将库路径添加到LD_LIBRARY_PATH环境变量中。
总之,这个错误的解决方法取决于具体情况。需要仔细检查错误消息,确定导致错误的原因,然后采取适当的措施来解决问题。
解决:安装openssl
yum install openssl-devel