LINUX.ORG.RU

Что может сломать emerge --depclean ?

 ,


0

1

Здравствуйте.
man emerge

--depclean (-c)
...
Also note that depclean may break link level dependencies, especially when the --depclean-lib-check option is disabled. Thus, it is recommended to use a tool such as revdeprebuild(1) in order to detect such breakage. ...

Что имеется в виду? Как может что-то поломаться, если

--depclean (-c)
Cleans the system by removing packages that are not associated with explicitly merged packages. Depclean works by creating the full dependency tree from the @world set, then comparing it to installed packages. Packages installed, but not part of the dependency tree, will be uninstalled by depclean.
...

★★

Запускать надо в emerge -c -p, а потом поштучно пробовать, потому что сломать реально можно и удалить, как правило, нужные пакеты из sys-*/*.

Bfgeshka ★★★★★
()

Если в портаже и установленных ебилдах нет багов, то ничего не сломает. А если баги есть, то всё от них зависит :) Я на ~amd64 запускаю depclean после каждого обновления, проблем не припомню. Но всё равно запускаю с -a, потому что кто ж его знает.

const86 ★★★★★
()

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

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

Ну как выразиться, механизм работы depclean сводит на нет возможность удалить нужный пакет (судя по описанию принципа работы). Отсюда вопрос - зачем нужен запуск revdep-rebuild после emerge --depclean ? Мне не сложно в общем, но некомфортно себя чувствую, когда не понимаю что и зачем делаю.

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

Давно уже незачем, благодаря preserve-libs в портеже по умолчанию.

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

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

pavlick пакет может быть: непосредственной частью system@/world@/иного@ множества включенного в мир, зависимостью пакета включенного в мир… Либо сам пользователь может включить пакет в мир. Однако встречаются такие ситуации когда, к примеру, до обновления некая зависимость требовалась а после уже нет и пакет который раньше требовался теперь уже не требуется. Вот такие вот «потерянные» и «ненужные» пакеты и удаляет emerge --depclean. И очевидно что если пакет был библиотекой… Ну ты понял.

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

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

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

Ну был он допустим библиотекой, что это меняет?

Действительно!

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

ЗЫ: Подумай отчего выхлоп ldd иногда совсем не такой как DEPs в ebuild-е?

init_6 ★★★★★
()

Благодарю за ответы. Думаю, что понял.

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

Допустим ты когда-то по неосторожности/дурости поставил нужный тебе пакет с опцией -1(не прописав его в world-файл). Как ты думаешь что сделает --depclean? Правильно, снесет его. А если ты так, ненароком, поставил всё KDE? Не замучаешься переставлять? :-)

TL;DR - это предупреждение о возможном деструктивном действии, при котором пользователю стоит быть внимательным.

Pinkbyte ★★★★★
()

Все, что угодно, но в основном из-за твоей же криворукости.
Мне он, например выпиливал ncurses, gcc и binutils (не одноременно, но все равно неприятно)

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