所以我继承了一个运行
Linux 版本 2.6.9-023stab048.6-enterprise (root@rhel4-32) (gcc 版本 3.4.520051201 (Red Hat 3.4.5-2)) #1 SMP 2008 年 11 月 17 日星期一 19:09:18 MSK
安装了以下过时的 nginx 包(通过yum list | grep nginx
)
已安装 nginx.i386 0.6.39-1.el5
我们在使用这个过时的版本时遇到了很多困难,我想升级它,但这显然是通过 yum 提供的最新版本。
不幸的是,这是在我继承的生产机器上,所以我不知道这个包安装了哪些文件,也不知道后来编写了哪些依赖于 nginx 文件位于特定位置的脚本。因此,我的问题如下:
我可以使用 yum 访问具有较新版本 (0.7.*) 的另一组存储库吗?
如果失败的话,是否有任何 yum 命令可以让我准确查看随包一起安装了哪些文件?
删除软件包版本并用从源代码安装的 nginx 0.7.* 替换它的最好和最干净的方法是什么?
有没有办法做到这一点而不需要让服务器长时间离线(超过 15 分钟左右)?
感谢您的帮助!
答案1
查看其他一些 RPM 存储库,如 rpmforge 或 epel,您可能会在那里找到较新的预构建包。或者,获取所需版本的源 RPM(快速谷歌搜索已找到 0.7.61 的版本)并构建它(rpmbuild --rebuild <foo>.src.rpm
)
答案2
首先,如果您想查看与 nginx 一起安装的软件包:
rpm -ql nginx
有 nginx 0.7 和 0.8 的 rpm 包,但我不能说它们是可靠的。相反,我建议您根据源代码构建自己的 rpm 包。第一次很难弄清楚规格,但之后所有的升级都会非常容易。如果您希望停机时间最短,您需要在另一个盒子中测试迁移。根据经验,我会告诉您升级 nginx 必须是一个干净的过程,但在执行此操作之前您仍然需要进行测试。