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

Двоичные пакеты и дерево Portage

 


0

1

Допустим есть сервер, который собирает пакеты (FEATURES=«buildpkg») и выдаёт их по http, и клиент, у которого этот сервер указан в PORTAGE_BINHOST. Я правильно понимаю, что они оба должны делать «emerge --sync», и желательно одновременно? Или можно как-то сделать, чтобы клиент брал дерево с сервера бинарных пакетов?

★★★★★

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

Atlant ★★★★★
()

чтобы клиент брал дерево с сервера бинарных пакетов?

Да, у меня именно так и реализовано. Клиент забирает дерево по rsync.

и желательно одновременно?

Необязательно. Так как клиент будет юзать дерево той актульности которое предложит ему твой бинхост.

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

Да. Но по очереди. И лучше не независимо.

Да.

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

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

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

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

Одновременно, это если они оба с инета дерево тянут. Понятно, что если один с другого, то нет.

У вас после rsync делается проверка корректности ebuild'ов (манифестов)? И что с use-флагами? Клиент должен тащить с сервера содержимое каталога /etc/portage/package.use/?

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

А то это ещё пойдет по нарастающей

Технически - может. Но если просто клиент обновился раньше - то нарастание не должно быть.
Нарастание будет в случае, если на клиенте сменится «use» или иное. Или же при компиляции будут установлены дополнительные пакеты нужные только в процессе компиляции.

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

А то это ещё пойдет по нарастающей и с каждым обновленим он может захотеть собирать всё больше пакетов

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

Клиент должен тащить с сервера содержимое каталога /etc/portage/package.use/?

Это называется профилями, и хранятся они в репозитории (основном дереве или overlay).

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

Одновременно, это если они оба с инета дерево тянут

Как по мне это глупая затея. Клиентами тяну только тот срез по которому недавно обновился бинхост.

Клиент должен тащить с сервера содержимое каталога /etc/portage/package.use/?

Нет, у меня просто свои профили в git

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

Нет, emerge –sync не нужен. BINHOST при сборке создает индексный файл Packages. Клиент его скачивает и использует c emerge -GgKk по приоритету (сначала бинхост, затем /usr/portage). Синхронизация идет именно по Packages(там какая-та переменная c unix-time), локально на клиенте он хранится в /var/cache/edb/binhost.

arrecck ★★★
()

Лучше, что бы был одинаковый timestamt дерева. Удобнее в отладке. Иногда по быстрому надо собрать на клинете что-то, не расчехляя binhost. А потом про это можно забыть и через какое-то время вылезет боком. В таких случаях помогает равный timestamp. На клиенте запускается emrge -kp который покажет, какие pkgs он проигнорирует и будет собирать сам. Вот их потом надо на бинхосте собрать и еще раз сделать emerge -kp, что бы всё ставилось из binhost.

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