Поиск по сайту:

Загрузите пакет RPM со всеми зависимостями в CentOS

Мы можем загрузить любой пакет с помощью команд curl или wget, верно? Однако эти команды не будут загружать необходимые зависимости. Возможно, вам придется потратить некоторое время на поиск и загрузку вручную зависимостей, необходимых пакету для установки. Ну, уже нет! В этом кратком руководстве мы посмотрим, как загрузить пакет RPM со всеми зависимостями в CentOS. Я тестировал это руководство на CentOS 7, хотя те же шаги могут работать и на других системах на базе RPM, таких как RHEL, Fedora, AlmaLinux и Rocky Linux.

Загрузите пакет RPM со всеми зависимостями в CentOS.

Мы можем сделать это двумя способами. В первом методе мы будем использовать плагин Downloadonly.

1. Загрузите пакеты RPM со всеми зависимостями, используя плагин «Downloadonly».

Мы можем легко загрузить любой RPM-пакет со всеми зависимостями, используя плагин Downloadonly для команды yum.

Чтобы установить плагин Downloadonly, выполните следующую команду от имени пользователя root.

yum install yum-plugin-downloadonly

Теперь выполните следующую команду, чтобы загрузить пакет RPM.

yum install --downloadonly <package-name>

По умолчанию эта команда загрузит и сохранит пакеты в папке /var/cache/yum/ . Однако вы можете загрузить и сохранить пакеты в любом месте по вашему выбору, используя опцию «--downloaddir».

yum install --downloadonly --downloaddir=<directory> <package-name>

Пример:

yum install --downloadonly --downloaddir=/root/mypackages/ httpd

Пример вывода:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: epel.mirror.angkasa.id
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================================================================
 Package Arch Version Repository Size
=======================================================================================================================================
Installing:
 httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M
Installing for dependencies:
 apr x86_64 1.4.8-3.el7 base 103 k
 apr-util x86_64 1.5.2-6.el7 base 92 k
 httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k
 mailcap noarch 2.1.41-2.el7 base 31 k

Transaction Summary
=======================================================================================================================================
Install 1 Package (+4 Dependent packages)

Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01 
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09 
---------------------------------------------------------------------------------------------------------------------------------------
Total 331 kB/s | 3.0 MB 00:00:09 
exiting because "Download Only" specified

Загрузите пакет RPM со всеми зависимостями, используя плагин «только для загрузки»

Теперь перейдите в место, указанное в приведенной выше команде. Вы увидите там скачанный пакет со всеми зависимостями. В моем случае я загрузил пакеты в каталог /root/mypackages/.

Давайте проверим содержимое.

ls /root/mypackages/

Пример вывода:

apr-1.4.8-3.el7.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-2.4.6-40.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm

Список загруженных пакетов

Как видно из приведенного выше вывода, пакет httpd был загружен со всеми зависимостями.

Обратите внимание, что этот плагин применим для «yum install/yum update», а не для «yum groupinstall». По умолчанию этот плагин загружает последние доступные пакеты из репозитория. Однако вы можете загрузить конкретную версию, указав версию.

Пример:

yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7

Кроме того, вы можете загрузить несколько пакетов одновременно, как показано ниже.

yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd

Загрузить – Бесплатное руководство: «10 простых способов восстановить систему Linux»

2. Загрузите пакеты RPM со всеми зависимостями с помощью утилиты Yumdownloader.

Yumdownloader  – простая, но полезная утилита командной строки, которая загружает любой пакет RPM вместе со всеми необходимыми зависимостями за один раз.

Установите Yumdownloader, используя следующую команду от имени пользователя root.

yum install yum-utils

После установки выполните следующую команду, чтобы загрузить пакет, например httpd.

yumdownloader httpd

Чтобы загрузить пакеты со всеми зависимостями, используйте опцию --resolve:

yumdownloader --resolve httpd

По умолчанию Yumdownloader загрузит пакеты в текущий рабочий каталог.

Чтобы загрузить пакеты вместе со всеми зависимостями в определенное место, используйте опцию --destdir:

yumdownloader --resolve --destdir=/root/mypackages/ httpd

Или

yumdownloader --resolve --destdir /root/mypackages/ httpd

Пример вывода:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: epel.mirror.angkasa.id
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 
(2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:02 
(3/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:02 
(4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:03 
(5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19

Загрузите пакет RPM со всеми зависимостями с помощью утилиты Yumdownloader.

Давайте проверим, были ли загружены пакеты в указанное место.

ls /root/mypackages/

Пример вывода:

apr-1.4.8-3.el7.x86_64.rpm
apr-util-1.5.2-6.el7.x86_64.rpm
httpd-2.4.6-40.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm
mailcap-2.1.41-2.el7.noarch.rpm

Список загруженных пакетов

В отличие от плагина Downloadonly, Yumdownload может загружать пакеты, относящиеся к определенной группе.

yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/

Лично я предпочитаю Yumdownloader плагину Downloadonly для yum. Но оба просты и выполняют одну и ту же работу. Вы можете выбрать тот, который подходит именно вам.

Связанное чтение:

  • Загрузите пакеты с зависимостями локально в Ubuntu

Статьи по данной тематике