在CentOS中构build正式的SRPM。 所有的步骤

我是Centos和yum新手。

  1. 如何使用yumdownloader --source来检索SRPM? 当我运行命令说,SRPMs找不到。 如何添加存储库? 我在这里谈论官方的CentOS软件包。
  2. 下载后,解压缩SRPM的命令是什么,以便我可以编辑这些文件?
  3. 最后,一旦我完成修改,重build修改后的源代码RPM的命令是什么?
  4. 从SRPM,如何创build一个RPM?

  • 如何使用yumdownloader –source来检索SRPM? 当我运行命令说,SRPMs找不到。 如何添加存储库? 我在这里谈论官方的CentOS软件包。

这是CentOS的一个问题: http : //bugs.centos.org/view.php? id= 1646

假设你是CentOS 5,在/etc/yum.repos.d/CentOS-SRPMS.repo中创build这个文件

 [base-SRPMS] name=CentOS-$releasever - Base SRPMS baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 enabled=1 #released updates [update-SRPMS] name=CentOS-$releasever - Updates SRPMS baseurl=http://mirror.centos.org/centos/$releasever/updates/SRPMS/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 enabled=1 #packages used/produced in the build but not released [addons-SRPMS] name=CentOS-$releasever - Addons SRPMS baseurl=http://mirror.centos.org/centos/$releasever/addons/SRPMS/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 enabled=1 #additional packages that may be useful [extras-SRPMS] name=CentOS-$releasever - Extras SRPMS baseurl=http://mirror.centos.org/centos/$releasever/extras/SRPMS/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 enabled=1 #additional packages that extend functionality of existing packages [centosplus-SRPMS] name=CentOS-$releasever - Plus SRPMS baseurl=http://mirror.centos.org/centos/$releasever/centosplus/SRPMS/ gpgcheck=1 enabled=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 #contrib - packages by Centos Users [contrib-SRPMS] name=CentOS-$releasever - Contrib SRPMS baseurl=http://mirror.centos.org/centos/$releasever/contrib/SRPMS/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 priority=1 
  • 下载后,解压缩SRPM的命令是什么,以便我可以编辑这些文件?

rpm -ivh your.src.rpm

如果你不运行mkdir -p /usr/src/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS}来创build它们,那么假设你有必要的目录。

您通常要编辑的文件是/usr/src/redhat/SPECS/packagename.spec中的spec文件。

  • 最后,一旦我完成修改,重build修改后的源代码RPM的命令是什么?

rpmbuild -bb /usr/src/redhat/SPECS/your.spec来build立RPM

rpmbuild -ba /usr/src/redhat/SPECS/your.spec只是build立RPM和SRPM

  • 从SRPM,如何创build一个RPM?

rpmbuild --rebuild your.src.rpm

如果你需要build立RPM,你应该看看使用模拟 。

  • Yum在CentOS上下载源SRPM
  • 使用模拟在CentOS上构buildSRPM

[centos的-SRC]
name = CentOS $ releasever – $ basearch – Source
baseurl = http://mirror.centos.org/centos/ $ releasever / os / SRPMS /
gpgcheck = 1
gpgkey =文件:///等/ PKI / RPM-GPG / RPM-GPG-KEY-的CentOS-5

yumdownloader --source kernel

rpm -i kernel-arch.src.rpm

更新:这也是相关的:

http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

cd / usr / src / redhat / SPECS
rpmbuild -bp –target =`uname -m` kernel-2.6.spec