Wohin gehen installierte RPMs?


27

Ich lade und installiere Pakete auf meinem Red Hat Enterprise Linux Server 6-Computer mithilfe des YUM- Paketmanagers im Befehlszeilenmodus.

Wenn ich apk- Dateien auf meinem Android- Handy installiere , gehen sie in das /data/appVerzeichnis. Ich frage mich, wo RHEL6 die installierten rpm- Dateien aufbewahrt.

Antworten:


26

Yum verwaltet einen Cache mit den RPMs, die es hier herunterlädt:

/var/cache/yum/<you architecture>/<OS version>/

Zum Beispiel ist meine Box Fedora 14, x86_64 Architektur, also habe ich folgendes:

$ ls /var/cache/yum/x86_64/14/
adobe-linux-i386        lamolabs                                  rpmfusion-nonfree
adobe-linux-x86_64      lamolabs-noarch                           rpmfusion-nonfree-debuginfo
Dropbox                 nautilus-flickr-uploader                  rpmfusion-nonfree-rawhide-debuginfo
fedora                  qm                                        rpmfusion-nonfree-source
...
...

Die RPMs, die installiert werden, sind im Grunde genommen wie eine zip- oder tar-Datei. Der Inhalt dieser Dateien wird also in das System geschrieben, und RPM verwaltet eine Datenbank mit den installierten Paketen. Die RPM "Datenbank" befindet sich in diesem Verzeichnis:

$ ls /var/lib/rpm
Basenames     __db.002  Dirnames     Installtid    Packages        Pubkeys         Sha1header
Conflictname  __db.003  Filedigests  Name          Providename     Requirename     Sigmd5
__db.001      __db.004  Group        Obsoletename  Provideversion  Requireversion  Triggername

Mit diesen Befehlen können Sie sehen, wo Dateien pro RPM installiert werden.

Welche Dateien befinden sich in einem installierten RPM?

$ rpm -ql rpm
/bin/rpm
/etc/rpm
/usr/bin/rpm2cpio
/usr/bin/rpmdb
/usr/bin/rpmquery
/usr/bin/rpmsign
/usr/bin/rpmverify
/usr/lib/rpm
/usr/lib/rpm/macros
/usr/lib/rpm/platform
/usr/lib/rpm/platform/amd64-linux
...
...

Paketinformationen zu einer bestimmten RPM

$ rpm -qi rpm
Name        : rpm                          Relocations: (not relocatable)
Version     : 4.8.1                             Vendor: Fedora Project
Release     : 7.fc14                        Build Date: Tue 04 Oct 2011 03:49:08 AM EDT
Install Date: Tue 25 Oct 2011 09:36:34 AM EDT      Build Host: x86-05.phx2.fedoraproject.org
Group       : System Environment/Base       Source RPM: rpm-4.8.1-7.fc14.src.rpm
Size        : 2035701                          License: GPLv2+
Signature   : RSA/SHA256, Tue 04 Oct 2011 12:14:48 PM EDT, Key ID 421caddb97a1071f
Packager    : Fedora Project
URL         : http://www.rpm.org/
Summary     : The RPM package management system
Description :
The RPM Package Manager (RPM) is a powerful command line driven
package management system capable of installing, uninstalling,
verifying, querying, and updating software packages. Each software
package consists of an archive of files along with information about
the package like its version, a description, etc.

Meine Güte, es war so schwer für mich zu verstehen! weil Sie als Beispiel rpm angegeben haben;) Wenn Sie also sehen möchten, wo Dateien für das Paket java-11-openjdk-src installiert sind , verwenden Sie rpm -ql java-11-openjdk-src;)
Zeile

1
@Line - Entschuldigung, RPM ist ebenfalls ein legitimes Paket. Es ist auch sicher, b / c jeder hat es, das ist der Hauptgrund, warum ich es ausgewählt habe.
slm

1
Ich verstehe, es war nur verwirrend, weil ich das Ding nicht kannte. Hoffe, der obige Hinweis hilft, wenn jemand ohne dieses Wissen einen Blick darauf wirft;)
Zeile

12

Die RPM-Dateien selbst werden heruntergeladen und dann installiert. Sobald diese Dateien installiert sind, werden sie von der RPM-Datenbank verfolgt. Um zu sehen, wo die Dateien für eine bestimmte Drehzahl installiert wurden, können Sie ausführen rpm -ql.

Z.B

[z@localhost ~]# rpm -ql bash |head
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug-64
/usr/share/doc/bash-4.1.2/COPYING
/usr/share/info/bash.info.gz
/usr/share/locale/af/LC_MESSAGES/bash.mo
/usr/share/locale/bg/LC_MESSAGES/bash.mo

Zeigt die ersten zehn Dateien an, die von der Bash-RPM installiert wurden. Das heißt, RPMs enthalten auch Pre- und Post-Skripte und einige schlecht erstellte Pakete können Dateien ablegen, die nicht in der RPM-Datenbank erfasst werden.

Wenn Sie nicht danach gefragt haben, yumkönnen Sie RPMs beim Herunterladen für eine Installation zwischenspeichern. Schauen Sie sich /var/cache/yum/doch mal um - das gilt aber nur, wenn Sie keepcache=1in Ihr eingestellt haben /etc/yum.conf.


+1 an zje für die Erwähnung von keepcache = 1 Konfiguration. Wenn keepcache = 0, dann unter / var / cache / yum / packages werde nicht vorhanden sein
Binita Bharati
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.