当前位置:  开发笔记 > 编程语言 > 正文

可以重新编译此包

如何解决《可以重新编译此包》经验,为你挑选了1个好方法。

你好我向超级用户问了这个问题,但我没有得到一个好问题,我真的需要答案.我知道你们中的一些人可以回答这个问题.

我已经通过yum安装了nginx.现在我想添加一个模块,但我必须再次编译源代码并包含新模块.

但我找不到来源.有人知道我要做什么来重新编译源代码并获取模块.

更新

我在帕特里克的答案中做了一切,效果很好.但是,当我运行yum update时,它想要使用相同的版本更新已安装的rpm.

我可以让它更新,或者我应该指定它已经是最新的.



1> Patrick McMu..:

Redhat和相关发行版(fedora,centos)将其源代码保存在高度规则的目录树中.对于您想要的RHEL5:ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/对于其他版本,您可以浏览ftp服务器,直到找到您想要的内容.否则,谷歌搜索你有的确切版本的nginx(rpm -q nginx)

假设您可以找到srpm,请使用rpm安装它:

rpm -ivh nginx-xxxx.src.rpm

这将把源和构建文件放入/usr/src/redhat/{BUILD,SPEC,SRC,SOURCES}.您可以修改.spec文件/usr/src/redhat/SPEC以构建所需的模块以及其余的nginx,也可以手动构建nginx.

你想建立哪个模块?在fedora的nginx.spec中,configure运行时指定了几个模块.这可能就像在这里添加一行一样简单:

./configure \
[snip...]
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_perl_module \
[snip...]

加入任何更改后nginx.spec,您可以建立最终rpmrpmbuild:

rpmbuild -ba nginx.spec

假设包构建没有错误,rpmbuild将保留它 /usr/src/redhat/RPMS/

更新: yum将在更新可用时替换您的nginx包.您可能希望使用与上面相同的过程重建每个新包.但是,如果安全性不是问题,您可以通过在yum配置中添加以下内容(可能/etc/yum.repos.d/${repo}.repo或类似地)将nginx从更新列表中简单排除.确保将其与正确的repo相关联:

exclude=nginx*

或者使用--exclude选项运行yum

yum --exclude=nginx*

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有