Главная / Дисциплины / Введение в администрирование ОС Linux / Установка, удаление и обновление программ
Система управления пакетами программ RPM
Программа RPM (Red Hat Pakage Manager) позволяет устанавливать rpm-пакеты, которые содержат в себе: исполняемые файлы, библиотеки, информацию о зависимостях от других пакетов, действия при установке, список файлов, сведения о разработчике.Пакет - это файл с названием вида:
название-версия-выпуск.платформа.rpm
Наиболее распространены компьютеры на основе процессоров фирмы Intel. В этом случае возможны следующие платформы:
Платформа | Процессор |
i386 | Intel 80386DX |
i586 | Intel Pentium |
i686 | Intel Pentium Pro, Celeron, PII, PIII, PIV |
athlon | AMD |
alpha | DEC Alpha |
sparc | SUN Sparc |
mips | MIPS |
ppc | PowerPC |
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