Часто этими тремя этапами процедура установки и исчерпывается, но не менее часто неприятности начинаются уже на этапе конфигурирования: сценарий configure обнаруживает, что необходимая для этою пакета библиотека у вас не установлена. Что ж, найдите и установите ее и снова запустите сценарий configure. Он сообщит о нехватке чего-нибудь другого... но при достаточном терпении, времени и дешевом Интернете эти проблемы решаются.
На этапе компиляции и сборки можно столкнуться с тем, что нужные заголовочные файлы и библиотеки называются по-другому или расположены в другом месте, чем ожидал разработчик. Придется разбираться в сообщениях компилятора и утилиты make
, подсовывать вместо недостающих файлов символические ссылки на имеющиеся и выполнять другие нетривиальные действия, помогающие короче познакомиться с вашей операционной системой.7.5.2. Установка из бинарных пакетов
Как ни гибок способ установки приложений из исходных текстов, позволяющий установить программу, созданную для другого дистрибутива, и настроить ее под конкретную системную среду, вчерашние пользователи Windows тоскуют по простоте setup.exe. Хорошим компромиссом считается распространение приложений в виде заранее собранных на определенной платформе бинарных пакетов.
Пакет содержит исполняемые файлы и библиотеки, подлежащие установке, а также разную служебную информацию об этом пакете: какие пакеты необходимы для его работы (зависимости), с какими пакетами он конфликтует, какие действия следует выполнить при его установке, список файлов, сведения о разработчике.
В мире Linux известны два формата бинарных пакетов: RPM от компании Red Hat, используемый не только в клонах Red Hat, но и в других популярных дистрибутивах: Mandrake, SuSE, ASPLinux, ALTLinux, Black Cat, и DEB, разработанный для Debian Linux и применяемый в его потомках: Knoppix, Corel Linux, Lindows. Пакеты дистрибутива Slackware — это просто сжатые архивы .tgz, не поддерживающие зависимостей. От архивов исходных текстов они отличаются только тем, что в них находятся заранее скомпилированные программы.
Набор утилит для установки, конфигурирования, удаления и ведения базы пакетов определенного формата называется системой управления пакетами. Наиболее распространены системы:
♦ RPM — менеджер пакетов формата RPM;
♦ DPKG — система управления пакетами DEB;
♦ APT — менеджер пакетов, поддерживающий автоматическое разрешение зависимостей, разработанный для Debian и заимствованный RPM-дистрибутивами.
На сегодняшний день самым распространенным в бывшем СССР средством управления пакетами является RPM, на котором я остановлюсь подробнее.
Первоначально название программы RPM расшифровывалось как Red Hat Package Manager, но в соответствии с соглашением GNU о рекурсивном именовании (GNU's Not Unix) сейчас оно читается как RPM Package Manager. Это открытая пакетная система, позволяющая создавать пакеты из исходного и двоичного кода, так что двоичные файлы легко установить и сопровождать, а исходный код легко собрать. Система также поддерживает базу данных обо всех установленных пакетах и входящих в них файлах.
Пакеты формата RPM — это файлы с расширением .rpm. В имени файла обычно присутствуют название и версия приложения, выпуск пакета и платформа, для которой он собран. Например, для пакета software-3.0-2.i386.rpm
Самыми «универсальными» пакетами являются пакеты, рассчитанные на архитектуру Intel 386. Собранная таким образом программа должна работать на любом процессоре Intel, начиная с 80386DX (или совместимого с ним). А вот если у вас процессор 80486, пакет, рассчитанный для работы с архитектурой 80586 (Pentium), скорее всего, не установится в вашей системе. Обычно для процессоров архитектуры CISC (с набором команд x86) используются следующие обозначения:
♦ i386 — Intel 80386DX;
♦ i586 — Intel Pentium (MMX), AMD K5 (K6);
♦ i686 — Intel PPro, Celeron, PII, PIII, PIV.
Узнать о своем процессоре можно по команде uname -а
В простейшем случае команда установки пакета выглядит так:
$ rpm -i <пакет>.rpm
Установку можно производить не только с локального диска, но и по протоколу FTP:
$ rpm -i ftp://somehost.domain/pub/package.rpm