Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:programs_installation [2012/05/29 20:39] [Ссылки] |
wiki:programs_installation [2012/11/11 11:28] [Неправильная установка] |
||
---|---|---|---|
Строка 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 warning>Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.</note> | <note warning>Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.</note> | ||
Строка 64: | Строка 67: | ||
<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/130868/|Хабрахабр]] |
{{tag>Howto установка компиляция программирование исходники}} | {{tag>Howto установка компиляция программирование исходники}} |