Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:rpm-build_vom_source-rpm_centos_7

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:

  • yum-utils - ist im base-Repository von CentOS

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:

  • rpmdevtools - ist im base-Repository von CentOS

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

  • aspell-de-20030222-11.fc20.src.rpm

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

  • ~/rpmbuild

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

  • aspell-0.60.6.1-9.el7.x86_64

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

  • aspell-de-20030222-11.fc20.src.rpm

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

  • /home/builduser/rpmbuild/SPECS/aspell-de.spec

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

  • Changelogs (Änderungshistorie)

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

  • %changelog

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

  • ~/rpmbuild

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

  • ~/rpmbuild

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
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/rpm-build_vom_source-rpm_centos_7.txt · Zuletzt geändert: 2014/09/26 09:01 von klaus