Вопрос или проблема
Существует ли временная папка, где я могу найти RPM-файлы, которые скачивает yum для установки программ? Во время установки yum показывает точное имя RPM файла, но я не знаю, как его найти. Как я могу искать RPM, если знаю его имя?
Я полагаю, что вы ищете /var/cache/yum/<repo>/packages
. Эта директория очищается во время очистки пакетов.
Вы можете выполнять поиск файла по имени с помощью команды find
. Пример: find / -name 'package.rpm'
Поддерживаются подстановочные знаки. find -name 'package*.rpm'
Я сегодня проверил, что на RHEL 6.7 файлы хранятся в /var/cache/yum/x86_64/6Server/rhel-6-server-rpms/packages/
.
Также стоит отметить, что плагин downloadonly
включен в RHEL 6:
# yum install yum-downloadonly
Пакет yum-plugin-downloadonly-1.1.30-30.el6.noarch устарел по сравнению с yum-3.2.29-69.el6.noarch, который уже установлен
Я нашел это здесь:
/var/cache/yum/x86_64/7Server/rhel-7-server-rpms/packages
Он найден в следующем месте здесь x86_64, если для 64-битной версии CentOS/RHEL OS. Он существует по адресу package.rpm.tmp
/var/cache/yum/x86_64/7/
/var/cache/yum/x86_64/6/
Местоположение кэша конфигурируемо, и хотя по умолчанию это /var/cache/yum/
, гораздо надежнее проверить значение main.cachedir в /etc/yum.conf
.
В Rocky Linux 9 yum
теперь указывает на dnf
, и каждый RPM, который принадлежит /etc/yum.repo.d/<ваш репозиторий>
, будет находиться внутри /var/cache/dnf/<ваш репозиторий>/packages
Это верно, при условии, что вышеуказанное, только если /etc/yum.conf
имеет keepcache=1
, в противном случае вы не найдете файл.
Ответ или решение
Когда вы устанавливаете пакеты с помощью менеджера пакетов yum
в системах, основанных на RHEL (Red Hat Enterprise Linux) и его производных, таких как CentOS и Rocky Linux, загруженные RPM-файлы временно сохраняются в кэше, чтобы ускорить будущие установки и обновления. В этом ответе мы подробно рассмотрим, где находятся эти RPM-файлы, как их можно найти и как управлять настройками кэша.
Где yum
сохраняет RPM-файлы?
По умолчанию yum
записывает загруженные RPM-файлы в директорию кэша:
/var/cache/yum/<repo>/packages
Здесь <repo>
представляет собой имя конкретного репозитория, из которого были загружены пакеты. Например, для 64-разрядной версии RHEL 6.7 путь к кэшу может выглядеть следующим образом:
/var/cache/yum/x86_64/6Server/rhel-6-server-rpms/packages/
А для RHEL 7:
/var/cache/yum/x86_64/7Server/rhel-7-server-rpms/packages/
Начиная с Rocky Linux 9, который использует dnf
вместо yum
, RPM-файлы будут храниться в следующем местоположении:
/var/cache/dnf/<repo>/packages
Как найти загруженные RPM-файлы?
Если вы хотите найти конкретный RPM-файл, вы можете использовать команду find
. Например, чтобы найти файл с именем package.rpm
, выполните следующую команду:
find / -name 'package.rpm'
Вы также можете использовать подстановочные знаки для поиска. Например, чтобы найти все RPM-файлы, начинающиеся с package
, выполните:
find / -name 'package*.rpm'
Настройки кэша
Важно отметить, что расположение кэша может быть настроено. Чтобы проверить настройки кэша, вы можете просмотреть файл конфигурации yum
, находящийся по адресу:
/etc/yum.conf
Ищите параметр main.cachedir
. По умолчанию он будет указывать на /var/cache/yum/
, но его можно изменить на любое другое значение.
Также имеется параметр keepcache
, который определяет, будут ли RPM-файлы сохранены после установки:
- Если
keepcache=1
, то загруженные RPM-файлы останутся в кэше даже после завершения установки. - Если
keepcache=0
, кэш очищается после завершения установки, и файлы не сохраняются.
Заключение
Теперь вы знаете, где yum
сохраняет загруженные RPM-файлы и как их найти, а также как управлять параметрами кэша. Убедитесь, что вы проверили файл конфигурации, чтобы адаптировать настройки под ваши нужды, и используйте команду find
для поиска нужных пакетов. Это поможет вам эффективнее управлять пакетами в вашей системе.