我对 Centos 和其他方面都还很陌生yum
。
- 我如何使用 检索 SRPM
yumdownloader --source
?当我运行命令时,它说未找到 SRPM。我如何添加存储库?我在这里谈论的是 CentOS 官方软件包。 - 下载后,使用什么命令来解压 SRPM 以便我可以编辑文件?
- 最后,一旦我完成修改,重建修改后的源 RPM 的命令是什么?
- 如何从 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