LINUX.ORG.RU

удаление якобы не нужных пакетов при emerge --depclean

 


0

2

Сегодня обновился и появился новый слот automake:

[ebuild  NS    ] sys-devel/automake-1.14.1:1.14::gentoo [1.11.6-r1:1.11::gentoo, 1.13.4:1.13::gentoo] 1 455 KiB
emerge --depclean пытается удалить не нужный по его мнению automake
>>> These are the packages that would be unmerged:

 sys-devel/automake
    selected: 1.13.4
   protected: none
     omitted: 1.11.6-r1 1.14.1

All selected packages: =sys-devel/automake-1.13.4
Решил посмотреть equery list -d, странный вывод, ЧЯДНТ:
List installed packages matching the query pattern

!!! Default action for this module has changed in Gentoolkit 0.3.
!!! Use globbing to simulate the old behavior (see man equery).
!!! Use '*' to check all installed packages.
!!! Use 'foo-bar/*' to filter by category.

Usage: list [options] pkgspec

options
 -h, --help              display this help message
 -d, --duplicates        list only installed duplicate packages
 -b, --binpkgs-missing   list only installed packages without a corresponding binary package
 -f, --full-regex        query is a regular expression
 -m, --mask-reason       include reason for package mask
 -I, --exclude-installed exclude installed packages from output
 -o, --overlay-tree      list packages in overlays
 -p, --portage-tree      list packages in the main portage tree
 -F, --format=TMPL       specify a custom output format
              TMPL       a format template using (see man page):
                         $location, $mask, $mask2, $cp, $cpv, $category, $name, $version, $revision, $fullversion, $slot, $repo, $keywords
Вопрос. Надо ли удалять automake? И как вообще понять что надо удалять, а что не надо? Как я понял emerge --depclean может снести и лишнее.

Да, emerge --noreplace sys-devel/automake сделал, не помогло, все равно хочет удалять по его мнению не нужную версию.



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

Вопрос. Надо ли удалять automake? И как вообще понять что надо удалять, а что не надо? Как я понял emerge --depclean может снести и лишнее.

Надо. Не может.

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

А будут ли эти версии мешать друг другу и как узнать какая именно нужна и какая именно в данный момент используется?

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

Вдруг нужен какой-нибудь программе?

depclean не удаляет пакеты из world и/или его зависимости. Ничего не сломается.

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

Lavos все правильно говорит, --depclean не снесет пакет, если он «нужен какой-нибудь программе».

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

Если в world-файле фигня - еще как может

Но в неконсистентной системе по умолчанию и не такая фигня может происходить

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

будут ли эти версии мешать друг другу

нет

как узнать какая именно нужна

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

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

Например?
Кроме ССЗБ-случаев, когда шаловливые ручки поломали world-файлик или ставили нужный софт с --oneshot.

Lavos ★★★★★
()

1. Доступа до Gentoo прям сейчас нет, но по памяти: что такое equery list -d, Может equery d <pkg name>?

2. automake нужен только для компиляции. На работу это точно не повлияет, а при установке следующего пакета, думаю, все будет ок.

3. Случаев чтобы --depclean ошибался я не видел. Если перед этим -pvuND world нормально проходит, и если там не кейсы, о которых ты точно знаешь то я бы доверился --depclean. А с учетом п.2 - и подавно.

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

Если в world-файле фигня - еще как может

Тогда ССЗБ.

+1

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

Например?

Ставим приложение App, которому нужна библиотека Lib. Через некоторое время сносим App. Но, к примеру, библиотека Lib все еще нужна для ваших личных целей. В этом случае депклин снесет ее нафиг. Тут или руками добавить эту библиотеку в мир, или руками чистить то, что предложил депклин.

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

Вспомнил еще такой случай - после депклина сделал emerge world -DNu и мне было предложено к установке то, что дипклин только что снес.

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

Тут или руками добавить эту библиотеку в мир, или

нарисовать lichnie-celi.ebuild и прописать ее там в rdepend...

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

если библиотека lib нужна для личных целей, то стало быть ты о ней знаешь и добавишь в world

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

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

нарисовать lichnie-celi.ebuild и прописать ее там в rdepend...

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

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

Нужное пользователю находится в world, если он туда что-то не поместил - ССЗБ.

Да понятно, что в этом случае он злобный Буратино. Только это не значит, что депклин нужно делать без флага pretend.

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

Но, к примеру, библиотека Lib все еще нужна для ваших личных целей

тогда она должна быть явно прописана в world, иначе сам виноват

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

Только это не значит, что депклин нужно делать без флага pretend

есть --ask, --pretend не нужен вообще кроме как для скриптов

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

есть --ask, --pretend не нужен вообще кроме как для скриптов

Вкусовщина. Что сказать-то хотели?

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

andreyu, Chaser_Andrey это какая-то перепись болезных регистрантов. при --pretend тебе придётся запускать емердж два раза, когда при --ask сразу будет предоставлен выбор

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

--pretend

Всего лишь клавиша «вверх» в истории терминала, один раз backspace, чтобы стереть последний флаг и enter. Это просто делается на автомате

придётся запускать емердж два раза

Второй раз работает в фоне, так что пофиг.

когда при --ask сразу будет предоставлен выбор

Дело в том, что при каждом апдейте мне намного чаще приходится разгребать проблемы, менять keyword'ы или use-флаги, потому что у меня в системе микс из стабильных, нестабильных, замаскированных пакетов и кучи оверлеев. Так что чаще всего я запускаю emerge куда больше, чем один раз.

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

Как-то снеслись gcc

Регулярно сносятся древние версии, переключить на актуальную в gcc-config и никаких проблем.

и nano

Значит в world было что-то другое из virtual/editor, например vim.

Lavos ★★★★★
()

После очередного обновления emerge --depclean хочет удалить следующие пакеты

app-crypt/libsecret
    selected: 0.18 
   protected: none 
     omitted: none 

 sys-devel/automake
    selected: 1.13.4 
   protected: none 
     omitted: 1.11.6-r1 1.14.1 

 gnome-base/gnome-keyring
    selected: 3.14.0 
   protected: none 
     omitted: none 

 sys-libs/libcap-ng
    selected: 0.7.4 
   protected: none 
     omitted: none 

 app-crypt/gcr
    selected: 3.14.0 
   protected: none 
     omitted: none 

 app-text/docbook-xml-dtd
    selected: 4.3-r1 
   protected: none 
     omitted: 4.1.2-r6 4.2-r2 4.4-r2 

 app-crypt/p11-kit
    selected: 0.20.7 
   protected: none 
     omitted: none 
Ну, с automake все понятно, допустим его можно удалить, так как есть более поздняя версия, а как быть с остальными 6 пакетами? Pinkbyte помоги пожалуйста. Раз и навсегда дай true алгоритм для расово верного удаления пакетов, чтобы наверняка на 146%.

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

Не вижу ничего криминального. Удаляй смело. Если хочешь быть уверенным на 100%, что ничего не сломается - потом запусти revdep-rebuild и emerge @preserved-rebuild

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