问题描述
为了编译NGinx,需要安装openssl
和openssl-dev
(我正在遵循book指南)。
所以我正在这样做:
sudo apt-get install openssl openssl-dev
但是我收到一个错误消息,告诉我找不到openssl-dev
。同样经过一番谷歌搜索,似乎libssl-dev
等于openssl-dev
,这是真的吗? (apt-get
在我的服务器上找到libssl-dev
)
这是我的服务器版本:2.6.32-22-server
任何帮助欢迎!
最佳思路
如果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本身。
需要注意的一件事是,如果由于某些原因需要不同的构建选项而不是需要不同的版本而正在编译自己的副本,则最好从存储库的源代码进行编译,而不是直接使用上游的源代码。 This SO question是快速搜索中第一个有用的页面,尽管您可以根据需要轻松找到更详细的教程。
另一个需要注意的小事项:由于apt-get build-dep
的结果而安装的软件包将被标记为手动安装,就好像您是手动完成此操作一样。这意味着您不能一口气删除它们(没有apt-get unintall-dep
或类似的东西)-尽管这与手动库/标头安装中的情况没有什么不同(我只提到了某些人期望的事实)有一种one-step方法可以撤消build-dep
操作,而没有)。
次佳思路
是的,你是对的。是libssl-dev
第三种思路
我于2018年9月来到这里。在Ubuntu 18.04上也有同样的问题。
解决:
sudo apt install libssl1.0-dev