LINUX.ORG.RU
ФорумTalks

Gentoo и компиление. Прекомпиленный пакеты.


0

0

Почему бы не прекомпилить каждый пакет с разными параметрами (все наиболее распространённые процессоры - AMD64, Pentium M, разные уровни оптимизации) и вместо компиления просто не забирать с сервера прекомпиленный под данную платформу (+MMX, -MMX, +MMX2, -MMX2)...

Просто в 10 раз вырастет размер зеркал. Будет куча вариантов одного и того же пакета. Зато компилить не надо будет и не надо будет уходить из gentoo.

а еще с разными там USE флагами... всего то раз в 100
готовы предоставить дисковое пространство ? огранизуйте что нибудь типа фринета для хранения гентушных прекомпиленых пакетов

нет ?



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

Sylvia ★★★★★
()

Густаво доставляет! Жгун тот ещё

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

> Почему бы не осилить учебник русского языка?

Редко сталкиваюсь с теми, кто не может автоматически корректировать отклонения от оригинального языка )

gustavo
() автор топика

> Почему бы не прекомпилить каждый пакет с разными параметрами

потому что emerge (-k) не ищет собранное с тем же набором флагов, а или пересобирает заново с новыми флагами (и новым набором зависимостей), или берёт старый бинарник (который мог быть собран с другим набором USE, но emerge на клиенте не узнает, что набор на клиенте и на сервере другой). Нужна какая-то ферма сборки, которая будет сохранять параметры окружения (включая USE-флаги), хранить ссылки на собранное, закачивать собранное (а при след. проверке -- выкачивать). Граф зависимостей зависит от указанного набора USE-флагов, хранить все варианты -- это накладно (учитывая, что простенький deltup-сервер толком не могут осилить с нормальным качеством, с распределённым кластером серверов и балансировкой нагрузки между ними).

Этого можно обойти, если как в Nix http://www.linux.org.ru/view-message.jsp?msgid=3352777&page=4#3361798 хранить "зависимости" в чисто функциональном виде (см. http://nixos.org/docs/papers.html, статьи "Purely Functional System Configuration Management." и "The Purely Functional Software Deployment Model", " Efficient Upgrading in a Purely Functional Component Deployment Model"

тогда не будет такого дикого графа зависимостей, а будет более простой граф с артефактами в узлах. За счёт того, что пакетный менеджер --он же и ферма для сборки (см. "The Nix Build Farm: A Declarative Approach to Continuous Integration") -- должен унифицированно обрабатываться процесс закачки/обновления этих артефактов (в распределённой системе).

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

вообще можно было бы и софт из svn/git собирать "грамотно", по модулям. Если в текущем svn up изменился конкретный модуль, его надо пересобрать, иначе взять старый собранный объектник. То есть "собирать по диффам".

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

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

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

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

+1. Или торрента с сидов = тех, кто локально уже собрал этот пакет с бинарно идентичными артефактами (и одинаковой сигнатурой). Чтобы первый собрал, а остальные с него качали.

anonymous
()

>Зато компилить не надо будет

еретиГ!!!! на костер!!!!

anonymous
()

>Просто в 10 раз вырастет размер зеркал.

andrey@evilhorse ~ $ equery u mplayer | wc -l
103
andrey@evilhorse ~ $ 

>>> 2**103
10141204801825835211973625643008L
>>> 

всего лишь в 10 раз? ;)

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

2^n = мощность множества ВСЕХ перестановок из n вариантов.
Ты уверен, что там будут задействованы все n вариантов, или конфигурация описыватся m<n параметрами?

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

>andrey@evilhorse ~ $ equery u mplayer | wc -l
>103

то есть, 103 пакета используют фичу 'mplayer'. Что означает 2^103? комбинация пакетов, использующих фичу mplayer между собой? если есть 3 пакета : mplayer, kmplayer, gnome-mplayer (например, названия "от балды"), и зависимости длиной 2, то kmplayer/gnome-mplayer -- это альтернативы, и их комбинировать между собой не надо.

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

>перестановок

выборок

>Ты уверен, что там будут задействованы все n вариантов, или конфигурация описыватся m<n параметрами?


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


---
* против дебиана нечего не имею

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

тогда уж примерно вариативность можно оценить количеством возможных USE-флагов, и max количеством фич (USE-флагов) в одном пакете. А впрочем, пофиг, если сможет качаться из какого-то распределённого фринета/торрента.

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

>то есть, 103 пакета используют фичу 'mplayer'.

andrey@evilhorse ~ $ equery --help
Usage: equery <global-opts> command <local-opts>
where <global-opts> is one of
 -q, --quiet   - minimal output
 -C, --nocolor - turn off colours
 -h, --help    - this help screen
 -V, --version - display version info
 -N, --no-pipe - turn off pipe detection
where command(short) is one of
 belongs(b) <local-opts> files... - list all packages owning files...
 changes(c)  - not implemented yet
 check(k) pkgspec - check MD5sums and timestamps of pkgspec's files
 depends(d) <local-opts> pkgspec - list all direct dependencies matching pkgspec
 depgraph(g) <local-opts> pkgspec - display a dependency tree for pkgspec
 files(f) <local-opts> pkgspec - list files owned by pkgspec
 glsa(a)  - not implemented yet
 hasuse(h) <local-opts> useflag - list all packages with useflag
 list(l) <local-opts> pkgspec - list all packages matching pkgspec
 size(s) <local-opts> pkgspec - print size of files contained in package pkgspec
 stats(t)  - not implemented yet
 uses(u) <local-opts> pkgspec - display USE flags for pkgspec
 which(w) pkgspec - print full path to ebuild for package pkgspec

andrey@evilhorse ~ $

т.е. у пакета `mplayer` есть 103 фичи, каждую из которых можно
врубить или вырубить независимо от других

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

> то есть, 103 пакета используют фичу 'mplayer'.

Вместо того, чтобы нести бред, можно было написать в терминале 'equery u', дражайший.

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

не, суть не в том, чтобы уменьшить количество возможных вариантов. Суть в том, чтобы обнаруживать "коллизии" из одинаковых конфигураций, и если в текущем окружении результат получится одинаковый, брать уже построенное из того окружения, параметры сборки и артефакты у которого будут идентичны. Например, многие юзают чистые vanilla-sources или gentoo-sources (с одинаковым набором патчей). При жестко заданных остальных параметрах среды сборки результат должен быть бинарно идентичным, так почему бы не понять это заранее и взять уже собранное (неизвестно откуда; протокол "маршрутизации" должен этот узел и выяснить).

anonymous
()

>Просто в 10 раз вырастет размер зеркал.

<сарказм> Да, всего-то лишь. Какие, право, мелочи! </сарказм>

Да и не в 10, а гораздо больше.

>Зато компилить не надо будет и не надо будет уходить из gentoo.

Нахрена использовать gentoo, если тебе не нужна сборка из исходников? Ставь Sabayon.

P.S. А лучше поставь Ubuntu и не морочь себе и другим голову.

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

а. тогда правильно написал.

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

> P.S. А лучше поставь Ubuntu и не морочь себе и другим голову.

Ух, а я тут на выходных вернулся на генту и безмерно рад. :) Это как перейти с висты на икспи наверное, или даже на вин95 - убунта тормозит безбожно, это просто пиздец какой-то, других слов не найти. :)

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

А если этот узел при сборке незаметно подсунет маленький патчик, который будет незаметно отсылать хозяину некоторые данные?

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

вроде того компилятора Кена Томпсона, который собирал программу с вирусом, хотя вируса ни в исходниках, ни в компиляторе по отдельности не было?

Дык цифровые подписи с сигнатурами на всё.
Вот в git например исходники -- это блобы, адресуемые по хешу от содержимого.
Значит, если посчитать хеш от этого хеша, он останется уникальным.
Значит, если функция "хеш от хеша" считается по этому хешу + хешу от ВСЕХ параметров сборки(наподобие crypt+salt), то скорее всего это тоже будет уникальный хеш, без коллизий.
Значит, по нему можно адресовать собранный бинарник.

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

> А если этот узел при сборке незаметно подсунет маленький патчик,

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

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

> А если этот узел при сборке незаметно подсунет маленький патчик,

это всё сводится к "доверяем мы этому узлу", и если да, то почему.

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

>Ух, а я тут на выходных вернулся на генту и безмерно рад. :)

Меня стали напрягать постоянные ошибки компиляции, и я ушёл обратно на Debian. Что-то разладилось у генту-девелоперов :(

>убунта тормозит безбожно

К сожалению так оно и есть. Одно радовало -- всегда свежие пакеты.

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

> Меня стали напрягать постоянные ошибки компиляции, и я ушёл обратно на Debian. Что-то разладилось у генту-девелоперов :(

Есть такое. Блин, три раза уже за сегодня пытался собрать ooo3 - хрен там, всегда одно и то же, с -j2 и -01 тоже пробовал. Придётся наверное бинарный ставить. :( А ещё hal сейчас с новым ядром 2.6.28 не собирается. Да, я знаю про ~arch и ССЗБ, но это мой выбор. ^_^

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

>Кста, а дебиан так не тормозит? Давненько я его с иксами не видел.

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

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

> Нет, отлично работает. Правда ядро всё же желательно пересобрать с десктоп-ориентированными опциями.

А это какими именно, если не секрет? :)

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

>сижу на ~amd64 , уже и не помню, чтоб что-то не собиралось.

Я сидел на ~x86 (примерно год назад). Не собирались у меня kwave и ooo + что-то там ещё (плохо уже помню).

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

>>> 2**103
10141204801825835211973625643008L

"При взломе сервера Пентагона шестью миллиардами китайцев каждый набрал пароль по одному разу".
Ну вариантов будет меньше, но суть сводится к распределённому P2P протоколу для memoizing бинарных "артефактов" по транзитивной сети доверия.
Причем, "артефакты" могут быть меньше размера пакета ( например, .o = тоже артефакт 2 уровня, построенный из .o бинарник = артефакт 1 уровня), и P2P протокол по этой сети должен выбирать кратчайший/доступнейший конечный артефакт. А "пакетный менеджер" задаёт протокол маршрутизации этой сети, конфигурацию системы сборки (параметры, компиляторы, библиотеки, архитектура), сеть доверия между узлами.

Вот такой хрустальный мост через реку от Москвы до самого Петербурга забубенить было бы нехило.

anonymous
()

> Почему бы не прекомпилить каждый пакет с разными параметрами

Это противоречит идеологии Gentoo. "Камнем преткновения для появления Gentoo было отсутствие простого метода автоматической установки ПО из исходников" - Daniel Robbins изначальный разработчик Gentoo.

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

[I] app-office/openoffice-infra [2] Installed versions: (~)3.0.0 {cups linguas_ oodict opengl pam} Homepage: http://www.i-rs.ru Description: OpenOffice-Infra, office suite with enhanced russinan support from Infra-Resource

[2] "rostov" /usr/local/portage/layman/rostov

[I] sys-apps/hal Installed versions: 0.5.11-r5[1](03:15:18 19.11.2008)(X acpi crypt dell disk-partition kernel_linux) Homepage: http://www.freedesktop.org/Software/hal Description: Hardware Abstraction Layer

[1] "sabayon" /usr/local/portage/layman/sabayon [2] "zugaina" /usr/local/portage/layman/zugaina

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

>А это какими именно, если не секрет? :)

Да какие тут секреты :-D

выставить:

Preemtion Model: Preemtible Kernel

Timer Frequency: 1000Hz

Ну и выставить подходящий параметр Processor family тоже лишним не будет.

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

Показательнейший пример.
"Гента позволяет собрать пакет с разными комбинациями сотни фич", но при том никто толком не знает, не отвалятся ли при конкретной комбинации параметров (фич) сборка, и переспрашивает сакральную комбинацию параметров по 100 раз у избранных гур.
Так почему бы этот процесс не автоматизировать?

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

Тоже не собирается. Более того, бинарный OOo не ставится.

Пишет ACCESS DENIED unlinkat: /usr/lib/openoffice/basis-link

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

А в чём фишка этого сабайона? На сайт зашёл - картинок много, текста мало. :) Да, ещё ростовский ooo хочет postgresql - как-то попахивает это...

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

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

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