Читаем Linux полностью

rpm -i <полное_имя_пакета>

Или

rpm -i <полное_имя_пакета> <полное_имя_пакета> <полное_имя_пакета> …

Например: rpm -i срр-2. 96–85. i386.rpm Таким образом можно установить сразу несколько пакетов. Помимо удобства (сразу указывается список пакетов, и они устанавливаются сами) указание нескольких пакетов необходимо в том случае, если возникают неудовлетворенные зависимости. Попадаются пакеты, зависящие друг от друга. Без второго пакета не установить первый, а второй не устанавливается – требует установки первого. Простейшее решение – поставить пакеты командой:

rpm -i <полное_имя_пакета_1> <полное_имя_пакета_2>

Команда простая, работает хорошо, но если в системе уже установлен пакет, пусть и более ранней версии, вы получите предупреждение, а сам пакет не установится. Чтобы обновить пакет, используем следующую команду:

rpm -U <полное_имя_пакета>

Эта команда производит обновление пакета, если он уже установлен, или установку, если не установлен. Однако не всегда при обновлении необходимо устанавливать отсутствующий пакет. В таких случаях можно воспользоваться командой:

rpm -F <полное_имя_пакета>

Команда проверит, есть ли в системе соответствующий пакет, и если есть – произведет его обновление. При желании установку или обновление пакетов можно производить прямо с сервера FTP. Например, в локальной сети есть FTP-сервер с именем bluewater. Ваш администратор регулярно скачивает с FTP-сервера Red Hat обновления RPM и выкладывает их на FTP-сервер локальной сети. Вот команда, с помощью которой можно обновить свои пакеты (для определенности возьмем компилятор С++):

rpm -F ftp://bluewater/pub/linux/updates/redhat-7.l/cpp-2.96–85.i386.rpm

Однако у консольного менеджера RPM есть одна неприятная особенность – в случае успешности операции он ничего не сообщает на консоль. В принципе, это нестрашно, можно задать ключ – h, который выводит процент выполнения процедуры. Например:

rpm -ih срр-2.96–85.i386.rpm

Или

rpm -ivh cpp-2.96–85.i386.rpm

Если при работе с пакетом возникнут проблемы, RPM выдаст причину, по которой невозможно выполнить какое-то действие. При установке пакета – это, как правило, уже упомянутые неудовлетворенные зависимости либо отсутствие необходимых библиотек или установленных пакетов (или они в системе есть, но не той версии). Эти проблемы решаются просто – установите соответствующие пакеты или обновите их до необходимой версии. Впрочем, бывают и здесь свои трудности. Рассмотрим еще один пример. У автора на компьютере стоит Red Hat 7.1, а в нем удобная система GNOME, использующая менеджер окон Sawfish. Все хорошо функционирует, только есть одна проблема – при сборке пакета Sawfish сборщики (американцы, им простительно) напутали с кириллическими шрифтами – системное меню вместо кириллицы отображает знаки вопроса. Был найден пакет посвежее, в котором эта оплошность убрана, да еще и функциональности добавлено. Пакет содержал исходные коды, поэтому пришлось сначала собрать его в бинарном виде командой:

rpm -rebuild Sawfish-1.0–1.src.rpm

После приблизительно пяти минут компиляции в каталоге /usr/src/redhat/RPMS/i386/ образовался пакет Sawfish, который был запущен на обновление командой:

rpm -F Sawfish

А в результате получено сообщение: «Обновление пакета не произведено, поскольку в системе уже установлен пакет версии 0.36, которая больше, чем версия 1.02». По всей видимости, сборщики пакета что-то перепутали в его описании. Пришлось воспользоваться командой:

rpm -U -force Sawfish-1.0–1.i386.rpm

которая производит принудительное обновление пакета, не проверяя зависимостей. Ключом -force, однако, следует пользоваться достаточно осторожно, можно ненароком развалить всю систему.

Встречаются иногда сообщения и другого рода. При обновлении, например, пакета с исходным кодом ядра Linux версии 2.4.2 пакетом, содержащим исходный код ядра Linux версии 2.4.3, было выдано сообщение, которое в переводе на русский язык звучит так: "Не могу удалить каталог такой-то, потому что он не пуст". Однако пакет успешно обновился, а каталог, фигурирующий в сообщении, на самом деле был пуст. Так что не стоит сразу расстраиваться, достаточно часто сообщения, выдаваемые RPM, весьма безобидны.

Удаление пакетов из системы осуществляется элементарно, с помощью команды:

rpm -е <имя_пакета>

Перейти на страницу:

Все книги серии Наиболее полное руководство

Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет

Похожие книги