LINUX.ORG.RU
ФорумTalks

пользователям source-based дистрибутивов

 , , source-based, src


1

1

мне вот интересно, а как вы боретесь (если боретесь вообще) с идиотскими зависимостями для сборки софта? пихаете все это непотребство в систему? отказываетесь от использования в принципе? используете бинарные сборки от разработчика? еще какие варианты?

nb: надо бы из этого опрос залудить, но лениво

★★★★★

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

Пользуюсь по без идиотских зависимостей. Хотя боюсь, что когда-нибудь может понадобиться последняя версия librsvg, тогда уже придётся терпеть.

nemixer
()
Последнее исправление: nemixer (всего исправлений: 1)
Ответ на: комментарий от eternal_sorrow

зря. Если тривиально даже запросить другую libc или кросс компиляцию под айфон, то уж просто допихать флагов в stdenv должно быть ещё проще.

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

Лол, не знал что его прикрутили. Однако всё равно ума не приложу зачем было писать правила на js

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

А нужно чтобы они в tmpfs ставились.

При помощи overlayfs это вообще в любом дистрибутиве организовать можно.

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

кстати да, а патчить пакеты при сборке так же удобно как в gentoo можно?

если что, это делается так: кладём патч в определённую директорию, он автоматически применяется при сборке пакета.

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

Нет. Напрягись и услышь это.

Что услышу? Ведь они там не только на одном диске лежат, но и в одной директории. Для NixOS /nix и есть система.

Лол, штоб у меня на каждом нетбуке было сто гигов tmpfs под билддепы. И все терпение мира, чтобы после перезагрузки их заново перекачать.

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

Выдыхай, бобёр, ты хочешь как минимум непрактичного.

Я исхожу из своего «юзкейса»: ставятся в основном бинарные сборки, но иногда нужно что-то собрать из исходников.

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

Кучу исключений что?

Прописать по всем пакетам? Нет, их много.

Прописать исключения одному пакету из системного конфига? Легко.

Попробую объяснить так: в NixOS «тривиально» это где-то примерно «дай мне rsyslog с патченным gnutls». То есть «тривиально» простирается далеко за грань возможного для импотентных ПМ.

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

Для NixOS /nix и есть система.

Не больше, чем для убунты /dev/sda.

Я исхожу из своего «юзкейса»: ставятся в основном бинарные сборки, но иногда нужно что-то собрать из исходников.

Сколько у тебя RAM? Какой размер дерева билддепов libreoffice или firefox в твоём дистре?

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

«тривиально» это где-то примерно «дай мне rsyslog с патченным gnutls»

тривиально, это значит там такое одной командой делается?

eternal_sorrow ★★★★★
()

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

У source-based, насколько я помню генту, другая проблема — всё же многовато времени на обновления уходит. Хотя… давно это было, я уже 10 лет как с генты ушёл. Всё могло поменяться.

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

Именно Получить шелл, в котором rsyslog собран и слинкован с патченным gnutls, и при этом все это должно никак не затрагивает остальную систему — одна команда.

Запрос базовей некуда, первый же девелопер под любой дистр должен был написать себе такое.

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

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

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

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

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

Gentoo с флагами позволяет много говна обойти.

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

Не больше, чем для убунты /dev/sda.

/dev/sda — это директория?

Сколько у тебя RAM? Какой размер дерева билддепов libreoffice или firefox в твоём дистре?

Для Firefox там около гига. При этом 1) большая часть из этого и так установлена в системе перманентно; 2) я не собираю Firefox и LO из исходников.

sudopacman ★★★★★
()

Ставлю через флатпак

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

Хотя… давно это было, я уже 10 лет как с генты ушёл. Всё могло поменяться.

Да. Теперь есть Rust, который гентушники очень любят.

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

/dev/sda это блочное устройство

Для Firefox там около гига.

Разве что за вычетом того, что

и так установлено в системе перманентно

потому что это сколько угодно чего угодно.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256
Package (8)                 New Version  Net Change  Download Size

extra/autoconf2.13          2.13-6         0.60 MiB       0.17 MiB
extra/cbindgen              0.20.0-1       4.96 MiB       1.37 MiB
extra/dump_syms             0.0.7-1        8.00 MiB       2.36 MiB
extra/imake                 1.0.8-3        1.24 MiB       0.22 MiB
extra/lld                   13.0.0-1      24.42 MiB       3.15 MiB
community/python-zstandard  0.16.0-3       1.24 MiB       0.34 MiB
extra/xorg-server-xvfb      21.1.2-2       1.90 MiB       0.76 MiB
extra/yasm                  1.3.0-4        4.38 MiB

Total Download Size:    8.37 MiB
Total Installed Size:  46.73 MiB

:: Proceed with installation? [Y/n]

/dev/sda это блочное устройство

Спасибо, Кэп.

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

А, у тебя то, что в других дистрах называлось бы dev-пакетами, и так без вариантов захламляет систему 24/7? Тогда да, если ничего не считать, то выйдет реально мало.

t184256 ★★★★★
()

мне вот интересно, а как вы боретесь (если боретесь вообще) с идиотскими зависимостями для сборки софта?

Если для сборки софта есть идиотские зависимости, то есть несколько вариантов.

  1. Идиотская зависимость не обязательная и софт собирается без неё. Этот вариант чаще всего и срабатывает.
  2. Софт сам идиотский и есть аналог получше.
  3. Софт не идиотский, но у него есть неубираемые идиотские зависимости для сборки. Пихать непотребство в систему.

Но у подавляющего большинства пакетов - gcc, automake/cmake, да рантайм зависимости. Ничего идиотского.

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

Ведь собирать надо не один раз, а каждый раз, когда пакет обновляется.

Как вариант. --usepkg --binpkg. Из раста (и его рантайм зависимостей) собирается специфичный для твоей системы бинарный пакет. После сборки файрфокса всё сносится. При обновлении файрфокса раст ставится из твоих бинарных пакетов без пересборки.

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

В генте - нужно. В нормальном source based (NixOS) не нужно. Ну так зачем мучиться с гентой?

:facepalm: Впрочем, чего ещё от апологетов «стильного, модного, молодёжного» ожидать? >_>

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

Ну например polkit завожу старый в систему чтобы spidermonkey не собирать.

spidermonkey - то ещё говнище, и дело тут даже не в билд-зависимостях. polkit может на duktape работать. В оверлее musl есть. И нет, всю систему на musl собирать не обязательно.

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

Уточню. Я не утверждаю, что NixOS не нужен. Я только утверждаю что апологеты часто приписывают ему «уникальные» преимущества, которые оказываются вовсе не уникальны. В особо запущенных случаях они эти преимущества просто выдумывают. Вот, @James_Holden - это пока ещё начальная стадия. Он по крайней мере насчёт фич и ништяков самого NixOS не врёт.

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

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

Вот о чём я говорю. Здесь NixOS реально выигрывает.

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

При обновлении файрфокса раст ставится из твоих бинарных пакетов без пересборки

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

Ну и откуда бинарные пакеты нарисуются? Тебе же их хранить придется. А задача ставится - как сделать чтобы их НЕ хранить. В NixOS ничего не надо хранить. Они скачаются из кеша гидры.

:facepalm:

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

И если лично ты узнал о NixOS только сейчас, это не значит что он модный молодежный. NixOS всего на 4 года младше генты.

ему «уникальные» преимущества, которые оказываются вовсе не уникальны

Например?

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

Так речь о ПМ шла, а не о инфраструктуре. Существование Калькулята как бы подтверждает что эта (ИМЕННО ЭТА!) фича - не уникальна.

я использовал генту

Я за тебя рад.

И если лично ты узнал о NixOS только сейчас

Спасибо, посмеялся. Но опыт с дистрами описывать чот всё-равно лень.

UPD: А, мы просто разные фичи обсуждаем. Я говорю об этой:

пользователям source-based дистрибутивов (комментарий)

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

А ты - об этом:

Ну и откуда бинарные пакеты нарисуются? Тебе же их хранить придется. А задача ставится - как сделать чтобы их НЕ хранить.

Т.е «не пересобирать» против «не хранить».

Gentooshnik ★★★★★
()
Последнее исправление: Gentooshnik (всего исправлений: 2)
Ответ на: комментарий от Gentooshnik

Т.е «не пересобирать» против «не хранить».

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

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

Как и в NixOS, но там инфраструктура, а тут только кивки на калькулейт.

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

пихаете все это непотребство в систему?

нет, не пихаю

отказываетесь от использования в принципе?

если что-то некритичное - можно отказаться. Например чтобы не иметь на борту говно-руст отказался от жирнолиса, использую appimage ungoogled-chromium, тем более он по всем параметрам стал лучше.

используете бинарные сборки от разработчика?

чтобы не иметь на борту тот же самый жирно-руст, установил бинарный пакет librsvg с репы калькулейта. Руст не нужен.

еще какие варианты?

использую доступные альтернативы, Например чтобы не тянуть спидерманки для полкита, перешёл на duktape (спасибо eternal_sorrow за патчи).

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

В итоге вся моя система (gentoo) весит всего 11 Gb.

Chord ★★★★
()
Последнее исправление: Chord (всего исправлений: 1)
Ответ на: комментарий от ananas

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

См. Librsvg

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

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

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

utanho ★★★★★
()

мне вот интересно, а как вы боретесь (если боретесь вообще) с идиотскими зависимостями для сборки софта?

А зачем удалять инструменты для сборки софта в сорс-бейсед дистрибутиве? Не помню случая, чтобы это вызвало какую-то проблему.

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

Это да. Но во первых, есть rust-bin, а во вторых, это ничего не даст. С таким же успехом можно просто держать все эти расты и шланги в системе.

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

(спасибо eternal_sorrow за патчи).

Я всего лишь выкачал патчи с гитлаба и написал ебилд, накладывающий их. Благодари авторов патчей.

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

Если с тех пор как ты собрал пакет, в дереве не обновилась версия. Или ты не изменил какие либо USE-флаги.

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

На базе LFS делаешь?

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

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

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

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

См. Librsvg

не хочу см. мне вполне достаточно версии 2.40.21

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

Можно переустановить пакет не пересобирая. Из бинарника

это тоже лотерея. если у какой-нибуль либы, которая нужна твоему пакету, soversion изменился - твой бинарь превращается в тыкву

ananas ★★★★★
() автор топика

с идиотскими зависимостями

это какими, например?
ну есть зависимость и есть, пусть собирается. Ну собрался, например, wayland, да и черт с ним, не мешает.

sehellion ★★★★★
()

Никогда не понимал, почему для сборки не используется отдельный контейнер.

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

И я не пытаюсь решить проблему, просто хочу собрабь опыт

дурацкий тред.

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