LINUX.ORG.RU

О компиляции ПО из исходных кодов

 


0

0

Два опубликованных сегодня перевода посвящены одной и той же проблеме - компиляции ПО из исходных кодов, но выражают противоположные точки зрения на этот процесс: 1) Steven Goodwin, "Три шага до ненависти к свободному ПО" (http://rus-linux.net/lib.php?name=MyL...); 2) Mitch Meyran, "Три шага до любви к Свободному софту: configure, make, make install" (http://rus-linux.net/lib.php?name=MyL...). Вторая статья интересна сама по себе. Было бы также интересно увидеть дополнения "бывалых" линуксоидов по поводу тех затруднений, которые могут возникнуть при компиляции исходных кодов и методам преодоления этих затруднений.

>>> Подробности

★★★

Проверено: Shaman007 ()
Ответ на: комментарий от anonymous

>quickpkg конечно не для тебя

Разные архитектуры на разных компах.
Обновления.
Разные USE флаги.

И, это... Запятые, конечно, не для тебя.

shlag
()
Ответ на: комментарий от Absurd

>Вторые 90 процентов времени разработки уходит на то чтобы соорудить нечто ставящееся без проблем на любую конфигурацию.

Вы ошиблись или специально два раза написали 90?

Мне кажется, что если не сильно отходить от стандартов и правильно
прописывать зависимости, то подгонка под конфигурацию не должна быть
трудоемкой. Приведите пример программы/библиотеки, которую вы имеете ввиду.

ttnl ★★★★★
()

Обе т.н. статьи ни о чем. Какой-то бред сивой кобылы.

dm1024 ★★★
()
Ответ на: комментарий от anonymous

> интересно что же за программы такие используют наши суровые стоматологи для работы что их нет в поставке какого-нибудь попсового дистрибутива?

Вообще-то если идет речь о работе стоматолога(рабочий компьютер), то на работе у них стоит специализированный софт(из российских знаю только Инфо-Дент(очень, кстати популярна среди российских коммерческих стомКлиник, ибо, походу, альтернатив нету) - быдлософт, написан быдло кодерами на ObjectPascal(Delphi)(внутрь лучше не смотреть, это не для слабонервных)). Я почему-то сомневаюсь что эту софтину найдете в поставке =)

Так вот у этой софтины даже инсталятора нету. Ее может поставить только специалист фирмы, у которой прога ьберется в аренду(типа проплата ключей на месяц, после чего каждый месяц приезжает специалист и патчит софтину чтобы срок продлить). А под линукс сие творение вообще не представляю...

> З.Ы.: Откуда знаю? Много знакомых стоматологов...

oxfa
()

Вот мне как конечному пользователю пришлось компилировать - драйвер на планшет Wacom. Я не айтишник, но справился за полчаса. Потом открытые дрова на АТИ регулярно собираю из гита - всё надеюсь на лучшее :( Последнее что собирал - emelfm2 0.4.0 - просто из любопытства. Не думаю что сама процедура так уж сильно отличается в генту и в убунту.

sid350 ★★★★★
()
Ответ на: комментарий от Rikz

>Как связано знание языка Си и умение открыть окно терминала и набрать несколько команд?

Бывает, библиотеку поломали, а автор программы не учел эти изменения.
Например, в структуре поменяли элементы. Всех случаев не вспомнишь,
последний, с которым имел дело - при сборке клиента под Google Earth

ttnl ★★★★★
()
Ответ на: комментарий от anonymous

> и я не помню практически ни одного такого случая, чтобы был какой-то софт, который не собрался и не работал

А как быть если ./configure проходит нормально, а make вылетает без внятных ошибок? А tgz надо собрать, т.к готовый не нашел. Такое иногда случается, хоть и не часто. Скорее это на совести разработчика, во всяком случае так удобней объяснить :)

anonymous
()
Ответ на: комментарий от Rikz

>Как связано знание языка Си и умение открыть окно терминала и набрать несколько команд?

Много плясок с бубном при сборке программ вокруг "маленьких дистрибутивов", основанных на библиотеке uclibc. В ней нет некоторых стандартных glibc функций

ttnl ★★★★★
()

Однозначно за 2 вариант...Только вместо make install-makepkg писать надо.Почему?? да по той простой причине что бинарные пакеты чаще всего доступны тока для всякой бубунты и прочего такого...Да и выкачивание исходных кодов позволяет слегка разгрузить линию ибо весят тарболлы такие чаще всего меньше.....

Maniac
()
Ответ на: комментарий от anonymous

>А как быть если ./configure проходит нормально, а make вылетает без внятных ошибок? А tgz надо собрать, т.к готовый не нашел. Такое иногда случается, хоть и не часто. Скорее это на совести разработчика, во всяком случае так удобней объяснить :)

Ну, и такое конечно бывает - раз в сто лет, но это вовсе не повод для ненависти; это даже не повод для написания статьи. Пот той-же приснопомянутой виндовс - довольно часть бывает, что не работает уже готовый, собранный софт, да, что там софт - сама виндовс порой такое творит, что мама не горюй, и в отличии от линукс - сделать там вообще ничего нельзя. Только почему-то многие не высказываются о ненависти к этому продукту, и статьи, подобные этой не пишут.

anonymous
()

Первая статья сильно старая - в современных дистрибутивах есть и большая совместимость за счёт LSB и большее удобство за счёт метапакетов типа build-essential в убунте, и, наконец, большие размеры репозитариев за счёт большей популярности Linux и как следствие, большего количества майнтейнеров. Соответственно, вторая статья не нужна, поскольку опоздала на год.

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

Aceler ★★★★★
()
Ответ на: комментарий от sid350

>Не думаю что сама процедура так уж сильно отличается в генту и в убунту.

Отличается. В оверлеях генты, скорее всего, уже был ebuild для софтины. При таком условии сборка - это стандартный процесс установки. Да, и все будет чин чинарем: контроль зависимостей, версий, чистое удаление при необходимости.

Ну а если нет, то либо так же как в других (но это не Ъ), либо у тебя появился шанс стать ибилдописателем :))

shlag
()
Ответ на: комментарий от anonymous

>Лучше ArchLinux
>+100. Он примерно как слакваре только намного и намного вменяемей!

а сисема инициализации у него какая?

shlag
()
Ответ на: комментарий от Aceler

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

Не так-уж редко это и бывает - с ростом уровня пользователя, обычно растут и его запросы - и софта в родном репозитории становится маловато, и собран он бывает не так, как хотелось-бы, и версии иногда хочется посвежее.

anonymous
()
Ответ на: комментарий от shlag

>а сисема инициализации у него какая?

System V

anonymous
()
Ответ на: комментарий от ttnl

> Бывает, библиотеку поломали, а автор программы не учел эти изменения.

угу. Еще бывают случаи, что программа еще не написана

Rikz ★★★
()

Странные статьи... Складывается впечатление, что сборка программ из исходников сродни волшебству, или для этого требуется редкое везение. А это самый обычный процесс, вполне доступный пользователям, у которых в голове мозги, а не серое вещество. Причин для сборки много, это и отсутствие нужного софта в дистре(mtpaint, vvd, руссифицированый и собраный с нужными опциями Mplayer, свежие версии GIMP, и т.д), не могущего там быть по разным соображениям(freetype и иже с ним, кодеки и т.п), криво работающий штатный софт(Wine из дистра работает через пень-колоду, собраная же из исходников - вполне прилично). Мало того, я не припомню случая, что бы меня устраивало штатное ядро, идущее в составе дистрибутива. Почти всегда требуются или пересборка или патчи. Если интересно, могу привести примеры. И наконец, это она, свобода, за которую и боролись. Код под GPL, всё в ваших руках.

gearbox
()
Ответ на: комментарий от adarovsky

>Рад за вас :) По специальности айтишник поди?

Программист. Хотя сейчас больше наукой занимаюсь...

Qasta
()
Ответ на: комментарий от anonymous

> ок, переформулирую интернеты тыпеют от юзеров, которые хотят поставить прогу из сырцов не зная что такое компилятор.

ну... сырцовые пакеты (*.src.rpm), которые rpm сам компилит и собирает (вернее gcc компилит, а rpm командует), ещё никто не отменял :) я не прав? вся суть - правильно скомпоновать такой пакет - пользователь даже не заметит разницы между установкой сырцового и бинарного пакета. не уверен насчёт deb сырцовых пакетов, но думаю, что там тоже нет больших проблем %)

Ptomaine
()

Скажем так. Скомпилить программу из сырцов не такая уж и тривиальная задача. Частенько бывает, что *.h-файлы находятся в другом месте или версия библиотек другая.. Так что гентушникам нечего хвастать своим умением компилять. За них всё сделал мантейнер: при сборке с помощью *.ebuild наложатся нужные пачти и скачаются/установятся нужные зависимости. Ну а для rpm дистров есть src.rpm, которые тоже порой содержат такие патчи, без которых собрать ну никак нельзя. Аналогично можно и для *deb.

Так что сборка с помощью "configure, make, make install", кроме как острой необходимости, не нужна. Да и превращать дистрибутив в помойку мягко говоря не стоит ::))

anonymous
()
Ответ на: комментарий от gearbox

>Странные статьи... Складывается впечатление, что сборка программ из исходников сродни волшебству, или для этого требуется редкое везение. А это самый обычный процесс, вполне доступный пользователям, у которых в голове мозги, а не серое вещество.

+1

Я вот не умею кафельную плитку ложить... Написать что-ли статью, что плитка в ванной - не нужна?

Может первому автору стОит заняться тем, что он хорошо умеет - чисткой сортиров?

Led ★★★☆☆
()
Ответ на: комментарий от anonymous

>Так что сборка с помощью "configure, make, make install", кроме как острой необходимости, не нужна. Да и превращать дистрибутив в помойку мягко говоря не стоит ::))

А вот сейчас ты обидел всех слакварщиков! Это для тебя - "помойка", а для них - Родина!

Led ★★★☆☆
()
Ответ на: комментарий от anonymous

> А как быть если ./configure проходит нормально, а make вылетает без внятных ошибок? А tgz надо собрать, т.к готовый не нашел. Такое иногда случается, хоть и не часто. Скорее это на совести разработчика, во всяком случае так удобней объяснить :)

В слакваре иногда не хватает pkgconfig-файлов. Судя по числу жалоб, на этом дистрибутиве больше всего проблем со сборкой.

anonymous
()
Ответ на: комментарий от shlag

> Отличается. В оверлеях генты, скорее всего, уже был ebuild для софтины. При таком условии сборка - это стандартный процесс установки. Да, и все будет чин чинарем: контроль зависимостей, версий, чистое удаление при необходимости.

Очередной гентушник который не слышал про deb-src и src.rpm

apt-get build-dep foo
установит всё что необходимо для сборки пакета из исходников
apt-get -b source foo
скачает исходники и соберет из них deb пакет

pawnhearts ★★★★★
()

первая статья

>Так почему не удается одним и тем же, безусловно умным программистам производить тарбаллы, zip-файлы, архивы и сам код, которые будут действительно компилироваться? На любой системе. Всегда.

автор очевидно в жизни ни разу ничего серьезного не написал, если задает настолько идиотский вопрос.

>Двоичные файлы, хотя и повинны в грехах необщедоступности, нередактируемости и несвободы, в основном ведут себя намного проще. Особенно под несвободной операционной системой, вроде Windows. Ирония? Глупость? Или хороший дизайн?

глупость. катастрофическая. автор живет в сказочной стране и выражение "DLL Hell" ему совершенно незнакомо. как и постоянно меняющиеся политики мелкософта по поводу борьбы с.

>Будущее, возможно за скриптовыми языками и байтовым кодом Java , так как они имеют систему пакетирования своего исходного кода.

лол рофл.

anonymous
()
Ответ на: комментарий от Led

> А вот сейчас ты обидел всех слакварщиков! Это для тебя - "помойка", а для них - Родина!

Вообще-то в слакваре пакетный менеджер ни кто не отменял. При умелом использовании вполне можно собирать пакеты самому, главное наличие мозга и свободного времени ::))

anonymous
()

> Намыльте, промойте, повторите.

Это ./configure & make & install ?

ukko
()
Ответ на: комментарий от ttnl

>Для сборки любой программы достаточно знание Си на уровне синтаксиса

Бред полнейший.

stellar
()

очередная унылая тема.

В дистрах таких как Дебиан и Убунту уже есть мнооого скомпиленных пакетов. Ну или можно найти репы для дистров с пакетами которых нет в оф репах.

А если прога есть тока в сорцах то это ясен пень бета. И люди которые ее ставят уже не домохозяйки и готовы к проблемам.

И вообще какой то бред. Называть сборку из сорцов минусом свободного ПО значит показывать свою некомпетентность.

PS: Сам собираю из сорцов только когда скучно становится.=)

Dudraug ★★★★★
()
Ответ на: комментарий от Displacer

>Да и включение/невключение в дистрибутив определённой софтины - критерий её качественности.

Ерунда. Включение чего-либо в дистрибутив - это следствие того, что мейнтейнеры решили, что "пусть будет". Какое-то отношение к популярности софта это решение имеет, и то не всегда. Связи с качественностью - никакой.

stellar
()
Ответ на: комментарий от ttnl

>Для сборки любой программы достаточно знание Си на уровне синтаксиса

Молодец. Пошутил. Петросян.

Dudraug ★★★★★
()
Ответ на: комментарий от stellar

>Связи с качественностью - никакой.

Например что бы попасть в стабильную ветку Дебиана софтина должна проделать колоссальный путь - выпуск,сборки/пересборки, тестирование, патченье.

Это собственно и есть путь к качеству, то что софт там не всегда качественный это отдельный разговор, но политика Дебиана нацелена что бы в стабильной ветки был качественный софт.

нэ?

Dudraug ★★★★★
()

> А если прога есть тока в сорцах то это ясен пень бета

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

xep
()
Ответ на: комментарий от xep

Ты пытаешься найти исключения.

А я говорил в общем=)

Dudraug ★★★★★
()

Вот, к слову, скажите как в Демьяне и прочих бубунтах по-человечески Python Eggs или CPAN'овые модули ставить, не превращая легким движением easy_install и cpan ОС в Слаку?

В Gentoo есть автоматизированные средства, g-pypi и g-cpan. Сказал — работает, в итоге генерит ebuild и ставит его.

Для Debian нашел только заброшенный easy-deb, заставить который сделать .deb мне не удалось, не говоря уже о какой-то автоматизации обновлений и т.д.. Собирать все по sudo checkinstall setup.py install отвратительно.

Поэтому идея не о едином формате (сначала rc-систему надо выпилить единую, хотя бы), но об автоматизированных адаптерах-переходниках между репозиториями разных форматов мне по нраву. Проблема в том, что я оно видел только в Gentoo.

anonymous
()
Ответ на: комментарий от adarovsky

> Gentoo был актуален, когда был дорогой трафик. Тогда deltup рулил со страшной силой. А сейчас, ей-богу, с ubuntu жить намного проще.

есть золотая середина - называется Arch Linux.

всё нужное часто собираем с нужными оптимизациями, остальное просто ставим ставим бинарями как собрал маинтэйнер (i686 или -64)

Ky6uk-Py6uk
()
Ответ на: комментарий от xep

> а кто пробовал огнелис, штормоптиц из сорцев собирать?

а чё там его собирать...

abs
cd /var/abs/extra/network/firefox
makepkg
pacman -U firefox*.pkg.tar.gz

Ky6uk-Py6uk
()

Всегда знал что нас обманывают. От любви до ненависти на самом деле шесть шагов.

anonymous
()
Ответ на: комментарий от adarovsky

>> аффтор первой статьи ниасилил прочитать на что ему ругаеццо скрипт\компилятор? > он и не должен этого знать. По-хорошему, он вообще не обязан знать, что такое компилятор

По статье впечатление, что про `пакеты` автор тоже не знает - иначе невозможно объяснить его утверждение о легкости установки софта под windows. Статья бы прокатила, если бы автор привел пример какой-нить кривой утилиты, а затем на ее примере показал бы нужность automake.

skwish ★★
()
Ответ на: комментарий от ttnl

configute, make, make install - редкостное говно для фанатиков.

Полностью согласен с автором первой статьи.

anonymous
()
Ответ на: комментарий от anonymous

> configute, make, make install - редкостное говно для фанатиков.

А я всю жизнь думал что это инструменты такие...

anonymous
()
Ответ на: комментарий от adarovsky

Вы такой тупой. =( Генту как раз отличался образцовостью в этом. В убунте как раз иногда приходилось с демонами потрахаться. Генту всегда был желателен широкий канал.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.