При работе на серверах RHEL и CentOS возникают ситуации, когда мы хотим загрузить определенный пакет или набор пакетов RPM из командной строки без его установки.
Хотя мы можем использовать команду wget для загрузки пакетов, но wget не загрузит пакет вместе с его зависимостями.
В RHEL 8 или CentOS 8 DNF (или yum) – это утилита управления пакетами из командной строки.
С помощью DNF или yum мы можем устанавливать, обновлять и удалять пакеты rpm.
Кроме того, его можно использовать для загрузки пакетов вместе с зависимостями без их установки.
В этом руководстве мы рассмотрим, как загрузить пакеты rpm без установки в системе RHEL 8 или CentOS 8.
Загрузка определенного пакета RPM
Команда dnf или yum в RHEL 8 или CentOS 8 имеет флаг download, который позволяет загрузить пакет rpm.
Синтаксис:
$ sudo dnf download <имя пакета>.
Предположим, мы хотим загрузить пакет ‘nfs-utils’. Запустите
$ sudo dnf download nfs-utils
Вышеприведенная команда загрузит пакет nfs-utils в текущий рабочий каталог. Она не будет загружать зависимости.
Чтобы проверить загруженный пакет, выполните
$ ls nfs-utils-2.3.3-26.el8.x86_64.rpm $
Загрузка RPM вместе с зависимостями
Используя флаг ‘-downloadonly’ в команде dnf или yum, можно загрузить пакет rpm вместе с его зависимостями.
Мы также можем указать команде dnf загрузить rpm в определенную папку с помощью флага ‘-downloaddir’.
Синтаксис:
$ sudo dnf install <имя пакета> -downloadonly -downloaddir <каталог-путь>.
Предположим, мы хотим загрузить ansible rpm вместе с его зависимостями в каталог package.
$ mkdir packages $ sudo dnf install ansible --downloadonly --downloaddir ~/packages/
После успешного выполнения вышеуказанной команды проверьте, загружен ли пакет ansible rpm или нет. Выполните команду ls,
$ ls -l packages/
Теперь мы можем сделать tar-файл этих пакетов и перенести его на удаленную систему, где мы хотим установить ansible, но на этой системе нет интернета и подключения к хранилищу.
Загрузка группового пакета
Допустим, мы хотим загрузить все пакеты, входящие в группу ““Development Tools”, выполните команду:
$ sudo dnf group install "Development Tools" --downloadonly --downloaddir ~/dev-tools/ -y
Чтобы проверить, были ли загружены пакеты или нет, выполните команду ls
$ ls -l ~/dev-tools/
Примечание: Всякий раз, когда мы загружаем пакеты с помощью команд dnf или yum и если мы не передаем флаг -downloadidr, пакеты будут загружены в ‘/var/cache/dnf/baseos-xxxx/packages/’, ‘/var/cache/dnf/appstream-xxxx/packages’ и ‘/var/cache/dnf/epel-xxxx/packages/’.
Пожалуйста, оставляйте свои вопросы и отзывы в разделе комментариев ниже.
см. также:
📦 Как отсортировать установленные пакеты по дате установки на Linux
- 📦 Как отобразить пакеты, которые больше не нужны на Linux
- Три способа как исключить определенные пакеты из обновления Yum Update
- 🐧 Как перечислить пакеты в определенном репозитории yum
- 📜 Как с помощью Ansible обновить все пакеты в Ubuntu / Debian Linux