在 CentOS 中构建官方 SRPM。所有步骤

在 CentOS 中构建官方 SRPM。所有步骤

我对 Centos 和其他方面都还很陌生yum

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

答案1

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

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

假设您使用的是 CentOS 5,请在 /etc/yum.repos.d/CentOS-SRPMS.repo 中创建此文件

[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}来创建目录,则假定您有必要的目录。

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

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

rpmbuild -bb /usr/src/redhat/SPECS/your.spec仅构建 RPM

rpmbuild -ba /usr/src/redhat/SPECS/your.spec仅构建 RPM 和 SRPM

  • 如何从 SRPM 创建 RPM?

rpmbuild --rebuild your.src.rpm

如果你需要构建 RPM,你应该考虑使用嘲笑

答案2

[centos-src]
name=CentOS $releasever - $basearch - 源
baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/
gpgcheck=1
gpgkey=file:///etc/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

相关内容