Помогите научиться устанавливать программы из исходного кода

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

frost42
Писатель
Сообщения: 43
Зарегистрирован: 21 фев 2012, 19:50
Откуда: Новокузнецк
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение frost42 » 16 янв 2013, 09:59

Olej писал(а):
frost42 писал(а):
но не делать make install
ну есть же утилита checkinstall
Есть.
Но:
- это больше экзотика, чем широко используемый инструмент...
- не во всех (или ни в каких?) дистрибутивах она устанавливается по умолчанию, её нужно знать, искать и доустанавливать
- это инструмент любимый пользователями DEB-дистрибутивов, я не знаю, насколько он применим в RPM-дистрибутивах ... и других.

Здесь есть подробнее: Сборка программы из исходников, установка, сборка пакета.
На PClinuxOS проверял, работало без каких либо осечек, на Slackware работало, ну и сейчас на Salix ей пользуюсь, хотя да, везде до устанавливал отдельно.

frost42
Писатель
Сообщения: 43
Зарегистрирован: 21 фев 2012, 19:50
Откуда: Новокузнецк
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение frost42 » 16 янв 2013, 10:16

Вот и возникают сомнения и вопрос... хотелось бы слышать мнения на этот счёт: имеет ли смысл установка открытых публичных проектов через (чуть не сказал "задницу" ) сборку пакетов под пакетного менеджера?

Мне думается, очень даже имеет.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Olej » 16 янв 2013, 15:04

frost42 писал(а):
Вот и возникают сомнения и вопрос... хотелось бы слышать мнения на этот счёт: имеет ли смысл установка открытых публичных проектов через (чуть не сказал "задницу" ) сборку пакетов под пакетного менеджера?

Мне думается, очень даже имеет.
Это, наверное, по ситуации?

frost42
Писатель
Сообщения: 43
Зарегистрирован: 21 фев 2012, 19:50
Откуда: Новокузнецк
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение frost42 » 16 янв 2013, 15:48

Это, наверное, по ситуации?
Я думаю, что все зависит от софта. Просто какой смысл собирать какой-нибудь VLC( только если так, потренироваться) :-D, другое дело, когда нужна софтина которой нет в репозитории, и без нее никак не обойтись, то думаю что сборка, после которой пакет будет виден в менеджере пакетов, имеет право на жизнь.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Olej » 16 янв 2013, 16:21

frost42 писал(а):
Это, наверное, по ситуации?
Я думаю, что все зависит от софта. Просто какой смысл собирать какой-нибудь VLC( только если так, потренироваться) :-D, другое дело, когда нужна софтина которой нет в репозитории, и без нее никак не обойтись, то думаю что сборка, после которой пакет будет виден в менеджере пакетов, имеет право на жизнь.
Безусловно:

Правило приоритета 1: если пакет есть в репозитарии + если устраивает его версия (не нужна более новая) - ставим только из репозитария...

Ну а если нет?

Если это единичная установка на компьютер разработчика (среда разработки, исполнения, тестирования) ... например аудиопакеты типа sox, vorbis, ogg, speex, ... ?

Первейшим делом смотрим наличие в Makefile цели uninstall (или нечто похожее) - наличие такой цели всегда признак хорошего профессионального проекта ... для возможности:

Код: Выделить всё

# make uninstall
...
Если такая возможность есть, я всегда для единичной инсталляции ... "в гробу видел" сборку пакета дистрибутива (RPM/DEB) и буду устанавливать "по классике".
Даже если нет uninstall - тоже сильно подумаю собирать ли пакет дистрибутива ... и, скорее всего, не стану это делать.

Другое дело, если пакет нужно растиражировать, даже на 2-3-4 компьютера заказчика. Тогда может быть прямой резон сборки пакета + с последующей установкой средствами пакетного менеджера.

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Ali » 16 янв 2013, 18:48

Olej писал(а):...

Ну а если нет?

Если это единичная установка на компьютер разработчика (среда разработки, исполнения, тестирования) ... например аудиопакеты типа sox, vorbis, ogg, speex, ... ?

Первейшим делом смотрим наличие в Makefile цели uninstall (или нечто похожее) - наличие такой цели всегда признак хорошего профессионального проекта ... для возможности:

Код: Выделить всё

# make uninstall
...
Если такая возможность есть, я всегда для единичной инсталляции ... "в гробу видел" сборку пакета дистрибутива (RPM/DEB) и буду устанавливать "по классике".
Даже если нет uninstall - тоже сильно подумаю собирать ли пакет дистрибутива ... и, скорее всего, не стану это делать.
...
Я бы ещё посмотрел префиксы. И постарался собрать в $HOME или /opt

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Olej » 16 янв 2013, 19:01

Ali писал(а):Я бы ещё посмотрел префиксы. И постарался собрать в $HOME или /opt
Префиксы - обязательно!
... для тех кто не сталкивался - речь именно о параметре configure:

Код: Выделить всё

./configure --prefix=<путь к каталогу>
Но это уже отдельная, совершенно другая история...
- я бы сначала выяснял какой префикс по умолчанию используется в моём дистрибутиве (часто это /usr, /usr/local, ...)
- если устанавливать с другим префиксом, то если пакет ставит библиотеки - они могут стать недоступными для использования другими компонентами (не знают где), это решаемо - но нужно отдельно конфигурировать поиск библиотек...
- я бы затем выяснял какой префикс по умолчанию используется устанавливаемым пакетом (часто это будет достаточно хорошим решением) ... ряд проектов и устанавливается по умолчанию в /opt (/opt и определялся как каталог для не-GNU ПО)
- установка с --prefix=$HOME может быть хорошим решением ... но если на этом компьютере не будет использовать этот проект пользователь с любым другим именем.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Olej » 16 янв 2013, 19:13

Olej писал(а): - если устанавливать с другим префиксом, то если пакет ставит библиотеки - они могут стать недоступными для использования другими компонентами (не знают где), это решаемо - но нужно отдельно конфигурировать поиск библиотек...
Это, кстати, одна из самых частых причин неудач сборки из исходников: определение видимости (связываемости) устанавливаемых библиотек.
И, как выяснилось из публичных обсуждений и разговоров с коллегами - самая плохо понимаемая часть, даже профессиональными программистами-разработчиками (на этот счёт даже в среде разработчиков ходят какие-то невнятные мифы).

Поэтому я специально занимался систематизацией этого вопроса, и он подробно описан:
Olej писал(а): Я свои умения сборки и установки описал довольно детально в тексте Инструменты Linux (главы "Компиляция и сборка приложений" и "Установка программного обеспечения").
Не утверждаю, что это лучшие или самые полные описания ... но что есть то есть ;-)
(вот здесь есть HTML версия для просмотра, для ленивых ;-) : Инструменты Linux для Windows-программистов - но она изрядно устаревшая).
Это уже в отдельной большой главе "Библиотеки".

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Ali » 16 янв 2013, 19:16

Olej писал(а):
Ali писал(а):Я бы ещё посмотрел префиксы. И постарался собрать в $HOME или /opt
Префиксы - обязательно!
... для тех кто не сталкивался - речь именно о параметре configure:

Код: Выделить всё

./configure --prefix=<путь к каталогу>
Но это уже отдельная, совершенно другая история...
- я бы сначала выяснял какой префикс по умолчанию используется в моём дистрибутиве (часто это /usr, /usr/local, ...)
- если устанавливать с другим префиксом, то если пакет ставит библиотеки - они могут стать недоступными для использования другими компонентами (не знают где), это решаемо - но нужно отдельно конфигурировать поиск библиотек...
- я бы затем выяснял какой префикс по умолчанию используется устанавливаемым пакетом (часто это будет достаточно хорошим решением) ... ряд проектов и устанавливается по умолчанию в /opt (/opt и определялся как каталог для не-GNU ПО)
Тут главная идея -- изоляция дистрибутива, от стороннего софта. Возможность использовать пересекающиеся по именам версии разделяемых библиотек(можно разных для разных деревьев в /opt), почти не блокируя дистрибутивную систему управления пакетами. Конечно требуется некоторая обертка-скрипт для запуска и настройки окружения.
Olej писал(а): - установка с --prefix=$HOME может быть хорошим решением ... но если на этом компьютере не будет использовать этот проект пользователь с любым другим именем.
Да, разумеется.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Помогите научиться устанавливать программы из исходного кода

Непрочитанное сообщение Olej » 16 янв 2013, 19:23

Ali писал(а):
Olej писал(а):
Ali писал(а):Я бы ещё посмотрел префиксы. И постарался собрать в $HOME или /opt
Префиксы - обязательно!
... для тех кто не сталкивался - речь именно о параметре configure:

Код: Выделить всё

./configure --prefix=<путь к каталогу>
Но это уже отдельная, совершенно другая история...
- я бы сначала выяснял какой префикс по умолчанию используется в моём дистрибутиве (часто это /usr, /usr/local, ...)
- если устанавливать с другим префиксом, то если пакет ставит библиотеки - они могут стать недоступными для использования другими компонентами (не знают где), это решаемо - но нужно отдельно конфигурировать поиск библиотек...
- я бы затем выяснял какой префикс по умолчанию используется устанавливаемым пакетом (часто это будет достаточно хорошим решением) ... ряд проектов и устанавливается по умолчанию в /opt (/opt и определялся как каталог для не-GNU ПО)
Тут главная идея -- изоляция дистрибутива, от стороннего софта. Возможность использовать пересекающиеся по именам версии разделяемых библиотек(можно разных для разных деревьев в /opt), почти не блокируя дистрибутивную систему управления пакетами. Конечно требуется некоторая обертка-скрипт для запуска и настройки окружения.
Тут ещё могут помогать проекты-обёртки от сторонних производителей.
Уже упоминавшаяся здесь утилита checkinstall:
frost42 писал(а):
но не делать make install
ну есть же утилита checkinstall

Ответить

Вернуться в «Администрирование Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей