Construindo SRPMs oficiais no CentOS. Todos os passos

1

Eu sou novo no Centos e yum em geral.

  1. Como eu recupero o SRPM usando yumdownloader --source ? Quando eu executo o comando, ele diz que os SRPMs não foram encontrados. Como adiciono o repositório? Eu estou falando sobre pacotes oficiais do CentOS aqui.
  2. Uma vez baixado, qual é o comando para descompactar o SRPM para que eu possa editar os arquivos?
  3. Por fim, quando terminar de modificar, qual é o comando para reconstruir o RPM de origem modificado?
  4. A partir de um SRPM, como criar um RPM?
por unixman83 02.04.2011 / 01:10

2 respostas

1
  • Como eu recupero o SRPM usando o yumdownloader --source? Quando eu executo o comando, ele diz que os SRPMs não foram encontrados. Como adiciono o repositório? Eu estou falando sobre pacotes oficiais do CentOS aqui.

Este é um problema com o CentOS: link

Assumindo que você é o CentOS 5, crie este arquivo em /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
  • Uma vez baixado, qual é o comando para descompactar o SRPM para que eu possa editar os arquivos?

rpm -ivh your.src.rpm

Isso pressupõe que você tenha diretórios necessários, se você não executar mkdir -p /usr/src/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS} para criá-los.

O arquivo que você normalmente deseja editar é o arquivo de especificação em /usr/src/redhat/SPECS/packagename.spec.

  • Por fim, quando terminar de modificar, qual é o comando para reconstruir o RPM de origem modificado?

rpmbuild -bb /usr/src/redhat/SPECS/your.spec para apenas criar o RPM

rpmbuild -ba /usr/src/redhat/SPECS/your.spec apenas para criar o RPM e um SRPM

  • A partir de um SRPM, como criar um RPM?

rpmbuild --rebuild your.src.rpm

Se você precisa criar RPMs, você deve procurar usar o simulado .

    
por 02.04.2011 / 04:40
0

[centos-src]
name=CentOS $releasever - $basearch - Source
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

ATUALIZAÇÃO: isso também é relevante:

link

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

    
por 02.04.2011 / 01:42