LINUX.ORG.RU

Оч. интересно, редко такое попадается в блогах.

Как решать? Не полагаться только на глобальные USE-флаги (не везде уместны, тянут лишние зависимости), запоминать что, как и откуда ставишь (так проще аккуратно снести основный пакет, а затем зачистить систему --depclean'ом).

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

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

> Не полагаться только на глобальные USE-флаги

Может и верно, но у меня /etc/portage/package.use уже за 200 строк.

запоминать что, как и откуда ставишь

Не совсем понял про что речь. Если разговор об оверлеях, то портаж сам показывает из какого поставлено; а если про сборку чего-то внешнего из сырцов или rpm/deb-ов, так оно ложится в /usr/local или /opt и кроме $PATH с системой не пересекается.

Много раз сталкивался с рекурсивынми зависимостями

Ну тут не в этом трабла, а в самом факте зависимости от чего-то несуществующего.

нужно выкачивать старые версии ебилдов

Если не секрет откуда?

Тут либо постоянно следить за системой и не полагаться на тестовые ебилды.

В баню тестовые ебилды! Если ещё и за каждым конкретным ебилдом следить, так вообще запаришься. Максимум - оверлей с которого всегда можно спрыгнуть назад на стабильное дерево.

либо просто собирать всё заново раз в год

Это и есть основной мой вопрос. Пересборка не помогает, так как работает на уровне линкования, а не на уровне перерассчёта зависимостей. Нужно не emerge -e world, а удаление и установка каждого пакета.

Либо переходить на что-то, за чем сильнее следят ((полу)годичные релизы).

Т.е. переустанавливать систему? Что-то я не понял...

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

> Тут либо постоянно следить за системой и не полагаться на тестовые ебилды (их обычно пишут впопыхах, причём с расчётом на тестеров), либо просто собирать всё заново раз в год.

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

Либо переходить на что-то, за чем сильнее следят ((полу)годичные релизы).


Верное решение. Бубунта - наше всё.

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

второй - путь вендузятника

Да ну нафиг? С 12:00 01.01 по 14:00 02.01 всёравно все дрыхнут. Почему бы emerge -e world не сделать.

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

>Не совсем понял про что речь. Если разговор об оверлеях, то портаж сам показывает из какого поставлено; а если про сборку чего-то внешнего из сырцов или rpm/deb-ов, так оно ложится в /usr/local или /opt и кроме $PATH с системой не пересекается.

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

Много раз сталкивался с рекурсивынми зависимостями

Ну тут не в этом трабла, а в самом факте зависимости от чего-то несуществующего.

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

нужно выкачивать старые версии ебилдов

Если не секрет откуда?

Зеркала обычно хранят историю за несколько недель. Плюс багтрекер.

Тут либо постоянно следить за системой и не полагаться на тестовые ебилды.

В баню тестовые ебилды! Если ещё и за каждым конкретным ебилдом следить, так вообще запаришься. Максимум - оверлей с которого всегда можно спрыгнуть назад на стабильное дерево.

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

Это и есть основной мой вопрос. Пересборка не помогает, так как работает на уровне линкования, а не на уровне перерассчёта зависимостей. Нужно не emerge -e world, а удаление и установка каждого пакета.

Если упорстить, то нужно снести всё, что не может пересобираться друг с другом. До system «спускаться» не приходилось ни разу, но сработать должно. И я предпочитал просто разворачивать мир с нуля, если появлялись запутанные проблемы без известного решения.

Либо переходить на что-то, за чем сильнее следят ((полу)годичные релизы).

Т.е. переустанавливать систему? Что-то я не понял...

Менять дистр. Туда, где зависимости не ломают, дыры в безопасности латают пока спишь и где документация всегда свежая.

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

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

wyldrodney
()

Какой-то поток сознания. Если бы сначала все обновил, а том лез бы на кеды-9999, то ничего бы такого не было.

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

Мой старый Gentoo Гуру (ноне труЪ админ Нигмы) говаривал, что после смены команды портажи резко поплохели... :(

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

> Какой-то поток сознания. Если бы сначала все обновил, а том лез бы на кеды-9999, то ничего бы такого не было.

Оно и было с иголочки!

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

Лазил на кде-9999 и слезал обратно на портежные анстейбл. Шаманизма описанного в сабже никакого небыло.

Evil_Wizard ★★★
()

Или я не выспался или я ни фига не понимаю в колбасных обрезках.

О какой проблеме пишет автор? Ставил к примеру иксы-9999 и слазил обратно и такого шаманизма не припомню...

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

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

А кто-то гарантировал? Как бы это не ubuntu LTS...

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

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

Лазил на кде-9999 и слезал обратно на портежные анстейбл. Шаманизма описанного в сабже никакого небыло.

Для ленивых почитать и вникнуть повторяю: KDE тут нипричём! Оно лишь стало отправной точкой распутывания невидимого узла.

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

А для тех кто не фапал на невидимую Монро, поясню: существует следующая проблема.

1) Пакеты имеют наглость зависеть от других пакетов.

2) Иногда появляются новые, а иногда исчезают старые.

3.1) emerge -upvDN @system @world выявляет устарелости и неюзовости.

3.2) emerge -p --depclean && emerge -pP выявляет «висячие хвосты».

3.3) revdep-rebuild -ip выявляет вшибки линкования.

3.4) emaint -c all выявляет ошибки связности и внутренней конфигурации партажа.

Кто в ответе за зависимости? Сам emerge? Ну дак, он считает опираясь на дерево и не правит зависимости уже установленного пакета. Посему, emerge -e world не спасает от подобной траблы.

Как повторить? Юзать десктопную систему с >1250 установленными пакетами продолжительное время. Почему?

1) На ваших серверах софта обычно мало: 200-300 пакетов.

2) Серверный софт обновляется редко и восновном патчами, а не вязанками пакетов.

3) Для серверного софта даунгрейд предусмотрен чуть ли не на десятилетия.

В результате, даже если вашему серванту 10 лет, то вы не выхватите траблу, а если и выхватите, то emerge -e world пофиксит линкование и замаскирует её. Если вы на раскрученном десктопе, то уже через год часть вашего софта начнёт зависеть от того чеге нет в портаже и для исправления этого придётся попакетно удалить и установить весь кусок ПО (повторюсь пересборка не спасает, т.к. бага в дипах портажа).

P.S.

Для тех, кто не верит: распакуйте stage3 и убедитесь, что sed зависит от несуществующего freebsd-чего-то.

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

Почему бы emerge -e world не сделать.

Нафейхоа? :)

...

Я юзаю что-то типа такого:

#!/bin/bash

PCKGS=""
for i in $(find /var/db/pkg -maxdepth 2 -mindepth 2 -mtime +200 |grep -v 'kernel.*sources'|sed 's!/var/db/pkg/!!'); do
        echo -n "+"
        SLOT=$(cat /var/db/pkg/$i/SLOT)
        PKG="$(echo $i|evrem):${SLOT}"
        PCKGS="${PCKGS} ${PKG}"
done
echo Emerge...
echo emerge -av1 ${PCKGS}
ionice -c3 emerge -av1 ${PCKGS}

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

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

>Мой старый Gentoo Гуру (ноне труЪ админ Нигмы) говаривал, что после смены команды портажи резко поплохели... :(

Где-то после 2006..2007гг. портеж начала ухудшаться. Было время, когда всё работало как часы. Ни циклических зависимостей,ни идиотских ситуаций, когда стабильный пакет требует в зависимостях тестового... В 2007-м, кажется, я обновлял серверок, который простоял без обновлений год. Мир обновился без единой ошибки. Сейчас такое уже невозможно :D

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

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

У меня такой «узел» встретился лишь однажды. Когда я в ~2006-м поставил на amd64 не просто тестовый, а экспериментальный замаскированный glibc и потом откатился обратно... Пришлось систему со stage1 оживлять... Это за 6 лет экспериментов на полудюжине машин...

KRoN73 ★★★★★
()

Мдя... Ссылки на блогспот это не для Ъ, или не для фильтрованных провайдерами. Анонимаусы надоели

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

>Юзать десктопную систему с >1250 установленными пакетами продолжительное время.

Вот, на текущей машине:

# find /var/db/pkg -maxdepth 2 -mindepth 2|wc -l
2753

Системе около 5 лет.

И, да, это десктоп...

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

[b]ionice -c3 emerge -av1 ${PCKGS}[/b] должен оставить их для вас в целости :)

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

>equery g --depth=3 kdelibs фантомов не находит?

4.4.5 и 4.5.2 находит. Непонятно, учитывая, что у меня установлено 4.4.5, а 4.5.2 замаскировано по ~arch.

Фантомы из будущего? :)

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

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

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

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

Были бы вещества - думал бы о вечном, а не тратил время на невидимое администрирование несуществующих проблем :)

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

Ну вы же тратите время для поста в ЖЖ и ЛОР? Коффециент полезности потраченного время на несуществующие проблеммы и на постинг эпик саги об этом ~ одинаков :)

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

Вы глубоко заблуждаетесь!

Постинг проблемы в блоге позволяет в неё тыкать носом, а постинг на ЛОР-е отвечает аж на 3 вопроса:

1) А не дурак ли я?

2) Какие идеи для решения?

3) Вкусно-ли оно для анонимусов?

Это ж целое исследование по группе направлений!

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