![为什么我的 Nginx 包没有升级?](https://linux22.com/image/840558/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20Nginx%20%E5%8C%85%E6%B2%A1%E6%9C%89%E5%8D%87%E7%BA%A7%EF%BC%9F.png)
我正在尝试将我的 nginx 安装升级到 1.3+。我已经添加了 nginx/development 的 PPA 并使用 进行了更新apt-get update
。
我运行这个命令来安装 nginx:
me@server:~$ sudo apt-get install nginx
... snip ...
Unpacking nginx (from .../nginx_1.5.0-1~ppa1~raring_all.deb) ...
Setting up nginx (1.5.0-1~ppa1~raring) ...
然而:
me@server:~$ nginx -v
nginx version: nginx/1.2.6 (Ubuntu)
看起来它安装了 nginx 1.5,但安装在某个奇怪的地方。如果确实如此,我不知道如何找到它。我做错了什么?
答案1
首先,您应该检查 1.5.0 包是否已成功安装。也许您错过了一条错误消息。您可以在 的输出中看到包的当前安装版本等信息(apt-cache policy packagename
在您的情况下是 )apt-cache policy nginx
。
如果新包已正确安装,可能需要重新启动 nginx 才能让其“意识到”它已升级。
要找出软件包中的文件在文件系统中的位置,可以使用 开关-L
。dpkg
对于您的情况,类似 的dpkg -L nginx
命令应该会给出一个列表。也许新版本的二进制文件位于路径中与旧版本不同的另一个目录中,因此旧版本的二进制文件优先。您可以使用 来检查命令的二进制文件的位置whereis
。所以whereis nginx
应该会告诉您nginx
所使用的二进制文件位于何处。也许有 1.2.6 版本的残余。
我对 nginx 的了解有限,但我还会检查以下可能性:
- 也许二进制文件的名称从 1.2.6 更改为 1.5.0,并且不再是了
nginx -v
,但是nginx15 -v
或者类似的东西? - 也许 1.5.0 版本出于某种原因将自己标识为 1.2.6?我隐约记得不久前 Ruby 中也发生过类似的事情,出于与其他内容兼容的原因,1.9.3 包被命名为“1.9.1”。
- 也许 PPA 的软件包不是为了升级现有的 nginx,而是与它并行运行?我可以想象在较旧的稳定版本旁边安装一个迄今为止不稳定的开发版本。
- 也许打包者只是犯了某些错误,错误地发送了 1.2.6 版本。
上述内容大部分都是推测,但它应该能给你提供一些参考。