Сайт
Чукина
Владимира
Владимировича

28 марта 2024 г.

Установка, удаление и обновление программ

Система управления пакетами программ RPM

Программа RPM (Red Hat Pakage Manager) позволяет устанавливать rpm-пакеты, которые содержат в себе: исполняемые файлы, библиотеки, информацию о зависимостях от других пакетов, действия при установке, список файлов, сведения о разработчике.
Пакет - это файл с названием вида:

название-версия-выпуск.платформа.rpm

Наиболее распространены компьютеры на основе процессоров фирмы Intel. В этом случае возможны следующие платформы:
ПлатформаПроцессор
i386Intel 80386DX
i586Intel Pentium
i686Intel Pentium Pro, Celeron, PII, PIII, PIV
athlonAMD
alphaDEC Alpha
sparcSUN Sparc
mipsMIPS
ppcPowerPC
noarchлюбая архитектура
srcисходные коды программы

Анализ установленного программного обеспечения

Информация о всех установленных RPM-пакетах хранится в файле /var/lib/rpm/Packages и других файлах в этом же каталоге.

Все установленные пакеты можно посмотреть командой:

rpm -qa

Поиск конкретного пакета можно осуществить с помощью фильтра grep:

rpm -qa | grep имя_пакета

Информация о пакете:

rpm -qi имя_пакета

Список всех файлов в пакете:

rpm -ql имя_пакета

Для любого файла, установленного через систему RPM, можно определить пакет, к которому принадлежит этот файл:

rpm -qf имя_файла

Для получения списка всех файлов в пакете, к которому принадлежит файл, можно использовать следующую конструкцию:

rpm -ql `rpm -qf имя_файла` | less

Установка, удаление и обновление программ

Установить пакет можно командой:

rpm -i имя_пакета.rpm

Удалить пакет можно командой:

rpm -e имя_пакета

Обновить пакет можно командой:

rpm -U имя_пакета

При обновлении происходит либо обновление пакета, либо в случае, если пакет еще не был до этого установлен, происходит установка пакета. Следовательно, наиболее удобная на практике форма команды установки пакета имеет вид:

rpm -Uhv имя_пакета

где ключ -h выводит на экран индикатор процесса установки, а ключ -v выводит на экран текстовые сообщения.
Существуют дополнительные длинные ключи:
--nodeps - игнорировать любые зависимости
--force - устанавливать не взирая на предупреждения

Создание RPM-пакета

Рассмотрим на примере создания утилиты, которая будет выводить текстовое сообщение со значением температуры воздуха (всегда одним и тем же).
Создадим в каталоге /usr/src/redhat/SOURCES/ текстовый файл weather.c с текстом программы на языке С.
#include <stdio.h>

int main(int argc, char *argv[])
{
  double t = 15.9;
  printf("t = %.1lf\n", t);

 return 0;
}

Для создания RPM-пакета необходимо создать архивы исходных кодов программ в каталоге /usr/src/redhat/SOURCES/. В данном примере, командой:

tar cvfz ./weather-0.1.tar.gz ./weather.c

И затем создать файл спецификации /usr/src/redhat/SPECS/weather.spec
Структура файла спецификации может быть следующей.
Summary: Информация о температуре воздуха
Name: weather
Version: 0.1
Release: 1
License: GPL v.2
Group: Tests
Source:%{name}-%{version}.tar.gz
BuildRoot: /tmp/weather

%description
Тестовая програма.

%prep

%setup -c weather

%build
gcc -o weather weather.c

%install
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
cp weather $RPM_BUILD_ROOT/usr/local/bin

%clean
rm -rf $RPM_BUILD_ROOT

%files
/usr/local/bin/weather
Бинарный RPM-пакет создается командой:

rpmbuild -bb --target i386 ./weather.spec

Новый пакет автоматически размещается в каталоге /usr/src/redhat/RPMS/i386/

Система управления пакетами YUM

YUM (Yellow dog Updater Modified) является надстройкой над системой RPM и позволяет более просто производить действия с rpm-пакетами.

Список всех установленных пакетов можно получить командой:

yum list installed

Проверить новые обновления в репозитариях:

yum check-update

Информация о пакете:

yum info название

Установить пакет:

yum install название

Удалить пакет:

yum remove название

Обновить пакет:

yum update название

Настройка репозитариев программного обеспечения

Для создания собственного репозитария необходимо создать каталог для хранения rpm-пакетов, скопировать rpm-пакеты в этот каталог и выполнить команду createrepo:

mkdir /var/install
createrepo /var/install

В результате, в указанном каталоге появится подкаталог repodata/, в котором будет размещена информация о пакетах данного репозитария.
После этого необходимо добавить описание созданного репозитария в виде отдельного файла в каталоге /etc/yum.repos.d/. Например, репозитарий будет называться my. В этом случае создается файл /etc/yum.repos.d/my.repo с содержимым вида:
[my]
name=My repository
baseurl=file:///var/install

Проверьте появление нового репозитария в списке всех доступных репозитариев командой:

yum repolist

Установка программ из исходных текстов

Исходные тексты программ предоставляются в виде архивов *.tar.gz или *.tar.bz2. Это означает, что исходные файлы были сначала архивированы с помощью команды tar, а затем с помощью gzip или bzip2.
Для распаковки архивов соответственно необходимо сначало использовать декомпрессор gunzip или bunzip2, а затем разархивировать с помощью tar.
Например, для распаковки архива имя_файла.tar.gz необходимо выполнить команды:

gunzip имя_файла.tar.gz
tar xvf имя_файла.tar

А для распаковки архива имя_файла.tar.bz2 необходимо выполнить команды:

bunzip2 имя_файла.tar.bz2
tar xvf имя_файла.tar


Собственно процесс установки программ заключается в следующем. Перейдите в распакованный каталог и выполните команды:

./configure
make
make install

Первая команда запускает сценарий configure, который создаст файл Makefile с инструкциями для компилятора C++, соответсвующими архитектуре данного компьютера.
Команда make выполняет инструкции из файла Makefile и создает исполняемые программы.
Команда make с параметром install копирует созданные файлы в указанные каталоги.


Ссылки по теме

RPM: руководство к использованию
Установка программных пакетов в Linux для начинающих
Кратко о работе с yum
Православное радио "Воскресенье"   Валаамский монастырь   Медиа-сервер "Россия Православная"   Интернет-магазин "ЛинуксЦентр"   Яндекс цитирования   Valid CSS!   Valid XHTML 1.0 Strict!   Unicode Encoded Badge