Куда идут установленные RPM?


27

Я загружаю и устанавливаю пакеты на свой компьютер Red Hat Enterprise Linux Server 6, используя менеджер пакетов YUM в режиме командной строки.

Когда я устанавливаю apk файлы на свой телефон Android , они идут в /data/appкаталог, мне интересно, где RHEL6 хранит свои установленные rpm файлы?

Ответы:


26

Yum поддерживает кэш RPM, которые он загружает здесь:

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

Например, мой ящик - Fedora 14, архитектура x86_64, поэтому у меня есть следующее:

$ 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
...
...

Но устанавливаемые RPM в основном похожи на файлы zip или tar. Таким образом, содержимое этих файлов сбрасывается в систему, и RPM поддерживает базу данных о том, какие пакеты были установлены. RPM "база данных" находится в этом каталоге:

$ 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

С помощью этих команд вы можете увидеть, где файлы установлены для каждого RPM.

какие файлы находятся в установленном 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
...
...

информация о пакете об указанной 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.

черт возьми, мне было так трудно это понять! потому что в качестве примера вы дали rpm;) поэтому, если вы хотите увидеть, где находятся файлы, скажем, для пакета java-11-openjdk-src , вы используете rpm -ql java-11-openjdk-src;)
строка

1
@Line - извините за это, RPM также является законным пакетом. Это также безопасно, потому что у всех это есть, вот почему я выбрал его.
SLM

1
Я понимаю, это просто сбивало с толку, потому что я этого не знал. Надеюсь, что вышеупомянутая похвала поможет, если кто-то без этого взглянет на это;)
Строка

12

Сами файлы rpm загружаются, а затем устанавливаются. Как только эти файлы установлены, они отслеживаются базой данных rpm. Чтобы увидеть, где были установлены файлы для определенного числа оборотов, вы можете запустить rpm -ql.

Например

[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

Показывает первые десять файлов, установленных bash rpm. При этом rpms также содержит сценарии pre и post, а некоторые плохо собранные пакеты могут сбрасывать файлы, которые не будут отслеживаться в базе данных rpm.

Если это не то, о чем вы просили, yumможете кэшировать rpms при загрузке для установки. Попробуйте осмотреться /var/cache/yum/- но это применимо, только если вы keepcache=1установили в своем /etc/yum.conf.


+1 к zje за упоминание о конфигурации keepcache = 1. Если keepcache = 0, то пакеты не будут присутствовать в / var / cache / yum /
Бинита Бхарати
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.