Linux-сервер своими руками — страница 12 из 119

Многие начинающие пользователи операционной системы Linux сталкиваются с проблемой установки нового программного обеспечения, а также удаления и обновления уже установленного. При описании установки той или иной программы в большинстве случаев написано примерно так: для установки программы введите такую-то команду. При этом не описывается сам процесс установки и для чего предназначены те или иные опции программы установки.

В операционной системе Windows установка программ выполнялась проще: достаточно запустить setup.exe, ввести серийный номер (если нужно), каталог для установки и нажать на кнопку «Далее». После этого вы можете поступить так, как рекомендует Microsoft: «откиньтесь на спинку табуретки и подождите, пока программа установки все сделает за вас».

В операционной системе Linux существуют три способа установки программного обеспечения: традиционный, из пакетов RPM, из пакетов, содержащих исходный код. Рассмотрим по порядку все три способа.

2.6.1.Традиционный способ установки: установка из исходных текстов

Этот способ заключается в том, что программа распространяется не в собранном виде, а в виде исходных текстов. Данный способ называется традиционным, потому что он был первым способом установки программ до появления менеджера RPM или аналогичных ему (apt-get).

Как правило, исходный текст распространяется в архиве. Обычно файл, содержащий исходный текст, имеет двойное расширение: например, tar.gz или tar.bz2. Это означает, что данный файл сжат двумя архиваторами: сначала tar, а потом gzip.

Распаковывать архив нужно по принципу стека: сначала внешним архиватором, а потом внутренним. Предположим, что prg-2.00.tar.gz — это имя файла нашего архива. Для его распаковки нужно ввести команды:

gunzip prg-2.00.tar.gz 

tar xvf prg-2.00.tar

Первая команда распакует файл prg-2.00.tar, который мы укажем в качестве одного из аргументов во второй команде. Параметр х программы tar означает, что нужно выполнить извлечение файлов из архива (параметр с — создание). Параметр v можете указывать по собственному усмотрению, он обеспечивает большую информативность при работе программы. Последний параметр f является обязательным при работе с файлами. Первоначально программа tar была предназначена для работы с пленками стримеров, поэтому нужно использовать параметр f, чтобы сказать программе, что нам нужно работать с файлами.

Если внешнее расширение не gz, a bz или bz2, то вместо первой команды вам нужно ввести команды (соответственно):

bunzip prg-2.00.tar.bz 

bunzip2 prg-2.00.tar.bz2

Затем, как и в первом случае, нужно выполнить команду tar (с такими же параметрами).

Иногда файлы исходных текстов имеют всего одно расширение — tgz. В этом случае вам нужно ввести всего одну команду:

tar xzf prg-2.00.tgz

Параметр z означает извлечение файлов с использованием распаковщика gzunzip. Обычно такое расширение имеют файлы архивов, созданные с помощью программы tar и пропущенные через фильтр архиватора gzip.

Следующий этап — это непосредственная установка программы. После успешного завершения первого этапа (распаковки) перейдите в каталог, содержащий исходные тексты. Обычно это каталог <имя_программы-версия>:

cd prg-2.00

После этого вам нужно внимательно прочитать файл README и ввести три команды:

./configure 

make 

make install

Первая команда конфигурирует устанавливаемую программу для работы с вашей системой. Эта программа также проверяет, может ли устанавливаемая программа работать в вашей системе. Если работа программы невозможна, вы увидите соответствующее сообщение, и процесс установки будет прерван. Обычно такое случается, когда в вашей системе не установлена одна из необходимых новой программе библиотек. Для продолжения установки необходимо установить требуемую библиотеку и попытаться заново ввести команду ./configure.

После успешного завершения работы программы ./configure будет создан файл Makefile, в котором будут указаны необходимые параметры (пути к библиотекам, путь для установки программы) для программы make.

Вторая команда (make) «собирает» программу. На этом этапе программа компилируется, то есть создаются бинарные исполнимые файлы из исходных текстов.

Третья команда — make install — устанавливает программу и файлы справочной системы в соответствующие каталоги. Обычно программы устанавливаются в каталог /usr/bin, но это зависит от содержимого конфигурационного файла Makefile.

После успешной установки программы вы можете ее запустить, предварительно прочитав документацию по этой программе.

2.6.2. Программа RPM

Установка программного обеспечения в дистрибутивах Red Hat и Mandrake производится с помощью программы rpm. RPM (red hat package manager) — это менеджер пакетов Red Hat. Несмотря на то, что в названии присутствует «Red Hat», он полностью предназначен работать как открытая пакетная система, доступная для использования кем угодно. Она позволяет пользователям брать исходный код для нового программного обеспечения и упаковывать его в форме исходного и двоичного кода, так что двоичные файлы могут быть легко установлены и отслежены, а исходный код легко построен. Эта система также сопровождает базу данных всех пакетов и их файлов, что может быть использовано для проверки пакетов и запроса информации о файлах и/или пакетах. 

В отличие от привычных мастеров InstallShield, которые используются для установки программ для Windows, пакеты RPM (файлы с расширением .rpm) не являются выполняемыми файлами, то есть программами. В пакетах содержатся файлы (как в архиве), которые нужно установить, а также различная информация об этом пакете: какой пакет необходим для работы этого пакета, с каким пакетом конфликтует, информация о разработчике, а также информация, указывающая, какие действия нужно выполнять при установке этого пакета, например, какие каталоги нужно создать. Менеджер пакетов RPM используется во многих дистрибутивах Linux (Red Hat, Mandrake, ASP, Black Cat.) и является довольно легкой и гибкой в использовании системой, что обуславливает его популярность.

Обычно в имени файла пакета указывается его название, версия, выпуск, платформа. Последние четыре символа — «.rpm» — признак того, что данный файл является пакетом. В Linux отсутствует такое понятие как расширение или тип файла.

Например, для пакета software-1.0-1.i386.rpm имеет место:

softwareназвание
1.0версия программы
1выпуск пакета
i386платформа Intel 386

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

С названием и версией программы, я думаю, все ясно. А вот с архитектурой немного сложнее. Самыми «универсальными» пакетами являются пакеты, рассчитанные на архитектуру Intel 386. Данная программа должна работать на любом процессоре Intel, начиная с 80386DX (или совместимого с ним). А вот если у вас процессор 80486, пакет, рассчитанный для работы с архитектурой 80586 (Pentium), скорее всего, не установится в вашей системе. Обычно для процессоров архитектуры CISC (с набором команд х86) используются следующие обозначения:

i386 — Intel 80368DX;

i586 — Intel Pentium (MMX), AMD K5 (Кб);

i686 — Intel PPro, Celeron, РII, РIII, PIV.

В самом простейшем случае команда установки пакета выглядит так:

rpm –i <пакет>.rpm

Перед установкой программы менеджер RPM проверит зависимости пакета, то есть установлены ли в вашей системе другие пакеты, которые необходимы новой программе или конфликтуют с ней. Если установлены все нужные программе пакеты (или для работы программы вообще не нужны никакие дополнительные пакеты), а также, если новая программа не конфликтует ни с одним уже установленным пакетом, менеджер RPM установит программу. В противном случае вы получите сообщение, что для работы программы нужен какой-то дополнительный пакет или программа конфликтует с уже установленным пакетом. Если нужен дополнительный пакет, просто установите его. А вот, если программа конфликтует с уже установленным пакетом, то вам нужно будет выбрать, какой пакет больше нужен: уже установленный или новый.

При установке программы я рекомендую указывать два дополнительных параметра: h и v. Первый указывает программе вывести полоску состояния процесса установки, а второй выводит дополнительные сообщения. Полоска состояния будет отображена в виде символов #. Учитывая эти два параметра, команда установки немного усложнится:

rpm –ihv software-1.0-1. i386.rpm

Установку можно производить не только с локального диска, но и по протоколу FTP:

rpm –i ftp://somehost.domain/pub/package.rpm

Для удаления пакета используется команда:

rpm –е <пакет>

Еще раз следует напомнить, что при установке или удалении пакетов нужно иметь в виду, что одни пакеты могут требовать наличия в системе других пакетов — это называется зависимостью пакетов. Поэтому иногда вы не сможете установить определенный пакет до тех пор, пока не установите все пакеты, которые нужны для его работы. При удалении программы менеджер пакетов также проверяет зависимости между пакетами. Если удаляемый пакет нужен каким-нибудь другим пакетам, удалить его вы не сможете.

Для пропуска проверки зависимостей нужно использовать параметр -nodeps. Это бывает иногда полезно. Например, у вас установлена программа postfix, а вам нужно установить программу sendmail. Обе программы используются для отправки почты. Однако для работы многих почтовых программ необходим агент МТА (Mail Transfer Agent) — программа для отправки почты (postfix или sendmail).Поэтому с помощью параметра –е удалить программу postfix вы не сможете. Установить программу sendmail без удаления программы postfix вы также не можете, потому что пакеты конфликтуют друг с другом. В этом случае вам поможет команда:

rpm –e –nodeps postfix

После такого удаления нормальная работа других программ, которым необходим МТА, невозможна, поэтому вам сразу же нужно установить программу sendmail(или другой МТА). Устанавливать программу в таком случае нужно как обычно: с помощью параметра –i.

Для обновления программ используется параметр –U. Я рекомендую использовать его и при установке программ, потому что, если устанавливаемый пакет уже был установлен, то будет произведено его обновление, а если нет, то будет просто установлен новый пакет. Для того чтобы видеть полоску состояния при установке пакетов, используйте опцию h. Команда для обновления пакета:

rpm –Uhv <пакет>

например,

rpm –uhv software-1.1-4.i386.rpm

Полоска состояния будет отображена в виде символов #. Просмотреть все установленные пакеты можно с помощью команды:

rpm –qa | less

Если вам требуется узнать установлен ли определенный пакет, выполните команду:

rpm –qa | grep 

название_пакета

Просмотреть общую информацию о пакете можно с помощью команды:

rpm –qi пакет

а информацию о файлах, которые входят в состав пакета:

rpm –ql пакет

2.6.3. Программы gnorpm, kpackage, apt

Менеджер пакетов RPM является мощным средством для произведения операций над пакетами — создание, установка, обновление, удаление. Однако интерфейс командной строки может понравиться далеко не всем, а особенно начинающему администратору. Существуют и графические (под X Window) реализации менеджера пакетов — например, kpackage из KDE, gnorpm и другие. Я рекомендую использовать программу gnorpm, которая обладает интуитивным графическим интерфейсом. RPM больше подходит для создания новых пакетов, а также для обновления большого числа пакетов. Для установки одного-двух пакетов лучше и удобнее использовать gnorpm (см. рис. 2.14).

Рис. 2.14. Программа gnorpm


Функции программы gnorpm:

1. Установка пакетов.

2. Удаление пакетов.

3. Получение сведений о пакете.

4. Проверка пакета.

5. Поиск пакета в базе RPM.

Для установки какого-либо пакета нажмите на кнопку «Установить». Если в приводе CD-ROM находится инсталляционный CD, то в появившемся окне вы увидите список еще не установленных в системе пакетов (см. рис. 2.15). 

Рис. 2.15. Добавление пакета


Если пакета нет в списке или вы хотите установить пакет, который не входит в состав дистрибутива, нажмите на кнопку «Добавить» и добавьте в список пакеты, которые вы хотите установить. Нажмите на кнопку «Запрос» для получения сведений о пакете (см. рис. 2.16). 

Рис. 2.16. Свойства пакета

Рис. 2.17. Установка пакета


Если пакет еще не установлен и у вас достаточно места на диске для его установки, нажмите на кнопку «Установка». После этого будет выполнена проверка пакета на предмет удовлетворения зависимостей: не требует ли этот пакет наличия какого-нибудь не установленного пакета и не конфликтует ли он с уже установленными пакетами. Если все в порядке, вы увидите окно состояния установки пакета (см. рис. 2.17).

Найти пакет вы можете с помощью операции Поиск. Для этого нажмите на кнопку «Поиск» на панели инструментов gnorpm или выполните команду меню Операции→Поиск. В открывшемся окне вы можете установить критерии поиска и нажать на кнопку «Поиск» (см. рис. 2.18). 

Рис. 2.18. Поиск пакета


Для проверки пакета выберите интересующий вас пакет и нажмите на кнопку «Проверка» (см. рис. 2.19).  

Рис. 2.19. Проверка пакета

Процесс создания собственных пакетов RPM подробно рассмотрен в гл. 19.

В состав KDE входит программа с графическим интерфейсом пользователя, управляющая пакетами, — kpackage (см. рис. 2.20). По своим функциям она аналогична программе gnorpm.Какую из этих программы использовать — дело вкуса и привычки (я вообще использую программу rpm). 

 Рис. 2.20. Программа kpackage

Также стоит упомянуть о программе APT. Программа APT — это система управления пакетами программного обеспечения. Первоначально система APTбыла разработана для Debianlinux. Сейчас в состав некоторых red hat-совместимых дистрибутивов (например, apt-get входит в состав Alt Linux, но ее вы не найдете в Red Hat Linux) входит эта система. Для управления пакетами используется программа apt-get.Формат вызова программы apt-get такой:

apt-get[опции] [команды] [пакет …]

Команды программы описаны в табл. 2.11. 

Команды программы apt Таблица 2.11

Команда Описание
update  Используется для синхронизации файлов описаний пакетов с их источником, который указан в файле /etc/apt/sources.list. В качестве источника может использоваться какой-нибудь каталог файловой системы или FTP-архив. Примеры источников: /mnt/cdrom/RedHat/RPMS/ ftp://ftp.redhat.com/pub/
upgrade Используется для обновления пакета. Может также использоваться для обновления ВСЕХ установленных в системе пакетов из источников, указанных в файле /etc/apt/sources.list. При выполнении этой команды ни в коем случае не будет установлено ни одного нового пакета, то есть такого, который еще не был установлен в системе, а будет произведено только обновление существующих пакетов. Перед этой командой обязательно должна быть выполнена команда update
dist-upgrade Более «интеллектуальная» версия команды upgrade. Кроме установки новых версий пакетов, она также проверит зависимости между новыми версиями пакетов. Рекомендуется использовать именно эту команду
install Установка одного (или более) пакета. В качестве аргумента данной команде нужно передать имя пакета: это НЕ полное имя файла. Например, пусть полное имя файла пакета, который вы хотите установить /rnnt/cdrom/RedHat/RPMS/package-1.33.i386.rpm. Тогда для установки этого пакета вам нужно ввести команду apt-get install package. Естественно, источник /mnt/cdrom/RedHat/RPMS должен быть указан в файле /etc/apt/sources.list
remove Удаление пакетов
check Используется для диагностики нарушенных зависимостей между пакетами
clean Очищает локальное хранилище полученных файлов пакетов. Перед установкой пакеты копируются из источника в локальное хранилище, а оттуда потом устанавливаются. Для освобождения места на диске время от времени вводите команду apt-get clean. Данная команда не удаляет пакеты из каталогов /var/cache/apt/archives и /var/cache/apt/archives/partial

В табл. 2.10 указаны практически все необходимые вам команды. Более подробное описание команд вы найдете в справочной системе.

Команда apt-get install похожа на команду rpm –i, однако есть одно важное отличие: при установке нового пакета apt-get проверяет зависимости и устанавливает также все необходимые пакеты. Менеджер rpm выводит только сообщение о невозможности установки пакета.

При установке группы пакетов с помощью apt-get будьте внимательны. Обычно для установки группы пакетов используются символы «?», «*». Если нет пакетов, имена которых совпадают с указанным шаблоном, то этот шаблон будет рассматриваться как выражение POSIX. В этом случае, если вы указали шаблон а*, то будут установлены ВСЕ пакеты, имена которых содержат букву а, а не только те, которые начинаются на эту букву. Это же касается и команды remove.

Из опций apt-get полезными для вас будут –f и –d. При указании первой опции apt-get попытается исправить нарушенные зависимости, а при указании второй — пакеты не будет устанавливать, а только будут выкачаны из источника. Еще есть одна полезная опция: --force-yes.При указании этой опции apt-get добровольно-принудительно выполнит указанную операцию несмотря ни на что. Данная опция очень опасна, так как может полностью разрушить систему, однако бывают случаи, когда она действительно необходима.

2.6.4. Установка из пакетов, содержащих исходный код

Иногда в пакетах RPM находятся не откомпилированные версии программ, а их исходный код. Признаком этого является слово src вместо названия архитектуры. Для установки такого пакета введите:

rpm –rebuild software-2.00-1.src.rpm

Разумеется, вместо software-2.00-1.src.rpm нужно указать реальное имя файла. Перед установкой программы пакет, ее исходный текст будет откомпилирован, и потом программа будет установлена.

Надеюсь, что всей этой информации достаточно, чтобы вы могли легко устанавливать программное обеспечение для Linux.

2.7. Завершение работы операционной