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 ()

Краснаглазые уже так отупели что мануалы по configure/make/make install пишут? less README слабо? а если в проекте configure нет, софт становится глючным? а пропиетарным?

по ссылке не ходил конечно. щас пачитаем.

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

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

Есть большое подозрение, что автор просто не пользовался линуксом последние пару лет. Либо ставил что-то типа RHEL, по какой-то непонятной причине. Потом видел, что софт староват, и начинал собирать руками.

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

> Обычным людям надо пользоваться "попсовыми" дистрибутивами, типа ubuntu. Обычно любой пакет собирается для таких дистрибутивов.

Потом выясняется что в дистре программа не той версии и не так собрана, правильная версия и сборка есть в корявом левом репозитории... Если оно встаёт и перекашивает менее 50% системы то уже хорошо. Хотя как правило всё заканчивается пересборкой - взять ту же alsa, которую надо пересобрать чтобы заставить работать некоторые звуковые карты, типа E-MU 0404. Хотя сами манипуляции там совершенно примитивные и могли бы быть включены в дистрибутивный пакет.

anonymous
()

Кхе-кхе... 8)

Позволю себе остановиться на первом пункте - ./configure Благородные доны хоть раз утруждали себя сделать ./configure --help ? Это я к тому, что большинство дополнительных фич в пакетах, как правило, херячится дистроклепателями для сохранения своих нервов. Поэтому было бы неплохо взглянуть на свой самый-самый пакет с этой точки зрения - глядишь чё путное найдется 8)

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

>Вы такой тупой. =(

как пенёк, ага.

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

вы названия дистрибутивов не перепутали? gentoo:

1. никогда не добавляет демоны в автозагрузку. То есть я ставлю, например, postgres, но запускать его не буду, мне просто покомпилить хочется :)

2. обычно не делает нормальные postinstall. см. маршруты для avahi.

3. при выборочном обновлении (см. ограниченный трафик) легко испортить систему, в то время как ubuntu/debian вытянет всё по зависимостям. В gentoo я буду сидеть с revdep-rebuild

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

>Потом выясняется что в дистре программа не той версии и не так собрана, правильная версия и сборка есть в корявом левом репозитории

пример, пожалуйста, без п%#&ежа. Не встречал таких, со своими скудными требованиями.

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

>взять ту же alsa, которую надо пересобрать чтобы заставить работать некоторые звуковые карты, типа E-MU 0404

если уж купил неподдерживаемую железяку, на форумах обычно есть подробная инструкция, как что ставить. Копипаст обычно работает. Более того, вменяемые люди собирают пакет и выкладывают, чтобы остальным не надо было ставить *-dev и тратить своё время

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

Портировать можно всё, даже делпхи (lazarus в зубы и переписывать). Другое дело что проще было с самого начала писать хоть на той же жабе - она хоть кроссплатформенна.

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

> пример, пожалуйста, без п%#&ежа. Не встречал таких, со своими скудными требованиями.

А легко - плеер Audacious с поддержкой .ape...

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

> если уж купил неподдерживаемую железяку

Так в том и дело, на сайте альсы написано, что данная карта работает уже аж в предыдущей версии этой самой альсы. В реальности в той версии оно не работает вообще, а более новую надо пересобирать.

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

> Благородные доны хоть раз утруждали себя сделать ./configure --help ?

Если мне подскажут, как по запрашиваемым этим самым configure библиотекам мне понять что мне надо вбить в apt-get, то я буду очень рад. copy-paste там не катит, пакеты в дистре называются совсем не так как их называет configure.

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

>1. никогда не добавляет демоны в автозагрузку. То есть я ставлю, например, postgres, но запускать его не буду, мне просто покомпилить хочется :)

Гентой, всё таки, пользуется не один человек. Postgres вполне может запускаться по воле юзера, именно тогда, когда последнему это нужно.

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

Прочесть README, HOWTO, INSTALL, ./doc/* (если они есть конечно) - иногда это вносит ясность. Сходить на сайт своего супер-пупер дистриба и попытаться там разобраться - что же имеется ввиду под xxxx.rpm и в каком пакете находится libzzzzz.so. Есть еще гугл... 8)

V0ID ★★★
()

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

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

Рассуждения о двоичном коде... это вообще пейсня :)

"Хорошим примером может служить модуль CPAN для языка Perl. Конечно, он ошибается и путается иногда, но пожалуй реже, чем код Си аналогичной сложности." опять голословное утверждение без фактов.

"Так что пока не будет разработан общий формат пакетирования, и каждый дистрибутив и разработчик не начнет применять его (я имею в виду именно - каждый), нам никогда не выиграть этой битвы. Только вот вопрос - стоит ли ее выигрывать?" Собственно вопрос, а битва то есть ? Кто с кем бъётся ?

robot12 ★★★★★
()

Иногда бесит, что чтобы что-то собрать имеющейся версией gcc, приходится править исходники. Переносимость Ц/Ц++ во всей красе. Речь ес-но про совт, которого нет в репах.

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

>Гентой, всё таки, пользуется не один человек. Postgres вполне может запускаться по воле юзера, именно тогда, когда последнему это нужно

тогда он поставит постгрес себе в хому. А system-wide пакет должен вести себя соответственно

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

> и нигде никто не собрал пакет? Не верю

Собрал, кривой и под хрен знает какую версию дистра. Полуработающий, но хотя бы "полу", а то я вообще без музыки бы остался... А нормального прямого нет. ./configure, make, make install меня устало уже настолько, что заморачиваться ещё и с этим уже просто нет сил - работает хоть как-то и ладно. Но это ж не есть хорошо.

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

>тогда он поставит постгрес себе в хому.

Отучаемся говорить за всех.

>А system-wide пакет должен вести себя соответственно

Кто же придумал это "должен"... Собственно, что следует из цитируемой фразы, кроме личных предпочтений?

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

>Собрал, кривой и под хрен знает какую версию дистра.

ссылку пониже осиль, пожалуйста

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

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

>abs

>cd /var/abs/extra/network/firefox

>makepkg

>pacman -U firefox*.pkg.tar.gz

И даже проще, pacman не нужен, достаточно: # makepkg -i

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

>Кто же придумал это "должен"... Собственно, что следует из цитируемой фразы, кроме личных предпочтений?

RH, Debian, Ubuntu, Mandriva как минимум

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

>configute, make, make install - редкостное говно для фанатиков. Полностью согласен с автором первой статьи.

Вы, и автор - идиоты! configure & make - запускают абсолютно все pkg-бидлеры, просто запускает их скрипт, и потом это все заворачивается в cpio или tar.gz - но сути это совершенно не меняет.

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

> А если нету, человеку, который готов потратить не более 2-х часов в своей жизни - оно не надо.

А если нету и человек не готов потратить несколько часов для компиляции свободного и бесплатного софта, то пусть купит за деньги и не трахает сообществу мозги своим плачем

Grindz
()

Недавно столкнулся с проблемой компиляции rotorrent.
Использую ArchLinux, взял PKGBUILD с AUR(оч. удобно, что можно скачать PKBUILD, вместо того, чтобы вытягивать все дерево портежей, как в генте), и решил скомпилить его. Под gcc4.3 вылезли ошибки, поправил код(там с++, но часто проскакивают чисто сишные либы, видимо разрабы начинали с С, и теперь эта травма у них на всю жизнь).
На сайте самого rotorrent'а нашел патчи, но они под нестабильную версию. Т.е. получается что юзер не сможет скомпилить их код под новый gcc без правки исходников - это очень показательно для мира Open Source. Если руки дойдут, пошлю патчи в AUR.

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

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

PS: по поводу того, что rtorrent есть в репе community - я в курсе, просто собираю пакеты под разные системы, а трафик дорогой.

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

> А что, если не секрет? Серьёзно. Я в ubuntu компилю только проекты, над которыми работаю. Остальное вполне устраивает. Вот в RHEL — это да. Плач ярославны :)

Тоже прокт деплоится на RHEL, а девелопю на убунте, пробовал под CentOS - долго плевался, вернулся на убунту.

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

>Оно и есть, кривое и полурабочее

а если ты соберёшь его сам, оно магическим образом станет прямым и рабочим чтоли?

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

>RH, Debian, Ubuntu, Mandriva как минимум

Ну, знаю такие слова... Божественный набор? Лично я имел лишний геморой с тем, что после установки программы, приходилось её удалять из автозагрузки. И, собственно, вопрос: какое отношение имеет этот набор слов, к добавлению программы в автозагрузку, при установке пакета в генте? Вообще, причём здесь гента?

alfix
()
Ответ на: комментарий от kod-x

> автор просто не понял концепции СПО и Unix, где каждая программа должна выполнять свою работу и иметь, по возможности, текстовый интерфейс, для взаимодействия

Это далеко не панацея, и пихать этот принцип везде где только можно - глупо.

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

> а если ты соберёшь его сам, оно магическим образом станет прямым и рабочим чтоли?

Намекаешь на то, что косячно написан сам плагин? Мейби конечно, но при установке из левых репозиториев поглюкивает почти всё, что наводит на некоторые мысли.

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

>Ну, знаю такие слова... Божественный набор?

наиболее распространённые дистрибутивы.

>Лично я имел лишний геморой с тем, что после установки программы, приходилось её удалять из автозагрузки.

А зачем вообще её ставить тогда?

>И, собственно, вопрос: какое отношение имеет этот набор слов, к добавлению программы в автозагрузку, при установке пакета в генте? Вообще, причём здесь гента?

тред перечитай. Гента была наглядным примером, когда недостатки (субъективные) перевесили достоинства. В моём, понятно, случае. Я сказал, что при нормальном канале в интернет уже не хочется повторять работу мантейнера пакета, а хочется, чтобы "само работало". _Для меня_ ubuntu этому условию уже удовлетворяет

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

>Намекаешь на то, что косячно написан сам плагин?

формат-то закрытый. Вообще удивляюсь, как хоть что-то работает :)

>Мейби конечно, но при установке из левых репозиториев поглюкивает почти всё, что наводит на некоторые мысли

Тут толком ни подтвердить, ни опровергнуть не смогу. У меня из сторонних репозиториев только http://www.telemail.fi/mlind/ubuntu gutsy fonts, с патчами Тёрнера. Работает нормально )

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

> компиляция - для настоящих джежаев

Для подростков, считающих себя "джедаями". Это как носить тяжёлую косуху и ботинки по 5 килограмм каждый. Тяжело, бессмысленно, но зато \m/_ _\m/.

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

>Недавно столкнулся с проблемой компиляции rotorrent. Использую ArchLinux, взял PKGBUILD с AUR(оч. удобно, что можно скачать PKBUILD, вместо того, чтобы вытягивать все дерево портежей, как в генте), и решил скомпилить его. Под gcc4.3 вылезли ошибки, поправил код(там с++, но часто проскакивают чисто сишные либы, видимо разрабы начинали с С, и теперь эта травма у них на всю жизнь).На сайте самого rotorrent'а нашел патчи, но они под нестабильную версию. Т.е. получается что юзер не сможет скомпилить их код под новый gcc без правки исходников - это очень показательно для мира Open Source. Если руки дойдут, пошлю патчи в AUR.

>PS: по поводу того, что rtorrent есть в репе community - я в курсе, просто собираю пакеты под разные системы, а трафик дорогой.

В репозитории community патч есть, следовательно юзер сможет скомпилить без правки исходников.

>К чему я это все: более строгая стандартизация пакетных менеджеров и дистрибутивов сильно помогла бы обычным пользователям, чтобы они не встречались с такими проблемами

И как вы себе это представляете? Как можно стандартизировать простейший формат PKGBUILD? Ну, если другие форматы на эту простоту пойдут, то это хорошо, а если нет? тогда придется PKGBUILD до уровня монструозного rpm.spec наращивать - нет-уж, спасибо, не надо! Пусть все остается, как есть.

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

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

Вы видемо ставите centos или что-то редхатоподобное. У них там с этим туго половину всего нужно пересобирать. Для софта посвежее можно подмешивать тестинг репозитории. Или для убунты есть скажем getdeb.net в котором свежие сборки торентклиентов асек и прочей фигни которая нужна на десктопе. собирают достаточно оперативно. Иногда даже не знаешь что новая версия ставишь. через день на лор заходишь только новость вывесили.

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

>...Для софта посвежее можно подмешивать тестинг репозитории...

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

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

>А чего там, кстати? Неужели тахома с BCI? :)

Тахому не использую, а эффект как в gentoo с USE-флагом newspr

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

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

Если ты внимательно прочтёшь пост, на который отвечаешь, то первая причина — установка серверного дистрибутива на десктоп

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

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

Ну вообще она стабильна.

Aceler ★★★★★
()

блин , сходил по ссылке , проблевался , автор муд@k ..
3 страницы обсуждения , вот уж кто убивает время .



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

> Или для убунты есть скажем getdeb.net в котором свежие сборки торентклиентов асек и прочей фигни которая нужна на десктопе.

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

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

Убунтоводы воды намутили. Да господи вот проблему раздули! Не нравится - юзайте Windows, как будто нам от этого убудет. Я юзаю archlinux проблем не встречал вообще. Либо пакет есть в бинарном виде в репозиториях, либо есть PKGBUILD в AUR, либо придется самому руками собрать (исключительно редкий случай) и быть первопроходцем залив PKGBUILD в AUR. А вот где проблемы есть, так это наверно в дебианоподобных дистрах, где на каждой либе по 10 миллионов патчей от меинтейнеров пакаджей лежит. Сам лично помню какие-то проблемы с кривыми библиотеками в Debian (или Ubuntu). Юзайте нормальные дистрибутивы и никаких проблем у вас не будет, только конечно если вы их сами себе не создадите.

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

>наиболее распространённые дистрибутивы.

А Тихий океан самый большой.

>А зачем вообще её ставить тогда?

Так вот в чём дело то! Как это зачем? Затем, чтобы использовать программу. Но это не значит, что программа используется постоянно.

>тред перечитай. Гента была наглядным примером, когда недостатки (субъективные) перевесили достоинства. В моём, понятно, случае. Я сказал, что при нормальном канале в интернет уже не хочется повторять работу мантейнера пакета, а хочется, чтобы "само работало". _Для меня_ ubuntu этому условию уже удовлетворяет

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

А это вообще прелесть:

>тогда он поставит постгрес себе в хому.

Ничего себе "В моём, понятно, случае."...

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