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

Последний рывок: с Archlinux на source-based

 ,


1

4

Как-то не задалось у меня с gentoo, но это было уже давно. Вот сейчас думаю. Довело то, что в некоторых PKGBULD'ах арча из репозитория extra используется MD5 вместо хэш-функции. И я подумал — дыра ведь, а мало ли что там ещё неявного.

В общем, я хочу source-based дистр. Но со свежим софтом. А если софт не свежий, то возможность установить свежий вручную. По темам по Gentoo замечал, что софт там не такой свежий как в ArchLinux. А ебилды не принято править, их принято ждать. И ещё emerge не предлагает править каждый ебилд, или может есть опция?

Есть какой дистр лучше удовлетворяет этим требованиям чем Gentoo? Требованием свежего софта и проверке сценария сборки для каждого пакета. Как запасной вариант я рассматриваю пересобрать арч из исходников.

А может кто знает, как натравить yaourt на PKGBUILD's для официальных репозиторев арча, чтобы всё пересобиралось из исходников при обновлении.



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

> В генте есть все средства для хаканья сборки пакетов искаропки;
И в арче тоже.

Как в Арче:
1. Кастомизировать что передается в ./configure при компиляции?
2. Накладывать свои патчи преред компиляцией?
3. Передавать свои флаги компиляции?
P. S. Надеюсь, ценность вышеперечисленного обосновывать не нужно?

> В генте всегда есть выбор что юзать в качестве дефолта, в арче только то, что есть, без вариантов.
ХЗ что имелось ввиду.

Как минимум есть выбор между systemd, openrc, systemv
Еще есть (python2 или python3 и какой версии), (sysklog или syslog-ng или metalog), (dhcpcd или dhclient) да и вообще любые алтернативы. Но не думаю, что это так сложно, чтобы в Арче такого не было.

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

Если это копирование, то зачем?

А зачем дистры делают множество зеркал и в разных странах? Как арч, например.

Ок, на примере gnome-shell.

>>cat /usr/portage/gnome-base/gnome-shell/Manifest
DIST gnome-shell-3.18.5.tar.xz 1591860 SHA256 6fc9cd8b43b1ca0669e1c5a9de092a67eea648e38585f0cdb960f08a16c6cb20 SHA512 0539e60afc5070b5ccc5f987411147f7dfd5a0be06cf63876259ae6a90762888d55304158fd888fd94fd2837aac6995aa0c8573391139b129b35393b19aecaa9 WHIRLPOOL 7a8dce9fa110bd6cf3400adc8a1b30e1ab50e7d46676ccf0f84ac72cba0c6a6eb1e01a3a531e1f524afdeeb2b9e035ba0fa52197b9c66c018feed71b5e8502e2
>> curl http://ftp.gnome.org/pub/gnome/sources/gnome-shell/3.18/gnome-shell-3.18.5.sha256sum
6fc9cd8b43b1ca0669e1c5a9de092a67eea648e38585f0cdb960f08a16c6cb20  gnome-shell-3.18.5.tar.xz
Если не веришь манифесту, то качаешь дист-файл с http://mirror.yandex.ru/gentoo-distfiles/distfiles/gnome-shell-3.18.5.tar.xz и сам проверяешь.

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

Но мне выше сказали что исходники загружаются из репозиториев Gentoo. Как они попадают туда?

их туда приносит зубная фея

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

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

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

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

1. Кастомизировать что передается в ./configure при компиляции?

2. Накладывать свои патчи преред компиляцией? 3. Передавать свои флаги компиляции?

Правкой PKGBUILD'а, под патчи там отдельная секция, сборка полностью описывается тобой.

Как минимум есть выбор между systemd, openrc, systemv

Бороться с этим не пробовал.

Еще есть (python2 или python3 и какой версии)

python2 и python3 разнесены по разным пакетам. Версию можешь задать по вкусу.

(sysklog или syslog-ng или metalog), (dhcpcd или dhclient) да и вообще любые алтернативы.

разные пакеты.

Esteban_Garcia
() автор топика
Ответ на: комментарий от fang90

Если не веришь манифесту, то качаешь дист-файл

То есть получается исходники там в оригинальном виде, и это просто зеркала? А в ebuild прописан хэш?

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

исходники загружаются из репозиториев Gentoo

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

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

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

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

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

Перед сборкой каждого пакета не получится, так как такого функционала не предусмотрено, и в нём нет реальной необходимости. Твой юзкейс определён используемым дистрибутивом, и не применим в генте. Да и нет в этом необходимости, когда есть более простой автоматизированный способ. Представь, если тебе приплывёт овершестьсот пакетов обновлений (такое может случиться только при смене кейворда, то есть всего один раз в жизни, но оно имеет место быть), и ты будешь их врукопашную разгребать дольше, чем все они будут компиляться. С /etc/portage/env тебе нужно запилить воркараунд под нужный пакет всего один раз, и он всегда будет применяться при последующем обновлении, пока кардинально не перепишут ебилд (что бывает довольно редко), и пока твой воркараунд просто не сфейлит сборку, тогда ты его поправишь под текущую версию ебилда, и забудешь снова. Там ты редефайнишь функции и переменные ебилда не изменяя сам ебилд.

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

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

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

Он хочет не это. Он хочет, чтобы перед мержем КАЖДОГО пакета ему предоставляли ебилд на редактирование, как сделано в арчёвом йогурте.

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

Если это копирование, то зачем?

Ты дурак? Угадай, что случится с наугад-выбранным сайтом с исходниками (http://site.icu-project.org например) если каждый пользователь генты начнет тащить исходники с него, а не с ближайшего зеркала.

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

Да тут весь тред [хочется странного].

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

Правкой PKGBUILD'а, под патчи там отдельная секция, сборка полностью описывается тобой.

Проблема 1. Если я правильно понял, то PKGBUILD - это что-то типа ebuild'а в Gentoo. Если это так, то при каждом обновлении PKGBUILD'а/ebuild'а мои правки будут слетать. Мягко скажем, не очень удобно.

Проблема 2. В параметрах ./configure можно и поломать много чего.

Проблема 3. Если ты вручную указываешь ключи ./configure, то ты и в ручную вынужден отслеживать зависимости

Теперь смотри в Gentoo как:

1. Кастомизировать что передается в ./configure при компиляции?

Те параметры ./configure, которые можно изменять, вынесены как USE флаги. В ebuild'е есть рулы для USE флагов (например, если указал qt4, то не можешь указать qt5), а также соответствующие зависимости.

2. Накладывать свои патчи преред компиляцией?

Просто скопируй патч в соотв. каталог. Это всё, что нужно. Апдейт никак не повлияет, и в новой версии патч тоже автоматом будет накладываться (если ты явно не указал обратного)

3. Передавать свои флаги компиляции?

Шаг 1. Создаешь файл с кастомными настройками
Шаг 2. Во втором файле одной строчкой указываешь пакет и применяемый к нему файл с кастомными настройками

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

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

Обычно я всеми силами удерживаюсь от советования конкретных дистров, но с таким угарным набором «требований» не удержусь: Почти любой, например... Debian.

1. Сборка из исходников

Софт, собранный из исходников? Да уж, вот это редкость. Даже не «source-based» или «невероятную гибкость USE-flag'ов at your fingertips», а просто тот факт, что когда-то софт был исходниками? Check.

2. Исходники берутся их официальных источников

Исходники (и патчи) принято брать из репозитория Debian — официальнее некуда. Если что, то раскрою страшный секрет — туда они попадают... из апстрима; причем в любом дистре исходники восходят к соответствющим апстримам. Check.

3. Свежий софт

Debian жив и обновляется, дистрибутив не заброшен, мейнтейнеры работают, новые пакеты каждый день. Для твоих никому не нужных локалхостовых утех рекомендую debian stable и полтора бэкпорта. Если же под «свежим софтом» понимается легендарная стабильность арча, то для облегчения адаптации можно для начала поставить experimental и по крону сносить один рандомный пакет и десяток случайных файлов из /usr. Check.

4. Менеджер сборки пакетов и обновлений (желательно)

check

Итого правильный ответ: «Тот дистрибутив, с которым сможешь справиться / любой / любимый. Ты обычно уже и так знаешь, что тебе выбрать или хотя бы из чего тебе выбирать.». Особенно когда мы уже выяснили, что у тебя даже требований нет.

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

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

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

В yaourt'е и прочих aur хелперах это сделано для того, чтобы пользователь мог проверить, что ему в pkgbuild'ах не подсунут какую-нибудь гадость. Ну обычно все жмут no не глядя.

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

PS. Еще один юзкейс - смена опций сборки, т.к. никаких спец механизмов типа USE флагов у abs для этого нет

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

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

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

Ну обычно все жмут no не глядя.

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

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

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

Deleted
()

Довело то, что в некоторых PKGBULD'ах арча из репозитория extra используется MD5 вместо хэш-функции.

Могут использоваться, но большинство используют sha256sums.

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

Еще один юзкейс - смена опций сборки, т.к. никаких спец механизмов

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

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

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

/etc/portage/env для кого придумали? Я уже полтреда про это рассказываю.

Ну и мой этот комментарий тоже почитай.

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

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

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

Тем, что редефайненные функции/переменные не улетят в /dev/null при следующем обновлении, и будут применяться ко всем последующим обновлениям/пересборкам автоматически.

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

редефайненные функции/переменные не улетят в /dev/null при следующем обновлении

Мне это не нужно.

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

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

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

Локальный оверлей нужен только если ебилда для пакета совсем нет в дереве, если ебилд есть, и править в нём нужно немного, то /etc/portage/env как раз для этого.

У меня есть оверлей (см. профиль), но я туда не тащу всякий трэш, я даже в локальном оверлее не держу ничего такого. Для всего есть свой инструмент.

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

Тебе не нужно, а ТСу нужно контролировать инструкции сборки.

r3lgar ★★★★★
()

GuixSD

В общем, я хочу source-based дистр.

GuixSD как бы source, и как бы не source. В его случае между этими понятиями нет разницы.

Но со свежим софтом.

Не могу оценить насколько в GuixSD свежий софт.

А если софт не свежий, то возможность установить свежий вручную.

Есть такая возможность, пишешь scm, устанавливаешь.

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

На зеркала они попадают, ВНЕЗАПНО, оттуда же - от авторов софта. Более того, у нас на зеркалах есть ПО, авторы которого(и их сервера) уже сгинули в туман. ПО работает, только скачать его можно только по вот таким вот зеркалам.

Но если у тебя есть желание - можешь выпилить обход зеркал из кода portage - тогда качаться будет все с сайтов авторов(это last resort для новых ебилдов на случай, если зеркала не успели синхронизироваться)

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

таких, что там в PKGBUILD'aх явно указаны официальные источники исходников

В генте также. Обход зеркал - это фича package manager-а, ебилды всегда указывают на оригинальные тарболлы(если они вообще есть, например для снапшот-билдов их обычно нет)

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

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

Последний рывок: с Archlinux на source-based (комментарий)

Не надо ставить генту, у нас тут не там. Тут RTFMить надо, а не как ты.

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

а, вот оно что... в общем нинужно.

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

> (например, если указал qt4, то не можешь указать qt5),
для некоторых покетов можешь.

А для некоторых нет.

Kroz ★★★★★
()
Ответ на: GuixSD от Camel

в нем жи мало чего есть(кедов нет, например), да еще и бета

а собсна идея дистра классная

f1u77y ★★★★
()

слаку со слакбилдами уже советовали?

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

Ну вот тянутся исходники apache с apache.org, тебе что, от этого легче станет? А кто проверит, что в исходниках «всё нормально»? Или ты лично проводишь аудит каждого исходного файла?

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

Но мне выше сказали что исходники загружаются из репозиториев Gentoo. Как они попадают туда?

их туда приносит зубная фея

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

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

Они бы ещё через два года это сделали. Через два года после арча.

Какая связь с

Мне нужен последний гном из-за wayland. Остальное неважно.

?

Последний гном есть.

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