Inhaltsverzeichnis

RPM-Build vom Source-RPM CentOS 7

Mithilfe einer RPM-BUILD-Umgebung können rpm-Pakete selbst erstellt werden. Dies kann aus bereits vorhandenen, sogenannten SOURCE-RPM-Paketen erfolgen, oder durch Erstellung von komplett eigenen Paketen.

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Vorbereitung

Damit rpm-Pakete erstellt werden können, ist es erforderlich eine RPM-BUILD-Umgebung aufzubauen. Wie der Bau einer RPM-BUILD-Umgebung durchgeführt werden kann, kann unter nachfolgendem internen Link nachgelesen bzw. durch Umsetzung der Beschreibung, durchgeführt werden:

Installation

yum-utils

Zur Installation von zusätzlichen Hilfsprogrammen sollte nachfolgendes Paket installiert werden:

Mit nachfolgendem Befehl, werden die benötigten Pakete installiert:

# yum install yum-utils
Loaded plugins: changelog, priorities
base                                                     | 3.6 kB     00:00          
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.31-25.el7_0 will be installed
--> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-25.el7_0.noarch
--> Running transaction check
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed
--> Processing Dependency: python-chardet for package: python-kitchen-1.1.1-5.el7.noarch
--> Running transaction check
---> Package python-chardet.noarch 0:2.0.1-7.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package              Arch         Version                  Repository     Size
================================================================================
Installing:
 yum-utils            noarch       1.1.31-25.el7_0          updates       111 k
Installing for dependencies:
 python-chardet       noarch       2.0.1-7.el7              base          222 k
 python-kitchen       noarch       1.1.1-5.el7              base          267 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 599 k
Installed size: 2.8 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): yum-utils-1.1.31-25.el7_0.noarch.rpm                | 111 kB   00:00     
(2/3): python-kitchen-1.1.1-5.el7.noarch.rpm               | 267 kB   00:00     
(3/3): python-chardet-2.0.1-7.el7.noarch.rpm               | 222 kB   00:00     
--------------------------------------------------------------------------------
Total                                              1.0 MB/s | 599 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-chardet-2.0.1-7.el7.noarch                            1/3 
  Installing : python-kitchen-1.1.1-5.el7.noarch                            2/3 
  Installing : yum-utils-1.1.31-25.el7_0.noarch                             3/3 
  Verifying  : python-chardet-2.0.1-7.el7.noarch                            1/3 
  Verifying  : python-kitchen-1.1.1-5.el7.noarch                            2/3 
  Verifying  : yum-utils-1.1.31-25.el7_0.noarch                             3/3 

Installed:
  yum-utils.noarch 0:1.1.31-25.el7_0                                            

Dependency Installed:
  python-chardet.noarch 0:2.0.1-7.el7    python-kitchen.noarch 0:1.1.1-5.el7   

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welcher Inhalt mit dem Paket installiert wurde.

Paket yum-utils:

# rpm -qil yum-utils
Name        : yum-utils
Version     : 1.1.31
Release     : 25.el7_0
Architecture: noarch
Install Date: Thu 25 Sep 2014 09:35:45 PM CEST
Group       : Development/Tools
Size        : 330964
License     : GPLv2+
Signature   : RSA/SHA256, Tue 12 Aug 2014 09:05:39 PM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : yum-utils-1.1.31-25.el7_0.src.rpm
Build Date  : Tue 12 Aug 2014 08:39:15 PM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://yum.baseurl.org/download/yum-utils/
Summary     : Utilities based around the yum package manager
Description :
yum-utils is a collection of utilities and examples for the yum package
manager. It includes utilities by different authors that make yum easier and
more powerful to use. These tools include: debuginfo-install,
find-repos-of-install, needs-restarting, package-cleanup, repoclosure,
repodiff, repo-graph, repomanage, repoquery, repo-rss, reposync,
repotrack, show-installed, show-changed-rco, verifytree, yumdownloader,
yum-builddep, yum-complete-transaction, yum-config-manager, yum-debug-dump,
yum-debug-restore and yum-groups-manager.
/etc/bash_completion.d
/etc/bash_completion.d/yum-utils.bash
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install
/usr/bin/needs-restarting
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repo-rss
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/show-changed-rco
/usr/bin/show-installed
/usr/bin/verifytree
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
/usr/lib/python2.7/site-packages/yumutils
/usr/lib/python2.7/site-packages/yumutils/__init__.py
/usr/lib/python2.7/site-packages/yumutils/__init__.pyc
/usr/lib/python2.7/site-packages/yumutils/__init__.pyo
/usr/lib/python2.7/site-packages/yumutils/i18n.py
/usr/lib/python2.7/site-packages/yumutils/i18n.pyc
/usr/lib/python2.7/site-packages/yumutils/i18n.pyo
/usr/sbin/yum-complete-transaction
/usr/sbin/yumdb
/usr/share/doc/yum-utils-1.1.31
/usr/share/doc/yum-utils-1.1.31/COPYING
/usr/share/doc/yum-utils-1.1.31/README
/usr/share/doc/yum-utils-1.1.31/yum-util-cli-template
/usr/share/locale/da/LC_MESSAGES/yum-utils.mo
/usr/share/man/man1/debuginfo-install.1.gz
/usr/share/man/man1/find-repos-of-install.1.gz
/usr/share/man/man1/needs-restarting.1.gz
/usr/share/man/man1/package-cleanup.1.gz
/usr/share/man/man1/repo-graph.1.gz
/usr/share/man/man1/repo-rss.1.gz
/usr/share/man/man1/repoclosure.1.gz
/usr/share/man/man1/repodiff.1.gz
/usr/share/man/man1/repomanage.1.gz
/usr/share/man/man1/repoquery.1.gz
/usr/share/man/man1/reposync.1.gz
/usr/share/man/man1/repotrack.1.gz
/usr/share/man/man1/show-changed-rco.1.gz
/usr/share/man/man1/show-installed.1.gz
/usr/share/man/man1/verifytree.1.gz
/usr/share/man/man1/yum-builddep.1.gz
/usr/share/man/man1/yum-config-manager.1.gz
/usr/share/man/man1/yum-debug-dump.1.gz
/usr/share/man/man1/yum-debug-restore.1.gz
/usr/share/man/man1/yum-groups-manager.1.gz
/usr/share/man/man1/yum-utils.1.gz
/usr/share/man/man1/yumdownloader.1.gz
/usr/share/man/man8/yum-complete-transaction.8.gz
/usr/share/man/man8/yumdb.8.gz

rpmdevtools

Zur Installation von zusätzlichen Hilfsprogrammen sollte ebenfalls nachfolgendes Paket installiert werden:

Mit nachfolgendem Befehl, werden die benötigten Pakete installiert:

# yum install rpmdevtools
Loaded plugins: changelog, priorities
Resolving Dependencies
--> Running transaction check
---> Package rpmdevtools.noarch 0:8.3-5.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package              Arch            Version               Repository     Size
================================================================================
Installing:
 rpmdevtools          noarch          8.3-5.el7             base           97 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 97 k
Installed size: 209 k
Is this ok [y/d/N]: y
Downloading packages:
rpmdevtools-8.3-5.el7.noarch.rpm                           |  97 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : rpmdevtools-8.3-5.el7.noarch                                 1/1 
  Verifying  : rpmdevtools-8.3-5.el7.noarch                                 1/1 

Installed:
  rpmdevtools.noarch 0:8.3-5.el7                                                

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welcher Inhalt mit dem Paket installiert wurde.

Paket rpmdevtools:

# rpm -qil rpmdevtools
Name        : rpmdevtools
Version     : 8.3
Release     : 5.el7
Architecture: noarch
Install Date: Thu 25 Sep 2014 10:52:59 PM CEST
Group       : Unspecified
Size        : 214335
License     : GPLv2+ and GPLv2
Signature   : RSA/SHA256, Fri 04 Jul 2014 06:50:50 AM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : rpmdevtools-8.3-5.el7.src.rpm
Build Date  : Mon 09 Jun 2014 11:42:01 PM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : https://fedorahosted.org/rpmdevtools/
Summary     : RPM Development Tools
Description :
This package contains scripts and (X)Emacs support files to aid in
development of RPM packages.
rpmdev-setuptree    Create RPM build tree within user's home directory
rpmdev-diff         Diff contents of two archives
rpmdev-newspec      Creates new .spec from template
rpmdev-rmdevelrpms  Find (and optionally remove) "development" RPMs
rpmdev-checksig     Check package signatures using alternate RPM keyring
rpminfo             Print information about executables and libraries
rpmdev-md5/sha*     Display checksums of all files in an archive file
rpmdev-vercmp       RPM version comparison checker
spectool            Expand and download sources and patches in specfiles
rpmdev-wipetree     Erase all files within dirs created by rpmdev-setuptree
rpmdev-extract      Extract various archives, "tar xvf" style
rpmdev-bumpspec     Bump revision in specfile
...and many more.
/etc/bash_completion.d
/etc/bash_completion.d/rpmdevtools.bash-completion
/etc/rpmdevtools
/etc/rpmdevtools/devscripts.conf
/etc/rpmdevtools/newspec.conf
/etc/rpmdevtools/rmdevelrpms.conf
/etc/rpmdevtools/spectemplate-R.spec
/etc/rpmdevtools/spectemplate-dummy.spec
/etc/rpmdevtools/spectemplate-lib.spec
/etc/rpmdevtools/spectemplate-minimal.spec
/etc/rpmdevtools/spectemplate-ocaml.spec
/etc/rpmdevtools/spectemplate-perl.spec
/etc/rpmdevtools/spectemplate-php-pear.spec
/etc/rpmdevtools/spectemplate-python.spec
/etc/rpmdevtools/spectemplate-ruby.spec
/etc/rpmdevtools/template.init
/usr/bin/annotate-output
/usr/bin/checkbashisms
/usr/bin/licensecheck
/usr/bin/manpage-alert
/usr/bin/rpmdev-bumpspec
/usr/bin/rpmdev-checksig
/usr/bin/rpmdev-cksum
/usr/bin/rpmdev-diff
/usr/bin/rpmdev-extract
/usr/bin/rpmdev-md5
/usr/bin/rpmdev-newinit
/usr/bin/rpmdev-newspec
/usr/bin/rpmdev-packager
/usr/bin/rpmdev-rmdevelrpms
/usr/bin/rpmdev-setuptree
/usr/bin/rpmdev-sha1
/usr/bin/rpmdev-sha224
/usr/bin/rpmdev-sha256
/usr/bin/rpmdev-sha384
/usr/bin/rpmdev-sha512
/usr/bin/rpmdev-sort
/usr/bin/rpmdev-sum
/usr/bin/rpmdev-vercmp
/usr/bin/rpmdev-wipetree
/usr/bin/rpminfo
/usr/bin/rpmls
/usr/bin/spectool
/usr/share/doc/rpmdevtools-8.3
/usr/share/doc/rpmdevtools-8.3/COPYING
/usr/share/doc/rpmdevtools-8.3/NEWS
/usr/share/emacs/site-lisp/site-start.d/rpmdev-init.el
/usr/share/emacs/site-lisp/site-start.d/rpmdev-init.elc
/usr/share/man/man1/annotate-output.1.gz
/usr/share/man/man1/checkbashisms.1.gz
/usr/share/man/man1/licensecheck.1.gz
/usr/share/man/man1/manpage-alert.1.gz
/usr/share/man/man1/rpmdev-bumpspec.1.gz
/usr/share/man/man1/rpmdev-diff.1.gz
/usr/share/man/man1/rpmdev-extract.1.gz
/usr/share/man/man1/rpmdev-newinit.1.gz
/usr/share/man/man1/rpmdev-newspec.1.gz
/usr/share/man/man1/rpmdev-packager.1.gz
/usr/share/man/man1/spectool.1.gz
/usr/share/man/man8/rpmdev-rmdevelrpms.8.gz
/usr/share/rpmdevtools
/usr/share/rpmdevtools/rpmdev-init.el

Herunterladen

Bevor ein RPM-Source-Paket heruntergeladen werden sollte, sollte zuerst der Benutzer gewechselt werden. Auch ein Benutzer ohne Super-Benutzer-Rechte - root-Rechten, kann ein RPM-Source-Paket herunterladen.

Um vom Benutzer root zur Identität des Benutzer builduser zu wechseln, kann nachfolgender Befehl genutzt werden:

# su - builduser

Anschließend kann, falls dies nicht bereits der Fall sein sollte, mit nachfolgendem Befehl, in das Home-Verzeichnis des Benutzer builduser gewechselt werden:

$ cd ~/

Repository

Um ein in einem Repository enthaltenes Paket, z.B. aus dem CentOS-Repository, als RPM-Source-Paket herunterzuladen, kann nachfolgender Befehl verwendet werden.

:!: HINWEIS - Als Beispiel, soll hier das rpm-Paket - aspell als RPM-Source-Paket herunterzuladen werden:

$ yumdownloader --source aspell
Loaded plugins: priorities
Enabling base-source repository
Enabling updates-source repository
Enabling extras-source repository
aspell-0.60.6.1-9.el7.src.rpm                              | 1.8 MB   00:02

Anschließend sollte im Home-Verzeichnis des Benutzers builduser das RPM-Source-Paket enthalten sein, was mit nachfolgendem Befehl überprüft werden kann:

$ ls -l ~/*.rpm
-rw-rw-r-- 1 builduser builduser 1886324 Jul  5 14:47 /home/builduser/aspell-0.60.6.1-9.el7.src.rpm

Andere Quellen

Falls ein RPM-Source-Paket nicht in einem Repository (z.B. der eigenen Distribution) verfügbar ist, kann dies auch aus anderen, Distributionsähnlichen Quellen, heruntergeladen werden.

Möglich wären z.B. für CentOS ab der Version 7 die Quellen der RPM-Source-Pakete von Fedora ab der Version 20.

Als Beispiel soll hier das RPM-Source-Paket von aspell-de aus nachfolgendem externen Link heruntergeladen werden

$ wget http://ftp.halifax.rwth-aachen.de//fedora/linux/releases/20/Everything/source/SRPMS/a/
aspell-de-20030222-11.fc20.src.rpm
--2014-09-25 22:10:16--  http://ftp.halifax.rwth-aachen.de//fedora/linux/releases/20/Everything
/source/SRPMS/a/aspell-de-20030222-11.fc20.src.rpm
Resolving ftp.halifax.rwth-aachen.de (ftp.halifax.rwth-aachen.de)... 137.226.34.42
Connecting to ftp.halifax.rwth-aachen.de (ftp.halifax.rwth-aachen.de)|137.226.34.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 281324 (275K) [application/x-redhat-package-manager]
Saving to: ‘aspell-de-20030222-11.fc20.src.rpm’

100%[======================================>] 281,324      917KB/s   in 0.3s   

2014-09-25 22:10:17 (917 KB/s) - ‘aspell-de-20030222-11.fc20.src.rpm’ saved [281324/281324]

Anschließend sollte im Home-Verzeichnis des Benutzers builduser das RPM-Source-Paket enthalten sein, was mit nachfolgendem Befehl überprüft werden kann:

$ ls -l ~/*.rpm
-rw-rw-r-- 1 builduser builduser  281324 Aug 14  2013 /home/builduser/aspell-de-20030222-11.fc20.src.rpm

(Re)BUILD

Nachfolgend soll beschrieben werden, wie das unter dem internen Link

heruntergeladene RPM-Source-Paket

unter CentOS in der Version 7 neu gebaut werden kann.

Installation: RPM-Source-Paket

Als ersten Schritt beim bauen eines rpm-Paketes aus einem RPM-Source-Paket, ist es erforderlich dieses unter den Benutzer, der für das bauen von rpm-Paketen verwendet werden soll, hier builduser, zu installieren.

Falls nicht schon geschehen, muss jetzt vom Benutzer root zur Identität des Benutzer builduser gewechselt werden, dazu kann nachfolgender Befehl genutzt werden:

# su - builduser

Anschließend kann mit nachfolgendem Befehl, das RPM-Source-Paket unter dem Benutzer builduser aus dem Verzeichnis in dem dieses Paket heruntergeladen wurde, hier ~/ (Home-Verzeichis) von builduser, installiert werden:

$ rpm -i ~/aspell-de-20030222-11.fc20.src.rpm 
warning: /home/builduser/aspell-de-20030222-11.fc20.src.rpm: Header V3 RSA/SHA256 
Signature, key ID 246110c1: NOKEY
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root

:!: HINWEIS - Evtl. Warnmeldungen können ignoriert werden, solange keine Fehlermeldungen erscheinen!

Nach dem erfolgreichen installieren des RPM-Source-Paket unter dem Benutzer builduser, hat sich das Verzeichnis

wie mit nachfolgendem Befehl dargestellt, verändert bzw. gefüllt:

$ find ~/rpmbuild/
/home/builduser/rpmbuild/
/home/builduser/rpmbuild/BUILD
/home/builduser/rpmbuild/RPMS
/home/builduser/rpmbuild/SOURCES
/home/builduser/rpmbuild/SOURCES/aspell6-de-20030222-1.tar.bz2
/home/builduser/rpmbuild/SPECS
/home/builduser/rpmbuild/SPECS/aspell-de.spec
/home/builduser/rpmbuild/SRPMS

:!: WICHTIG - Die Verzeichnisstruktur sollte die aufgeführten Dateien zwingend enthalten!

Verzeichnispfad mit Datei Beschreibung
/home/builduser/rpmbuild/SOURCES/aspell6-de-20030222-1.tar.bz2
Quellcode im tar.gz-Archiv
/home/builduser/rpmbuild/SPECS/aspell-de.spec
Bauanleitung *.spec-Datei

Installation: BUILD-Abhängigkeiten

Um ein RPM-Source-Paket neu bauen zu können, sind evtl. gewisse BUILD-Abhängigkeiten noch aufzulösen, bzw. zu installieren.

Diese Abhängigkeiten (Dependencies) sind nur zum Bau des rpm-Paktes erforderlich, nicht jedoch zwingend später bei der Installation des rpm-Paketes auf weiteren Systemen, außerhalb der RPM-BUILD-Umgebung.

Dazu muss vom Benutzer builduser wieder zur Identität des Benutzer root zurück gewechselt werden, dazu kann nachfolgender Befehl genutzt werden:

$ exit
logout

:!: WICHTIG - Nur der Benutzer root kann im Betriebssystem rpm-Pakete installieren!

Um überprüfen zu können, ob alle Abhängigkeiten (Dependencies) zum Bau des rpm-Paktes bereits vorhanden bzw. installiert sind, kann nachfolgender Befehl verwendet werden, welcher ggf. die zum Bau des rpm-Paktes erforderlich, zusätzlichen rpm-Paket-Abhängigkeiten (Dependencies) gleich installieren würde:

# yum-builddep /home/builduser/aspell-de-20030222-11.fc20.src.rpm 
Loaded plugins: priorities
Enabling base-source repository
Enabling extras-source repository
Enabling updates-source repository
Getting requirements for 50:aspell-de-20030222-11.fc20.src
 --> 12:aspell-0.60.6.1-9.el7.x86_64
--> Running transaction check
---> Package aspell.x86_64 12:0.60.6.1-9.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package         Arch            Version                    Repository     Size
================================================================================
Installing:
 aspell          x86_64          12:0.60.6.1-9.el7          base          686 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 686 k
Installed size: 3.2 M
Is this ok [y/d/N]: y
Downloading packages:
aspell-0.60.6.1-9.el7.x86_64.rpm                           | 686 kB   00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 12:aspell-0.60.6.1-9.el7.x86_64                              1/1 
  Verifying  : 12:aspell-0.60.6.1-9.el7.x86_64                              1/1 

Installed:
  aspell.x86_64 12:0.60.6.1-9.el7                                               

Complete!

Es hat sich herausgestellt, das das rpm-Paket

als BUILD-Abhängigkeiten zum RPM-Source-Paket

noch installiert werden musste!

Konfiguration: SPEC-Datei

Falls Änderungen an der Art und Weise wie der Bau des rpm-Paketes erfolgen soll erforderlich oder gewünscht sein sollten, sind dies in der Konfigurationsdatei

durchzuführen.

Bevor Änderungen an der Konfigurationsdatei (SPEC-Datei) vorgenommen wetden, muss jetzt vom Benutzer root zur Identität des Benutzer builduser gewechselt werden, dazu kann wieder nachfolgender Befehl genutzt werden:

# su - builduser

Eine meist durchgeführte Änderung an der Konfigurationsdatei (SPEC-Datei), ist die Ergänzung des

welche am Ende der Konfigurationsdatei (SPEC-Datei) steht und zwingend mit dem Schlüsselwort

beginnt.

Falls das Schlüsselwort in der Konfigurationsdatei (SPEC-Datei) enthalten ist, können mit nachfolgendem Befehl zwei Änderungen richtig formatiert durchgeführt werden:

  1. Erhöhung der Release Nummer
  2. Ergänzung des %changelog Abschnittes um einen weiteren formatierten Eintrag

Nachfolgendes Beispiel zeigt die Anwendung des Befehls:

$ rpmdev-bumpspec -c "Inital RPM-(Re)BUILD for CentOS 7." -u "Klaus Tachtler <klaus@tachtler.net>" ~/rpmbuild/SPECS/aspell-de.spec
Parameter Beschreibung
-c "Inital RPM-(Re)BUILD for CentOS 7."
Kommentar innerhalb des Changelog-Eintrags
-u "Klaus Tachtler <klaus@tachtler.net>"
Angabe durch wen der (Re)BUILD erfolgt ist
~/rpmbuild/SPECS/aspell-de.spec
Pfad und Name der zu ändernden SPEC-Datei

Vorher: (Nur relevante Ausschnitte)

...
Release: 11%{?dist}
...
%changelog
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 50:20030222-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
...

Nachher: (Nur relevante Ausschnitte)

...
Release: 12%{?dist}
...
%changelog
* Thu Sep 25 2014 Klaus Tachtler <klaus@tachtler.net> - 50:20030222-12
- Inital RPM-(Re)BUILD for CentOS 7.
...

Durchführung: (Re)BUILD - OHNE Signatur

Zur Durchführung des (Re)BUILD - OHNE Signatur des RPM-Source-Paketes, kann nun nachfolgender Befehl, als Benutzer builduser, ausgeführt werden:

(Nur relevanter Ausschnitt)

$ rpmbuild -ba ~/rpmbuild/SPECS/aspell-de.spec
...
...
+ exit 0

:!: WICHTIG - Es wurde nur mit + exit 0, das rpm-Paket erfolgreich gebaut!

Parameter Beschreibung
-ba
Baue (Erstelle) binary (RPMS) und source (SOURCE) Pakete
~/rpmbuild/SPECS/aspell-de.spec
Pfad und Name der zum Bau zu verwendenden SPEC-Datei

Überprüfung: (Re)BUILD - OHNE Signatur

Um zu überprüfen, ob der (Re)BUILD - OHNE Signatur des RPM-Source-Paketes erfolgreich verlaufen ist, kann nun zusätzlich ein Blick in das Verzeichnis

mit nachfolgender Befehl durchgeführt werden:

$ find ~/rpmbuild/
/home/builduser/rpmbuild/
/home/builduser/rpmbuild/BUILD
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/doc
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/doc/notes.txt
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/info
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/swiss.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/README
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/configure
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de-common.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_phonet.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_affix.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Copyright
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Makefile.pre
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/german.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/deutsch.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/COPYING
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Makefile
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de-common.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT-only.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH-only.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE-only.rws
/home/builduser/rpmbuild/RPMS
/home/builduser/rpmbuild/RPMS/x86_64
/home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
/home/builduser/rpmbuild/SOURCES
/home/builduser/rpmbuild/SOURCES/aspell6-de-20030222-1.tar.bz2
/home/builduser/rpmbuild/SPECS
/home/builduser/rpmbuild/SPECS/aspell-de.spec
/home/builduser/rpmbuild/SRPMS
/home/builduser/rpmbuild/SRPMS/aspell-de-20030222-12.el7.centos.src.rpm
/home/builduser/rpmbuild/BUILDROOT

:!: WICHTIG - Die Verzeichnisstruktur sollte die aufgeführte Datei zwingend enthalten!

Verzeichnispfad mit Datei Beschreibung
/home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
rpm-Paket

Der nachfolgendem Befehl kann zur inhaltlichen Überprüfung des rpm-Pakets verwendet werden:

(Nur relevanter Ausschnitt)

$ less ~/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
Name        : aspell-de
Epoch       : 50
Version     : 20030222
Release     : 12.el7.centos
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Text
Size        : 11372881
License     : GPLv2
Signature   : (none)
Source RPM  : aspell-de-20030222-12.el7.centos.src.rpm
Build Date  : Thu 25 Sep 2014 11:24:11 PM CEST
Build Host  : buildhost.tachtler.net
Relocations : (not relocatable)
URL         : http://aspell.net/
Summary     : German dictionaries for Aspell
Description :
Provides the word list/dictionaries for the following: German, Swiss German
* Thu Sep 25 2014 Klaus Tachtler <klaus@tachtler.net> - 50:20030222-12
- Inital RPM-(Re)BUILD for CentOS 7.

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 50:20030222-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
...
...
...
-rw-r--r--    1 root    root              9358000 Sep 25 23:24 /usr/lib64/aspell-0.60/de-common.rws
-rw-r--r--    1 root    root                  115 Sep 25 23:24 /usr/lib64/aspell-0.60/de.dat
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/de.multi
-rw-r--r--    1 root    root               664752 Sep 25 23:24 /usr/lib64/aspell-0.60/de_AT-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_AT.multi
-rw-r--r--    1 root    root               655248 Sep 25 23:24 /usr/lib64/aspell-0.60/de_CH-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_CH.multi
-rw-r--r--    1 root    root               649648 Sep 25 23:24 /usr/lib64/aspell-0.60/de_DE-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_DE.multi
-rw-r--r--    1 root    root                14042 Sep 25 23:24 /usr/lib64/aspell-0.60/de_affix.dat
-rw-r--r--    1 root    root                12479 Sep 25 23:24 /usr/lib64/aspell-0.60/de_phonet.dat
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/deutsch.alias
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/german.alias
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/swiss.alias
drwxr-xr-x    2 root    root                    0 Sep 25 23:24 /usr/share/doc/aspell-de-20030222
-rw-r--r--    1 root    root                18009 Nov  4  2004 /usr/share/doc/aspell-de-20030222/COPYING

Durchführung: (Re)BUILD - MIT Signatur

Zur Durchführung des (Re)BUILD - MIT Signatur des RPM-Source-Paketes, kann nun nachfolgender Befehl, als Benutzer builduser, ausgeführt werden:

(Nur relevanter Ausschnitt)

$ rpmbuild -ba --sign ~/rpmbuild/SPECS/aspell-de.spec
...
...
+ exit 0
Enter pass phrase: 
Pass phrase is good.
/home/builduser/rpmbuild/SRPMS/aspell-de-20030222-12.el7.centos.src.rpm:
/home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm:

:!: WICHTIG - Es wurde nur mit + exit 0, das rpm-Paket erfolgreich gebaut!

:!: WICHTIG - Es ist die Eingabe einer Pass phrase zur Verwendung des GPG-Schlüssels erforderlich!

Parameter Beschreibung
-ba
Baue (Erstelle) binary (RPMS) und source (SOURCE) Pakete
--sign
MIT Signatur RPM-Build-Umgebung aufbauen CentOS 7 - ~/.rpmmacros
~/rpmbuild/SPECS/aspell-de.spec
Pfad und Name der zum Bau zu verwendenden SPEC-Datei

Überprüfung: (Re)BUILD - MIT Signatur

Um zu überprüfen, ob der (Re)BUILD - MIT Signatur des RPM-Source-Paketes erfolgreich verlaufen ist, kann nun zusätzlich ein Blick in das Verzeichnis

mit nachfolgender Befehl durchgeführt werden:

$ find ~/rpmbuild/
/home/builduser/rpmbuild/
/home/builduser/rpmbuild/BUILD
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/doc
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/doc/notes.txt
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/info
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/swiss.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/README
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/configure
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de-common.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_phonet.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_affix.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Copyright
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de.dat
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Makefile.pre
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/german.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/deutsch.alias
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE.multi
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH-only.cwl
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/COPYING
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/Makefile
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de-common.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_AT-only.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_CH-only.rws
/home/builduser/rpmbuild/BUILD/aspell6-de-20030222-1/de_DE-only.rws
/home/builduser/rpmbuild/RPMS
/home/builduser/rpmbuild/RPMS/x86_64
/home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
/home/builduser/rpmbuild/SOURCES
/home/builduser/rpmbuild/SOURCES/aspell6-de-20030222-1.tar.bz2
/home/builduser/rpmbuild/SPECS
/home/builduser/rpmbuild/SPECS/aspell-de.spec
/home/builduser/rpmbuild/SRPMS
/home/builduser/rpmbuild/SRPMS/aspell-de-20030222-12.el7.centos.src.rpm
/home/builduser/rpmbuild/BUILDROOT

:!: WICHTIG - Die Verzeichnisstruktur sollte die aufgeführte Datei zwingend enthalten!

Verzeichnispfad mit Datei Beschreibung
/home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
rpm-Paket

Der nachfolgendem Befehl kann zur inhaltlichen Überprüfung des rpm-Pakets verwendet werden:

(Nur relevanter Ausschnitt)

$ less ~/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm
Name        : aspell-de
Epoch       : 50
Version     : 20030222
Release     : 12.el7.centos
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Text
Size        : 11372881
License     : GPLv2
Signature   : RSA/SHA1, Thu 25 Sep 2014 11:49:42 PM CEST, Key ID 12a452894a262d88
Source RPM  : aspell-de-20030222-12.el7.centos.src.rpm
Build Date  : Thu 25 Sep 2014 11:49:22 PM CEST
Build Host  : buildjost.tachtler.net
Relocations : (not relocatable)
URL         : http://aspell.net/
Summary     : German dictionaries for Aspell
Description :
Provides the word list/dictionaries for the following: German, Swiss German
* Thu Sep 25 2014 Klaus Tachtler <klaus@tachtler.net> - 50:20030222-12
- Inital RPM-(Re)BUILD for CentOS 7.

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 50:20030222-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
...
...
...
-rw-r--r--    1 root    root              9358000 Sep 25 23:24 /usr/lib64/aspell-0.60/de-common.rws
-rw-r--r--    1 root    root                  115 Sep 25 23:24 /usr/lib64/aspell-0.60/de.dat
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/de.multi
-rw-r--r--    1 root    root               664752 Sep 25 23:24 /usr/lib64/aspell-0.60/de_AT-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_AT.multi
-rw-r--r--    1 root    root               655248 Sep 25 23:24 /usr/lib64/aspell-0.60/de_CH-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_CH.multi
-rw-r--r--    1 root    root               649648 Sep 25 23:24 /usr/lib64/aspell-0.60/de_DE-only.rws
-rw-r--r--    1 root    root                   96 Sep 25 23:24 /usr/lib64/aspell-0.60/de_DE.multi
-rw-r--r--    1 root    root                14042 Sep 25 23:24 /usr/lib64/aspell-0.60/de_affix.dat
-rw-r--r--    1 root    root                12479 Sep 25 23:24 /usr/lib64/aspell-0.60/de_phonet.dat
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/deutsch.alias
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/german.alias
-rw-r--r--    1 root    root                   75 Sep 25 23:24 /usr/lib64/aspell-0.60/swiss.alias
drwxr-xr-x    2 root    root                    0 Sep 25 23:24 /usr/share/doc/aspell-de-20030222
-rw-r--r--    1 root    root                18009 Nov  4  2004 /usr/share/doc/aspell-de-20030222/COPYING

Installation

RPM-Paket

Abschließend muss vom Benutzer builduser wieder zur Identität des Benutzer root zurück gewechselt werden, dazu kann nachfolgender Befehl genutzt werden:

$ exit
logout

:!: WICHTIG - Nur der Benutzer root kann im Betriebssystem rpm-Pakete installieren!

Die Installation des neu gebauten rpm-Pakets kann mit nachfolgendem Befehl durchgeführt werden:

# yum localinstall /home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm 
Loaded plugins: changelog, priorities
Examining /home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm: 50:aspell-de-20030222-12.el7.centos.x86_64
Marking /home/builduser/rpmbuild/RPMS/x86_64/aspell-de-20030222-12.el7.centos.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package aspell-de.x86_64 50:20030222-12.el7.centos will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package   Arch   Version        Repository                                Size
================================================================================
Installing:
 aspell-de x86_64 50:20030222-12.el7.centos
                                 /aspell-de-20030222-12.el7.centos.x86_64  11 M

Transaction Summary
================================================================================
Install  1 Package

Total size: 11 M
Installed size: 11 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 50:aspell-de-20030222-12.el7.centos.x86_64                   1/1 
  Verifying  : 50:aspell-de-20030222-12.el7.centos.x86_64                   1/1 

Installed:
  aspell-de.x86_64 50:20030222-12.el7.centos                                    

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welcher Inhalt mit dem Paket installiert wurde.

Paket yum-utils:

# rpm -qil aspell-de
Name        : aspell-de
Epoch       : 50
Version     : 20030222
Release     : 12.el7.centos
Architecture: x86_64
Install Date: Fri 26 Sep 2014 12:02:18 AM CEST
Group       : Applications/Text
Size        : 11372881
License     : GPLv2
Signature   : RSA/SHA1, Thu 25 Sep 2014 11:49:42 PM CEST, Key ID 12a452894a262d88
Source RPM  : aspell-de-20030222-12.el7.centos.src.rpm
Build Date  : Thu 25 Sep 2014 11:49:22 PM CEST
Build Host  : buildhost.tachtler.net
Relocations : (not relocatable)
URL         : http://aspell.net/
Summary     : German dictionaries for Aspell
Description :
Provides the word list/dictionaries for the following: German, Swiss German
/usr/lib64/aspell-0.60/de-common.rws
/usr/lib64/aspell-0.60/de.dat
/usr/lib64/aspell-0.60/de.multi
/usr/lib64/aspell-0.60/de_AT-only.rws
/usr/lib64/aspell-0.60/de_AT.multi
/usr/lib64/aspell-0.60/de_CH-only.rws
/usr/lib64/aspell-0.60/de_CH.multi
/usr/lib64/aspell-0.60/de_DE-only.rws
/usr/lib64/aspell-0.60/de_DE.multi
/usr/lib64/aspell-0.60/de_affix.dat
/usr/lib64/aspell-0.60/de_phonet.dat
/usr/lib64/aspell-0.60/deutsch.alias
/usr/lib64/aspell-0.60/german.alias
/usr/lib64/aspell-0.60/swiss.alias
/usr/share/doc/aspell-de-20030222
/usr/share/doc/aspell-de-20030222/COPYING