Установка пакета из исходников, обычный способ
Классический для свободного софта путь распространения, распространение в исходных текстах. В таком виде программа представляет собой архив с именем вида:name-version.tar.gzУстановка такого софта производится выполнением набора несложных команд:
tar -xzvf name-version.tar.gz cd name-version ./configure make sudo make installРасшифровка действий:
Шаг | Команда | Что делает |
---|---|---|
1 | tar -xzvf name-version.tar.gz | Распаковка архива |
2 | cd name-version | Переходим в полученный после распаковки директорий |
3 | ./configure | Настройка исходников на нашу систему |
4 | make | Компиляция |
5 | sudo make install | Установка |
Проблемы
Проблема 1: Отсутствие нужных библиотек
Очень часто все не идет так гладко, а на шаге 3, команда configure на что-то жалуется. А жалуется она как правило на отсутствие нужных библиотек, или заголовков библиотек. Рассматриваем внимательно выход, который выдала команда configure на консоль и устанавливаем недостающие библиотеки и заголовки. Заголовки для Debian-подобных дистрибутивов, в том числе и для Ubuntu находятся в пакетах с суффиксом -dev в названии пакета.Предположим мы увидели, что configure жалуется на библиотеку, устанавливаем ее в систему:
sudo apt-get install nameЗапускаем configure опять. Теперь жалуется на заголовки этой же библиотеки. Устанавливаем и их:
sudo apt-get install name-devНу наконец, установили все нужное, откомпилировали, работаем и получаем удовольствие. Казалось бы, счастье, вот оно. Но нет, вырисовывается проблема 2:
Проблема 2: Бардак в системе
Предположим, мы установили одну программу из исходников, другую, третью. И вдруг нам понадобилось удалить первую, или заменить ее версию. А мы, оказывается не знаем, какие файлы относятся к этой программе и где они. Одни программы устанавливают свои файлы в иерархию /usr/local , другие вообще в /usr . В общем, мы не знаем, как вычистить файлы, относящиеся к пакету.Отступление: Стандартная иерархия файловой системы Linux (File System Hierarchy Standard)
В Linux есть стандарт на размещение файлов в системе. Ссылки приведены в разделе Литература. По этому стандарту, в иерархии директорий /usr должны храниться файлы используемые пользователями, в том числе и пользователям с других компьютеров. В иерархии директорий /usr/local - файлы используемые локальными пользователями. Таким образом нам нужно наши программы ставить в иерархию /usr/local, и при этом избежать бардака.Улучшеный способ установки: менеджер пакетов xstow
Сделать это нам поможет менеджер пакетов xstow. Можно пользоваться также менеджером stow, xstow - это расширенная версия. Что он делает? Очень простую вещь. Мы устанавливаем наши программы в иерархию /usr/local/stow, каждую программу в свою директорию, а потом менеджер xstow создает символьные линки на наши файлы из иерархии /usr/local. Устанавливаем xstow:sudo apt-get install xstowТеперь последовательность операций при установке пакета с использованием менеджера xstow.
tar -xzvf name-version.tar.gz cd name-version ./configure --prefix=/usr/local/stow/name-version make sudo make install cd /usr/local/stow/ sudo xstow name-versionРасшифровка действий:
Шаг | Команда | Что делает |
---|---|---|
1 | tar -xzvf name-version.tar.gz | Распаковка архива |
2 | cd name-version | Переходим в полученный после распаковки директорий |
3 | ./configure | Настройка исходников на нашу систему |
4 | make | Компиляция |
5 | sudo make install | Установка |
6 | cd /usr/local/stow/ | Переходим в директорий, где лежат программы |
7 | sudo xstow name-version | Создаем символьные линки в иерархию /usr/local |
Команда:
sudo xstow -D name-versionУдаляет символьные ссылки. После удаления ссылок директорию с файлами программы, находящуюся в /usr/local/stow/ можно удалять.
Комментариев нет:
Отправить комментарий