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
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:
- Erhöhung der
Release
Nummer - 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