|
|
| (4 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| * Ein '''RPM-Paket''' ist ein Paketformat, das in Red Hat-basierten Linux-Distributionen wie Fedora und SUSE verwendet wird. | | *[[rpm Paket Basis]] (x) |
| * Um ein RPM-Paket zu erstellen, benötigen Sie die folgenden Komponenten: | | *[[rpm Paket erstellen Hello World]] (x) |
| * '''sudo -i'''
| | *[[RPM Paket erstellen aus einem Git Repository]] |
| * '''dnf install fedora-packager rpmdevtools gcc'''
| | *[[rpm Paket erstellen Apache2]] |
| | |
| = Anlegen der Entwicklungsumgebung =
| |
| * '''rpmdev-setuptree'''
| |
| * Dieser Befehl ist ein Shell-Skript, welches eine Ordnerstruktur im Homeverzeichnis des Benutzers anlegt
| |
| | |
| rpmbuild/
| |
| ├── BUILD
| |
| ├── BUILDROOT
| |
| ├── RPMS
| |
| ├── SOURCES
| |
| ├── SPECS
| |
| └── SRPMS
| |
| | |
| * Unter ''SOURCES'' liegt der Source-Code in der Form ''<paket-name>-<versions-nummer>.tar.gz''
| |
| * In ''SPECS'' gibt man zusätzliche Paketinformationen wie Paketname, Versionsnummer, Beschreibung, etc. in einer ''.spec''-Datei an.
| |
| * Der Name des komprimierten Programm-Codes sollte mit denen in der ''.spec''-Datei übereinstimmen.
| |
| * Nach dem Erstellen des Pakets liegt das ''.rpm''-Paket unter ''RPMS''
| |
| | |
| = Herunterladen des Probe-Quellcodes =
| |
| | |
| * '''cd SOURCES'''
| |
| * Wir laden ein Testprogramm, welches "Hello, world!" auf die Kommandozeile schreibt
| |
| * '''wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz'''
| |
| | |
| = Paketspezifikationen =
| |
| * '''cd ../SPECS'''
| |
| * Eine Vorlage für die ''.spec''-Datei, kann man sich mit dem folgenden Befehl generieren:
| |
| * '''rpmdev-newspec --macros hello.spec'''
| |
| * Diese sollte man noch manuell anpassen
| |
| * '''vim hello.spec'''
| |
| | |
| Name: hello
| |
| Version: 2.10
| |
| Release: 1%{?dist}
| |
| Summary: The "Hello World" program from GNU
| |
| License: GPLv3+
| |
| URL: http://ftp.gnu.org/gnu/hello
| |
| Source0: https://ftp.gnu.org/gnu/hello/hello-%{version}.tar.gz
| |
|
| |
| BuildRequires: gettext
| |
|
| |
| Requires(post): info
| |
| Requires(preun): info
| |
|
| |
| %description
| |
| The "Hello World" program, done with all bells and whistles of a proper FOSS
| |
| project, including configuration, build, internationalization, help files, etc.
| |
|
| |
| %prep
| |
| %autosetup
| |
|
| |
| %build
| |
| %configure
| |
| %make_build
| |
|
| |
| %install
| |
| %make_install
| |
| %find_lang %{name}
| |
| rm -f %{buildroot}/%{_infodir}/dir
| |
|
| |
| %post
| |
| /sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :
| |
|
| |
| %preun
| |
| if [ $1 = 0 ] ; then
| |
| /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
| |
| fi
| |
|
| |
| %files -f %{name}.lang
| |
| %{_mandir}/man1/hello.1.*
| |
| %{_infodir}/hello.info.*
| |
| %{_bindir}/hello
| |
|
| |
| %doc AUTHORS ChangeLog NEWS README THANKS TODO
| |
| %license COPYING
| |
|
| |
| %changelog
| |
| * Tue Sep 06 2011 The Coon of Ty <Ty@coon.org> - 2.8-1
| |
| - Initial version of the package
| |
| | |
| = Bauen des Paketes =
| |
| | |
| * Aus dem ''SPEC''-Verzeichnis aus kann man nun das ''.rpm''-Paket erstellen
| |
| * '''rpmbuild -ba hello.spec'''
| |
| * '''ls ../RPMS/x86_64/'''
| |
| | |
| '''hello-2.10-1.fc36.x86_64.rpm''' hello-debuginfo-2.10-1.fc36.x86_64.rpm hello-debugsource-2.10-1.fc36.x86_64.rp
| |
| | |
| = Testen =
| |
| | |
| * '''rpmlint hello-2.10-1.fc36.x86_64.rpm'''
| |
| ========================================================================= rpmlint session starts =========================================================================
| |
| rpmlint: 2.4.0
| |
| configuration:
| |
| /usr/lib/python3.10/site-packages/rpmlint/configdefaults.toml
| |
| /etc/xdg/rpmlint/fedora-legacy-licenses.toml
| |
| /etc/xdg/rpmlint/fedora-spdx-licenses.toml
| |
| /etc/xdg/rpmlint/fedora.toml
| |
| /etc/xdg/rpmlint/scoring.toml
| |
| /etc/xdg/rpmlint/users-groups.toml
| |
| /etc/xdg/rpmlint/warn-on-functions.toml
| |
| checks: 31, packages: 1
| |
|
| |
| hello.x86_64: W: incoherent-version-in-changelog 2.8-1 ['2.10-1.fc36', '2.10-1']
| |
| hello.x86_64: W: file-not-utf8 /usr/share/doc/hello/THANKS
| |
| ========================================== 1 packages and 0 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 0.3 s ==========================================
| |
| | |
| * '''dnf install ./hello-2.10-1.fc36.x86_64.rpm'''
| |
| * '''hello'''
| |
| | |
| Hello, world!
| |