RPM und yum
yum
Alle Versionen von Paket auflisten: yum --show-duplicates list <paket>
Bestsimmte Version installieren: Versionsnummer hinten anhängen. yum install httpd-2.4.6-6
Nach Updates suchen: yum check-update
Paket aus lokaler Datei installieren: yum localinstall paket.rpm
Und von URL: yum install -y https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
dnf
Installierte Dateien von Paket anzeigen: dnf repoquery -l podman
rpmrebuild
Spec aus bestehendem RPM extrahieren: rpmrebuild --spec-only ./specfile --package nmap-7.94-1.x86_64.rpm
Dann kann man das specfile bearbeiten und ein neues Paket draus bauen.
sed -i -e "s/^Requires:\s*python\s*>=\s*3.*/Requires: python3 >= 3.6/g" specfile
rpmrebuild --change-spec-whole="cat ./specfile" --package nmap-7.94-1.x86_64.rpm
Interaktives bearbeiten der Specfile, Kurzform: rpmrebuild -ep nmap-7.94-1.x86_64.rpm
RPM-Paket neu bauen / verändern
- Build-Toolchain installier:
dnf install rpmdevtools - Builddir anlegen:
rpmdev-setuptree - Paket mit Sourcen runterladen:
dnf download --source compiz-plugins-extra - RPM auspacken:
rpm -i compiz-plugins-extra-0.8.18-6.fc38.src.rpm - Archiv im Builddir auspacken:
cd ~/rpmbuild/SOURCES && tar -xvjf rpmbuild/SOURCES/compiz-plugins-extra-v0.8.18.tar.bz2 - Änderungen machen
- Neue .bz2 bauen:
cd ~/rpmbuild/SOURCES/ && tar -cvjf compiz-plugins-extra-v0.8.18.tar.bz2 compiz-plugins-extra-v0.8.18/ - Neu bauen und paketieren:
cd ~/rpmbuild && rpmbuild -ba SPECS/compiz-plugins-extra.spec - Fehlende Dependencies nachinstallieren und nochmal bauen:
morph@fedora rpmbuild]$ rpmbuild -ba SPECS/compiz-plugins-extra.spec
setting SOURCE_DATE_EPOCH=1674086400
error: Failed build dependencies:
gtk2-devel is needed by compiz-plugins-extra-1:0.8.18-6.fc38.x86_64
libjpeg-turbo-devel is needed by compiz-plugins-extra-1:0.8.18-6.fc38.x86_64
libnotify-devel is needed by compiz-plugins-extra-1:0.8.18-6.fc38.x86_64
[morph@fedora rpmbuild]$ sudo dnf install gtk2-devel libjpeg-turbo-devel libnotify-devel
[...]
- Pakete liegen dann im RPMS Ordner -> Installation zum testen:
sudo dnf install RPMS/x86_64/compiz-plugins-extra-0.8.18-6.fc38.x86_64.rpm
Version von RPM-Paket bzw. Metadaten finden ohne installieren oder auspacken
https://stackoverflow.com/questions/21495717/rpm-version-number-without-installing-it
Taking an example of sbt.rpm, here is how you may want to extract the information. Note that the package filename itself doesn't show the version and release information.
Get full package name:
$ rpm -qp sbt.rpm
sbt-0.12.2-1.noarch
Get NAME, VERSION, RELEASE and ARCHITECTURE separately:
$ rpm -qp --queryformat '%{NAME}' sbt.rpm
sbt
$ rpm -qp --queryformat '%{VERSION}' sbt.rpm
0.12.2
$ rpm -qp --queryformat '%{RELEASE}' sbt.rpm
1
$ rpm -qp --queryformat '%{ARCH}' sbt.rpm
noarch
Get NAME, VERSION, RELEASE and ARCHITECTURE combined:
$ rpm -qp --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH}' sbt.rpm
sbt-0.12.2-1-noarch
Get only NAME, VERSION:
$ rpm -qp --queryformat '%{NAME}-%{VERSION}' sbt.rpm
sbt-0.12.2