Компиляция и установка программ из исходников Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:programs_installation [2012/05/29 20:37]
СперанскийСперанскийСперанскийDictum ac factum [Правильная установка(создание deb-пакета в ручную)]
wiki:programs_installation [2014/03/13 17:39] (текущий)
FantineyFantineyFantiney [Ссылки] +ссылка
Строка 1: Строка 1:
-====== Компиляция и установка программ из исходных текстов======+====== Компиляция и установка программ из исходников======
 Не редко необходимые пакеты можно найти только в виде исходных текстов,​ в данной статье описывается метод установки пакета из исходных текстов. Не редко необходимые пакеты можно найти только в виде исходных текстов,​ в данной статье описывается метод установки пакета из исходных текстов.
 ======Распаковка====== ======Распаковка======
Строка 32: Строка 32:
 Усилия потраченные на ''​Правильную установку''​ в последствии с лихвой окупятся в случае удаления или обновления устанавливаемого программного обеспечения. Усилия потраченные на ''​Правильную установку''​ в последствии с лихвой окупятся в случае удаления или обновления устанавливаемого программного обеспечения.
 =====Правильная установка(Вариант №1)===== =====Правильная установка(Вариант №1)=====
-Установка при помощи утилиты **checkinstall**+Установка при помощи утилиты **checkinstall**. Для установки выполните 
 +<code bash>​sudo apt-get install checkinstall</​code>​
 <note important>​Минус данного способа:​ **checkinstall** понимает не все исходники,​ поскольку автор программы может написать особые скрипты по установке и **checkinstall** их не поймёт.</​note>​ <note important>​Минус данного способа:​ **checkinstall** понимает не все исходники,​ поскольку автор программы может написать особые скрипты по установке и **checkinstall** их не поймёт.</​note>​
 Для создания и установки deb-пакета необходимо выполнить Для создания и установки deb-пакета необходимо выполнить
-<code bash>​checkinstall</​code>​+<code bash>sudo checkinstall</​code>​
 =====Правильная установка(Вариант №2)===== =====Правильная установка(Вариант №2)=====
-Создание deb-пакета "​вручную"​.+Быстрое создание deb-пакета "​вручную"​.
 <note important>​Основное отличие от предыдущего способа заключается в том, что в данном случае вы создаете пакет вручную и отслеживаете все вносимые изменения. Так же этот способ подойдет вам, если исходники не поддерживают сборку пакета с **checkinstall**.</​note>​ <note important>​Основное отличие от предыдущего способа заключается в том, что в данном случае вы создаете пакет вручную и отслеживаете все вносимые изменения. Так же этот способ подойдет вам, если исходники не поддерживают сборку пакета с **checkinstall**.</​note>​
   * Производим установку во временную директорию,​ где получаем весь набор устанавливаемых файлов:​   * Производим установку во временную директорию,​ где получаем весь набор устанавливаемых файлов:​
Строка 59: Строка 60:
   * Получаем на выходе tempinstall.deb,​ который и устанавливаем ​   * Получаем на выходе tempinstall.deb,​ который и устанавливаем ​
 <code bash>​sudo dpkg -i tempinstall.deb</​code>​ <code bash>​sudo dpkg -i tempinstall.deb</​code>​
 +=====Установка (вариант №3)=====
 +Процедура создания deb-пакета подробно описана в данной [[wiki:​создание_deb_пакетов|статье]].
 =====Неправильная установка===== =====Неправильная установка=====
-<​note ​important>​Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой,​ скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось,​ получить в удобоваримом виде невозможно. Иногда,​ конечно,​ Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.</​note>​+<​note ​warning>​Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой,​ скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось,​ получить в удобоваримом виде невозможно. Иногда,​ конечно,​ Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.</​note>​
 Для установки необходимо выполнить Для установки необходимо выполнить
 <code bash>​sudo make install</​code>​ <code bash>​sudo make install</​code>​
 Для удаления пакета,​ установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install). Для удаления пакета,​ установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).
-<code bash>​make uninstall</​code> ​+<code bash>sudo make uninstall</​code> ​
 ======Ошибки====== ======Ошибки======
 Часто на этапе конфигурации конфигуратор сообщает,​ что нехватает той или иной библиотеки. Название библиотеки,​ которое он сообщает,​ не всегда соответствует названию пакета в Ubuntu. Из собственного опыта могу посоветовать поискать в [[wiki:​synaptic|Синаптике]] нужный пакет, исключив префикс lib, если нашлось несколько пакетов различающихся приставкой -dev в названии,​ то вам нужно установить именно -dev пакет (обычно он тянет за собой и не -dev пакет). Часто на этапе конфигурации конфигуратор сообщает,​ что нехватает той или иной библиотеки. Название библиотеки,​ которое он сообщает,​ не всегда соответствует названию пакета в Ubuntu. Из собственного опыта могу посоветовать поискать в [[wiki:​synaptic|Синаптике]] нужный пакет, исключив префикс lib, если нашлось несколько пакетов различающихся приставкой -dev в названии,​ то вам нужно установить именно -dev пакет (обычно он тянет за собой и не -dev пакет).
Строка 94: Строка 97:
 ====== Ссылки ====== ====== Ссылки ======
  
-Обсуждение проблем с компиляцией и установкой программ в Ubuntu на форуме [[http://​forum.ubuntu.ru/​index.php?​board=13.0|forum.ubuntu.ru]]+  * Обсуждение проблем с компиляцией и установкой программ в Ubuntu на форуме [[http://​forum.ubuntu.ru/​index.php?​board=13.0|forum.ubuntu.ru]] 
 +  * Внесены изменения по мотивам [[http://​habrahabr.ru/​post/​130868/​|Хабрахабр]] 
 +  * [[http://​habrahabr.ru/​post/​78094/​|Подробной HowTo по сборке бинарных deb пакетов]]
  
-{{tag>​Howto установка компиляция программирование}}+{{tag>​Howto установка компиляция программирование ​исходники}}