Installpackages
Содержание
Установка пакетов
Предварительные требования
- Виртуальная машина с двумя сетевыми интерфейсами
- Установленные пакеты:
yum
,yum-utils
,rpm
,bash
,bash-completion
Общая информация
Управление пакетами в RHEL
осуществляется двумя утилитами - yum
и rpm
. Утилита
yum
является "высокоуровневой" и позволяет устанавливать пакеты как из репозиториев (хранилищ), так и локально
из директорий. yum
в отличие от rpm
осуществляет разрешение зависимостей, то есть устанавливает
все необходимое программное обеспечение (библиотеки, документацию и тому подобное), для функционирования утилиты и/или демона. Информация
о пакетах и зависимостях хранится в базе данных Berkley DB
, в директории /var/lib/rpm
.
Для того, что бы не запоминать команды утилиты yum
поможет наличие установленного пакета bash-completion
.
Применение утилиты yum
В общем случае использование команды состоит вызова утилиты с указанием команды и имени пакета:
[root@vm-01 ~]# yum info bash-completion
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Installed Packages
Name : bash-completion
Arch : noarch
Epoch : 1
Version : 2.1
Release : 6.el7
Size : 259 k
Repo : installed
From repo : RHEL-media
Summary : Programmable completion for Bash
URL : http://bash-completion.alioth.debian.org/
License : GPLv2+
Description : bash-completion is a collection of shell functions that take advantage
: of the programmable completion feature of bash.
[root@vm-01 ~]#
Установка, удаление и обновление пакетов
Команда | Значение |
---|---|
install | установка пакета |
update | обновление одного или всех пакетов, в случае, если не указано имя пакета |
upgrade | то же самое, что и update , только с опцией --obsoletes (которая включена по-умолчанию у update )
|
localinstall | установка пакета находящегося в локальной директории |
downgrade | откат пакета до нужной версии |
reinstall | переустановка пакета |
swap | удаление одного пакета и установка другого |
remove (erase) | удаление пакета |
autoremove | то же, что и remove , но и удаляет зависимости
|
groupinstall | установить все пакеты, принадлежащие группе |
Управление репозиториями
Команда | Значение |
---|---|
repolist | просмотр списка подключенных репозиториев |
repoinfo | показывает информацию о подключенном репозитории |
repo-pkgs | работа с пакетами конкретного репозитория. после команды repo-pkgs надо указать имя репозитория, затем имя пакета и действие.
|
makecache | обновление метаданных подключенных репозиториев |
Общие команды
Команда | Значение |
---|---|
help | краткое описание команд и аргуметов |
list | список пакетов во всех подключенных репозиториях |
info | отображение информации о пакете |
deplist | отображение информации о зависимостях пакета |
provides (whatprovides) | поиск пакетов содержащих в себе имя файла (перед именем следует указывать */ для более точного поиска)
|
search | поиск пакета по имени и описанию |
updateinfo | отображает информацию об обновлениях для машины |
grouplist | отображает информацию об инсталлированных и доступных группах пакетов |
groupinfo | отборажает описание и содержимое группы пакетов |
check-update | отображает информацию о доступных обновлениях пактов |
Применение утилиты rpm
Как уже упоминалось, rpm
может оказаться удобным, когда yum
, к примеру, может отказаться
удалять пакет из-за ошибок в скриптах, выполняющихся после удаления пакета. Использование схоже с yum
,
использование команды состоит вызова утилиты с определенными ключами и имени пакета:
[root@vm-01 ~]# rpm -qi httpd
Name : httpd
Version : 2.4.6
Release : 45.el7
Architecture: x86_64
Install Date: Thu 22 Feb 2018 03:55:31 AM MSK
Group : System Environment/Daemons
Size : 3877656
License : ASL 2.0
Signature : RSA/SHA256, Wed 14 Sep 2016 10:02:21 AM MSK, Key ID 199e2f91fd431d51
Source RPM : httpd-2.4.6-45.el7.src.rpm
Build Date : Wed 03 Aug 2016 03:34:57 PM MSK
Build Host : x86-020.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
[root@vm-01 ~]#
Команда | Значение |
---|---|
rpm -qf [имя файла] | команда отображает какому пакету принадлежит файл |
rpm -ql [имя пакета] | команда отображает список файлов, принадлежащих пакету |
rpm -qi [имя пакета] | команда отображает информацию о пакете |
rpm -qc [имя пакета] | команда отображает список конфигурационных файлов, входящих в пакет |
rpm -q --scripts | команда отображает скрипты, которые вызываются в момент определенных действий с пакетом (установка, удаление) |
rpm -qp [имя rpm файла] | опция -p используется в комбинации с вышеприведенными опциями для получения информации о пакете, который не установлен в системе
|
rpm -qR | команда отображает список зависимостей указанного пакета |
rpm -V [имя пакета] | команда отображает изменения файлов указанного пакета после его инсталляции |
rpm -Va | команда отображает изменения файлов всех пакетов после их инсталляции |
rpm -qa | список всех пакетов, установленных в системе |
Отображение имени и версии пакетов установленных на машине:
$ rpm -qa --qf "%{NAME}-%{VERSION}\n"
Создание локального репозитория
Для увеличения скорости установки, необходимо скопировать содержимое директорий Packages> и <code>repodata
из образа в директорию, которая будет являться нашим репозиторием:
[root@vm-02 ~]# mount -o loop /root/rhel-server-7.0-x86_64-dvd.iso /media/
mount: /dev/loop0 is write-protected, mounting read-only
[root@vm-02 ~]# /bin/cp -ar /media/{Packages,repodata} /srv/repo/
[root@vm-02 ~]# cp /media/media.repo /etc/yum.repos.d/
Приведем файл /etc/yum.repos.d/media.repo
к следующему виду:
[localrepo]
name="RHEL-7.0 Server - Local Repo"
baseurl=file:///srv/repo
metadata_expire=-1
gpgcheck=0
Проверим подключение репозитория:
[root@vm-02 ~]# yum repolist
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
localrepo | 4.1 kB 00:00:00
(1/2): localrepo/group_gz | 134 kB 00:00:00
(2/2): localrepo/primary_db | 3.4 MB 00:00:00
repo id repo name status
localrepo "RHEL-7.0 Server - Local Repo" 4,305
repolist: 4,305
[root@vm-02 ~]#
И проверим установку пакетов:
[root@vm-02 ~]# yum install -y telnet
Loaded plugins: product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package telnet.x86_64 1:0.17-59.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================
Installing:
telnet x86_64 1:0.17-59.el7 localrepo 63 k
Transaction Summary
==============================================================================================================================================================================================
Install 1 Package
Total download size: 63 k
Installed size: 113 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 1:telnet-0.17-59.el7.x86_64 1/1
localrepo/productid | 1.6 kB 00:00:00
Verifying : 1:telnet-0.17-59.el7.x86_64 1/1
Installed:
telnet.x86_64 1:0.17-59.el7
Complete!
[root@vm-02 ~]#