LINUX.ORG.RU
решено ФорумTalks

Ради чего компилируют на десктопе?

 


0

1

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

Навеяно недавней темой, где чел жаловался, что компилится все медленно, и заморачивался оптимизациями.

Ради чего? Что это дает? Почему не ставить бинарные пакеты? (полу)мифические проценты прироста производительности? В чем? Я не помню, чтоб там 24\7 рендерили 3д.

Не ну «прикольно» и «хочется» понять еще можно. Сам даже когда-то ядро пересобирал из сырцов по приколу. Но когда это делают на постоянку... Зачем? Ради чего?

Уточнение: Речь идет о регулярных монотонных занудных обновлениях системы, а не интеграции уникальных и\или самописных патчей.



Последнее исправление: dk- (всего исправлений: 1)

1) Отсутствие бинарников. Актуально для поделок на гитхабе.
2) Желание получить самую свежую версию.

KillTheCat ★★★★★
()

ну скажем у меня кроме генты на ноуте ни один современный дистр не заведется. 32-битный проц и 1.5 гига мозгов = жопа. Собираю с distcc через основной комп. Хотя это не «регулярные монотонные занудные обновлениях системы», я его уже наверно полгода не обновлял. А вот саму систему настраивал недели 3 пока она не стала нормально работать.

ну и use-флаги. вот скажем не нужен тебе интерфейс или самба, или принтера у тебя нет вообще - отключил и хрен с ним. но это так, просто чтоб система чуть чище была. Из больших плюсов - можно часть софта icc собрать, который скажем на том же ноуте с атомом 1.6 ггц может дать очень некислый прирост. А может и не дать, надо смотреть аккуратно. зато для стандартных задач если не наглеть (>10 вкладок с жабоскриптом во все поля, комп все-таки древний), то эта восьмилетняя балалайка работает бодрее венды-дисятки на ноуте трехлетней давности

upcFrost ★★★★★
()
Последнее исправление: upcFrost (всего исправлений: 3)

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

Но это всё бывает редко.

MrClon ★★★★★
()

Тестирую свежак в гит мастере интересных проектов и перевожу некоторые из них. Больше причин у меня лично нет.

AP ★★★★★
()

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

Iron_Bug ★★★★★
()

каждая новая компиляция увеличивает энтропию вселенной приближая конец света.

И ещё прикольно бегут строчки, на которые можно смотреть как на текущую воду. Греется проц и вообще комп не простаивает а работает, создавая ощущение незря вложенных в него денег

MKuznetsov ★★★★★
()

в 13м году включили в нормы ГТО

bender ★★★★★
()

В репозитории старая версия goldendict, которая работает некорректно. В «git» есть версия новее, которая работает правильно. То же самое относится к fbreader и многим другим популярным программам. Практически, в репозитории убунты регулярно обновляется только firefox и вещи связанные с безопасностью. Всё остальное «стабилизировано» на уровне 7 – 8-летней давности. Вот и приходится собирать.

Deleted
()

Компилирую только кастомные билды для разрабоки/тестирования. В 99% случаев достаточно бинарных пакетов. Ебилды не жду.

FiXer ★★☆☆☆
()

Ради чего? Что это дает?

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

i-rinat ★★★★★
()

Ради возможности наложить нужный патч или включить опцию, которую балбесы мейнтейнеры посчитали ненужной в своем бинарном пакете.
/thread

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

Но речь часто идет именно о тупой установке готовых апдейтов. Т.е. никаких патчей уникальных.

А вдруг их нет? «Ваша версия дистрибутива линукса протестирована, выбросьте её и ставьте экспериментальную!»

Napilnik ★★★★★
()

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

Ни на одном дистрибутиве такого нет.

With ★☆☆
()

1) Если в репах нет искомого (в принципе нет или версия старее последнего релиза);
2) или оно собрано через жопу ( waker писал, что так собран вим для бубунты; я добавлю, что так собраны Emacs и Racket в арче);
3) или просто не с теми опциями, которые тебе нужны;
4) поделка существует только в виде репозитория сырцов на гитхабе (гитлабе, etc), и эту экзотику никто в репы твоего дистрибутива не притащил. По сути, это пункт 1.

Hertz ★★★★★
()
Последнее исправление: Hertz (всего исправлений: 1)

Компилировать на десктопе? А где ещё? Не на сервере же.

imul ★★★★★
()

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

karton1 ★★★★★
()

Зачем ты создал этот тред? Зачем я написал этот комментарий? Примерно затем же и компилируют.

buddhist ★★★★★
()

Ты уже сказал о своем софте, потому это обсуждать не будем.

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

Еще может стоять вопрос аудита. Например исходный код может быть инспектирован, а бинарный код требует доверия к сборщику на предмет соответствия к заявленному исходному. Это конечно в большинстве случаев выдуманая проблема.

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

Например в Gentoo формат ебилдов позволяет легко отличить vanilla tar.gz с сайта разработчика, который качает этот ебилд и набор патчей от Gentoo, который лежит в том же дереве ебилдов.

Еще отсутствует хостинг бинарей для дистра, так как софт качается с сайтов разработчиков в tar.gz формате.

Появляется возможность содержать snapshot/9999 пакеты для которых ну нужна постоянная (например nightly как у Firefox) сборка и выкладывание бинарей на хостинг

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

Почему не ставить бинарные пакеты?

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

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

У меня Gentoo, не из-за мифического ускорения путём сборки под конкретный процессор, а из-за удобства самой системы. Можно сделать всё, что угодно, при этом гораздо проще, чем в бинарных дистрибутивах. Ещё плюс в том, что это rolling release, и нет необходимости обновлений между релизами. Я, в принципе, подумывал перейти на арч, но некоторые вещи меня останавливают.

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

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

Deleted
()

В общем, кое что нового для себя узнал. Таки думал больше кто компилирует просто по приколу, а оказывается вполне себе есть причины кроме «я разработчик» и «подрочить».

dk-
() автор топика
Ответ на: комментарий от Deleted

Мне слова марьяно и аур ни о чем не говорят.

Xintrea ★★★★★
()

(На примере Gentoo)

  • Совместимость между разными версиями софта на уровне исходников выше чем на уровне бинарников. Поэтому в source-based дистре можно гибче выбирать версии софта, которые нужны.

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

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

    Например, можно собрать питоновский модуль для разных версий питона (то же для ruby). Выбрать между Gtk2 или Gtk3, если с одним из них есть проблемы для конкретного приложения. Выключить зависимость от networkmanager или systemd, чтобы они не требовались для работы.

  • Делать «пакеты» для source-based дистрибутива обычно проще, чем скажем для дебиана, поэтому их больше, в том числе неофициальных, сделанных юзерами.

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

В стоимость кроме времени компиляции (кстати собирать можно по крону на серваке, а на компы ставить бинарники) еще входит:

  • Время на настройку. Больше гибкости - дольше настраивать.
  • Периодические косяки при сборке. Мэинтейнеры не могут протестировать все комбинации версий и флагов, которые есть у юзеров.

Нафига тогда? Для себя. Чтобы собрать ровно такую систему, какую я хочу. Я пишу под Linux (и на работе и в качестве хобби), поэтому мне нравится разбираться с тем, как работает мой компьютер. И как следствие аккуратного выбора софта, у меня в повседневном софте меньше косяков, чем скажем на Mac OS (но и больше возни с настройкой, конечно).

Основные линуксовые дистры постепенно отдаляются от этого юниксового подхода. Меньше выбора, больше автоматизации. И это тоже круто. Если мне нужен почтовый сервер или контейнер для сборки, я беру Debian, и нахрен мне не сдалось готовить там Gentoo :)

gv
()
Последнее исправление: gv (всего исправлений: 1)

А еще люди собирают велики, чтобы идеально ездили. И фонарики покупают и перепаивают, чтобы идеально светили. И «умный дом» себе делают. Просто человек так устроен - то что ему нравится он хочет сделать лучше.

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