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

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

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

Arturmolev
Интересующийся
Сообщения: 2
Зарегистрирован: 09 дек 2009, 19:46
Контактная информация:

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

Непрочитанное сообщение Arturmolev » 09 дек 2009, 20:26

1) Я знаю, что надо зайти в исходный каталог дерева с исходным кодом.
Вопрос, как найти этот каталог? Я не вижу файла с расширением СРР или
какого-то скрипта. Часто вижу только "install" и рид ми.
2) Я знаю, что нужно выполнить команду . / configure. Вопрос в том, как и где эту команду выполнить? ЭТу команду выполнять из командной строки или из меню "выполнить программу" или вообще из редактора С++???
3) Потом нужно будет выполнить команду "make", потом make install, а потом make clean. Только вопрос в том, где нужно набирать эти команды, в командной строке, в какой-либо проге, иои в фоновом режиме в самом линукс??????? Помогите плиз. Объясните, очень хочу линукс освоить. У меня мандрива линукс. А можно устанавливать программы из исходного кода в фоновом режиме, а не из командной строки?????

droncheek
Интересующийся
Сообщения: 7
Зарегистрирован: 29 ноя 2009, 07:52
Контактная информация:

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

Непрочитанное сообщение droncheek » 10 дек 2009, 09:07

Команды нужно набирать в командной строке, перед этим перейдя в каталог с самими исходными текстами.

KG_eric
Писатель
Сообщения: 28
Зарегистрирован: 27 фев 2009, 19:37
Контактная информация:

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

Непрочитанное сообщение KG_eric » 12 дек 2009, 13:49

Arturmolev писал(а):1) Я знаю, что надо зайти в исходный каталог дерева с исходным кодом.
Вопрос, как найти этот каталог? Я не вижу файла с расширением СРР или
какого-то скрипта. Часто вижу только "install" и рид ми.
2) Я знаю, что нужно выполнить команду . / configure. Вопрос в том, как и где эту команду выполнить? ЭТу команду выполнять из командной строки или из меню "выполнить программу" или вообще из редактора С++???
3) Потом нужно будет выполнить команду "make", потом make install, а потом make clean. Только вопрос в том, где нужно набирать эти команды, в командной строке, в какой-либо проге, иои в фоновом режиме в самом линукс??????? Помогите плиз. Объясните, очень хочу линукс освоить. У меня мандрива линукс. А можно устанавливать программы из исходного кода в фоновом режиме, а не из командной строки?????
Во первых - зачем вам из исходников?
Во вторых -в любом архиве есть readmy.txt где подробно описано как установить то, что вам надо,
ну а в третьих гораздо лучше если вы установите уже готовый пакет для вашей системы.

И таки скажите , какой именно программы нет в репах мандривы, что вы хотите собирать сами?
А потом я подробно опишу, что и как ;-)

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

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

Непрочитанное сообщение Olej » 06 сен 2012, 21:13

Тема очень давняя, ... но не хотелось новую плодить.
KG_eric писал(а): Во первых - зачем вам из исходников?
во-первых ... ну, например, потому, что это какой-то частный проект (или ведомственный) который не входит ни в какие репозитарии.
во-вторых, открытый публичный проект в исходных кодах будет всегда свежее, чем он же из репозитариев.
в-третьих, пока разыщется download открытого проекта, на его домашней странице попадётся много полезных сопутствующих материалов ... техдокументация, в первую очередь.
в-четвёртых, GNU/Linux - открытая система, и первоосновой всего здесь является программный код ... а не что-то там ещё.
KG_eric писал(а): Во вторых -в любом архиве есть readmy.txt где подробно описано как установить то, что вам надо,
Не во всяком проекте есть readme.
Но есть несколько используемых общих техник сборки проектов, под которые попадают 999 из 1000 проектов.
Эти общие принципы описаны (по возможности): Инструменты Linux для Windows-программистов (глава Инсталляция из исходников).
KG_eric писал(а): ну а в третьих гораздо лучше если вы установите уже готовый пакет для вашей системы.
Для конечного пользователя (какой-нибудь очередной GUI-перделки ;-) ) может быть и "гораздо лучше"...
Но для программиста (или администратора, или любого IT специалиста) - я сильно сомневаюсь в таком утверждении.
KG_eric писал(а): И таки скажите , какой именно программы нет в репах мандривы, что вы хотите собирать сами?
Любой свой собственный проект. ;-)
Вот мы и дошли до вопроса, из-за которого я и решил поднять малосодержательную тему 2-х летней давности ... название темы понравилось ;-) ...

В последние несколько лет (не ранее как 4-5 лет последних эта мода пошла) стали рекомендовать устанавливать проекты из исходных кодов так:
1. конфигурировать ...
2. откомпилировать ...
3. но не делать make install, а ...
4. написать файл спецификации .spec и собрать из скомпилированного проекта - пакет собственного дистрибутива, .rpm или .deb ...
5. установить полученный пакет менеджером пакетов (yum, или apt-get с synaptic).

В достоинствах такого способа установки "в сухом остатке" получается единственное достоинство: возможность корректно позже удалить установленный пакет.

P.S. Хотя многие долговременные публичные проекты имеют часто в Makefile кроме цели install и цель uninstall. Загляните прежде в текст Makefile!

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

Или это очередной "гламур" от дитрибьюторов и майнтейнеров Linux-дистрибутивов? (из опасений последних остаться без работы?)

tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

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

Непрочитанное сообщение tundra37 » 07 сен 2012, 10:14

Имеет смысл для "мелкооптового" распространения каких-то правок. Как пример - мне пришлось собирать предыдущую версию bash, т.к. скрипты в проприетарном продукте не работали на новой версии. В данном случае понадобился один экземпляр, но в принципе мы ПО клонируем и возможен был вариант, что проще на клонах переставить из инсталлятора, чем компилить несколько раз. Да и компилятор пришлось бы ставить :)
Возвращаясь к первому посту. Такие вещи уж точно не нужно делать товарищу, который не знает где у Линукса коммандная строка :)

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

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

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

KG_eric писал(а): И таки скажите , какой именно программы нет в репах мандривы, что вы хотите собирать сами?
Показательный пример возник вот здесь: Установка vsound :
- во-первых, проект общего назначения, которого нет в дистрибутивах Debian ... где раз в 10 больше пакетов, чем где-то "в мандривах" ;-) ... проект: Vsound
- во-вторых, мытарства со сборкой того, кто не сильно понимает толк в этих делах...
- в-третьих, то, что даже при таких исходных условиях сборка таки завершилась успехом.
Вот этим всем обсуждение именно и показательно.

В итоге можно сказать следующее:
- сборку проектов из исходников иногда производить необходимо... даже когда разделяется мнение, что всё что можно должно устанавливаться из пакетной системы (тем не менее, даже то, что есть в пакетной системе я время от времени, эпизодически устанавливаю из исходников);
- сборка проектов из исходников не имеет ничего общего с программированием и его технологиями - это совершенно другой, чисто формальный, механический процесс...
- иногда (в ~80% случаев примерно, как повезёт) сборку из исходников не приходится изучать и править, её удаётся сделать пользователю, который не знает слова компилятор и не понимает что тот делает...

P.S. Кое-что о сборке я описывал в рукописи книги, которую можно скачать здесь: Инструменты Linux. Ничего в технике сборки из исходников нет особенно "военного" ;-) ... просто разучились пользователи всему, уровень квалификации падает и падает.

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

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

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

Olej писал(а):Ничего в технике сборки из исходников нет особенно "военного" ;-)
Мне приходилось одно время собирать из исходников проектов очень много (в одной из прежних фирм работы, крупной, по разработке ПО - по 2-3, а то и 10 проектов в день собирал, которыми потом все на фирме пользовались ... и так 2-3 года, должность такая было + к этому собирал Linux проекты в Solaris 10 и в MINIX 3).
И по опыту сборок могу высказать ещё такие наблюдения (только IMHO):
- сборка из исходников легче идёт в RPM-дистрибутивах, чем в DEB и др. (это если говорить о пакетных дистрибутивах)
- из RPM легче всего в Fedora, потому что, наверное, там самые освежаемые библиотеки и др. пакеты
- после этого можно уже собрать и в любом желаемом дистрибутиве...
- всё это (если много сборок) легче организовать в виртуальных машинах, в том же VirtualBox, где можно спокойно иметь 2 десятка дистрибутивов и операционных систем (у меня их сейчас, думаю, и того больше).

Это в порядке подсказки ... на "попробовать" ;-)

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

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

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

но не делать make install
ну есть же утилита checkinstall

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

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

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

Этой теме уже >3-х лет ... хоть тогда она начиналась и с очень примитивного понимания сборки и установки программных проектов.

Вопросов за это время задавать меньше не стали, поэтому вполне можно бы вернуться к теме...

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

P.S. Мне не хочется сюда вписывать большой объём описаний (обсуждений), которые есть там в тексте - кому это интересно, прочитает там. Но отдельные детали интересно было бы обсудить.

Слабость большинства описаний сборки и установки в том, что:

- Они описывают только традиционную сборку проектов, подготовленных Autoconf/Automake : ./configure - make - ... Но есть другие технологии сборки, которые нужно хотя бы упомнить: qmake, Cmake, ... Иначе описания часто вводят в заблуждение.

- Сборка и установка - это не совсем нераздельные части одного процесса. Бывает достаточно случаев, когда пакеты предоставляются в форме для бинарной установки, что-то типа файлов .run, .sh (даже для пакетов, которые в этих файлах содержат исходные коды). Эти дела очень любят Oracle (то что от Sun им осталось), NVIDIA и т.д. Такую установку тоже нужно бы упоминать и рассматривать.

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

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

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

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

Здесь есть подробнее: Сборка программы из исходников, установка, сборка пакета.

Ответить

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

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

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