为了编译NGinx需要安装openssl
(openssl-dev
我正在关注书指导)。
所以我这样做:
sudo apt-get install openssl openssl-dev
但我收到一个错误,告诉我无法找到openssl-dev
。经过一番谷歌搜索后,似乎libssl-dev
等于openssl-dev
,是真的吗?(在我的服务器上apt-get
找到)libssl-dev
这是我的服务器版本:2.6.32-22-server
欢迎任何帮助!
答案1
如果 Ubuntu 发布版(或其他 Debian 衍生版本)中软件包版本的依赖项与您尝试构建的版本的 deps 相同,您可以运行apt-get build-dep nginx
或aptitude build-dep nginx
- 这不会安装 nginx 包,而是安装所有列为依赖项的包(及其依赖项,如往常一样),其中包括libssl-dev
(您当前正在寻找的包)。
在大多数情况下,这将允许成功完成其他版本(可能较新)的构建,并且它节省了您亲自逐个安装每个库及其头文件的麻烦。即使您尝试构建的其他版本中有新的依赖项,这build-dep <package>
也是一个不错的起点,因为这意味着您只需手动安装额外的新依赖项。
举个例子,我的一台服务器上的结果是:
user@host:~$ sudo aptitude build-dep nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initialising package states... Done
The following NEW packages will be installed:
autotools-dev cvs{a} debhelper gettext{a} html2text{a} intltool-debian{a}
libcroco3{a} libmail-sendmail-perl{a} libpcre3-dev libpcrecpp0{a}
libssl-dev libsys-hostname-long-perl{a} po-debconf{a} zlib1g-dev
0 packages upgraded, 14 newly installed, 0 to remove and 19 not upgraded.
Need to get 7,217kB of archives. After unpacking 22.9MB will be used.
Do you want to continue? [Y/n/?]
它打算安装一些库和标头,以启用 nginx 构建,但不是 nginx 本身。
需要注意的一点是,如果您编译自己的副本是因为您想要不同的构建选项而不是由于某种原因需要不同的版本,那么您最好从存储库的包源进行编译,而不是直接使用上游源。这个问题是通过快速搜索得到的第一个有用的页面,但是如果您需要的话,您很容易就能找到更详细的教程。
另一件需要注意的小事是:安装的软件包apt-get build-dep
将被标记为手动安装,就像您手动完成安装一样。这意味着您无法一次性删除所有软件包(没有apt-get unintall-dep
或类似情况) - 尽管这与手动安装库/头文件时的情况没有什么不同(我之所以提到这个事实,是因为有些人希望有一种单步方法来撤消操作build-dep
,但事实并非如此)。
答案2
是的,你说得对。libssl-dev
答案3
2018 年 9 月的 Ubuntu 18.04 和 2023 年 1 月的 Ubuntu 22.04.1 上也存在同样的问题
在 Ubuntu 18.04 上通过执行以下操作解决:
sudo apt install libssl1.0-dev
目前尚不清楚如何在 Ubuntu 22.04.1 上修复此问题