LINUX.ORG.RU

Portage не проверяет зависимости при удалении?

 , ,


0

1

«Внимание: Portage не проверяет, зависят ли другие пакеты от удаляемого! Однако вы получите предупреждение, если удаление пакета приведет к неработоспособности системы» (Gentoo Handbook)

Может кто-нибудь помочь перевести это на человеческий? То есть при удалении пакета я должен проверять вручную, не зависит ли кто-то от него?



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

Удаляй -avc, а не -C.

anonymous
()

Вы хотя бы почитали в начале страницу руководства по emerge, ну и не использовали бы короткие опции:

EMERGE(1)                           Portage                          EMERGE(1)



NAME
       emerge - Command-line interface to the Portage system

SYNOPSIS
...
       --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.   See
              --with-bdeps for behavior with respect to build  time  dependen‐
              cies  that  are not strictly required. Packages that are part of
              the world set will always be kept. They can be manually added to
              this  set  with  emerge --noreplace <atom>. As a safety measure,
              depclean will not remove  any  packages  unless  *all*  required
              dependencies  have  been resolved. As a consequence, it is often
              necessary to run emerge --update --newuse --deep @world prior to
              depclean. Also note that depclean may break link level dependen‐
              cies, especially when the --depclean-lib-check  option  is  dis‐
              abled.  Thus,  it  is  recommended to use a tool such as revdep-
              rebuild(1) in order to detect such breakage.

              WARNING: Inexperienced users are advised  to  use  --pretend  or
              --ask  with this option in order to see a preview of which pack‐
              ages will be uninstalled. Always study the list of  packages  to
              be  cleaned  for any obvious mistakes. Note that packages listed
              in package.provided (see portage(5)) may be removed by depclean,
              even if they are part of the world set.

              Depclean serves as a dependency aware version of --unmerge. When
              given one or more atoms, it will unmerge matched  packages  that
              have  no  reverse  dependencies.  Use  --depclean  together with
              --verbose to show reverse dependencies.
...
       --unmerge (-C)
              WARNING:  This action can remove important packages! Removes all
              matching packages.  This does no checking of dependencies, so it
              may  remove  packages necessary for the proper operation of your
              system.  Its arguments can be atoms or ebuilds. For a dependency
              aware version of --unmerge, use --depclean or --prune.
...

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

Спасибо. Но, наверное, вы не так поняли. Использую именно --unmerge, но при выполнении он не проверяет, зависят ли другие пакеты от удаляемого. То есть если я снесу пакет X, а от него зависит пакет Y, то ПМ даже не скажет, что в таком случае пакет Y станет неработоспособным. А проверять зависимости вручную... Так? Вроде бы я про это...

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

ЕМНИТ, emerge -C удалит и не спросит, но тут такое дело, если удаляемый пакет не из world файла, значит он точно нужен, и без него что нибудь сломается, а в world только то, что ты ручками ставил => сам должен знать надо оно или нет. вот как-то так.

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

ща ради прикола сделал

# emerge -C xorg-drivers
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

>>> These are the packages that would be unmerged:

 x11-base/xorg-drivers
    selected: 1.14 
   protected: none 
     omitted: none 

All selected packages: x11-base/xorg-drivers-1.14

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

Would you like to unmerge these packages? [Yes/No] 
>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in:  5 4 3 2 1 
>>> Unmerging (1 of 1) x11-base/xorg-drivers-1.14...

 * GNU info directory index is up-to-date.

так что удаляет

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

если удаляемый пакет не из world файла, значит он точно нужен, и без него что нибудь сломается

То есть если я сношу пакет не из world списка (то есть сам _не_ ставил, зависимость, например), то ПМ напомнит или поругается?

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

он просто удалит пакет, выдав предупреждение

прочитай уже ман и не тупи

anonymous
()

Может кто-нибудь помочь перевести это на человеческий?

да. «естественный отбор».

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

удалит молча, для проверки целосности зависимостей есть revdep-rebuild

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

Использую именно --unmerge

Нет, ЕМНИП emerge откажется удалить пакет.

emerge -C

Дурачок? Да еще и «ради прикола» xorg-drivers удалил.

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

я как то от скуки и >rm -rf --no-preserve-root делал

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

Блин, я перепутал -c и -C. ТС, удаляй с --depclean (-c), он не позволяет удалить пакет, пока кто-то от него зависит.

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

используй -c вместо -C, сам всё поймёшь. А вообще, kostik87 верно сказал — читай ман, там разжёвано всё настолько подробно, что даже младенец сможет им рулить.

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

Использую именно --unmerge, но при выполнении он не проверяет, зависят ли другие пакеты от удаляемого.

Ты не понимаешь то, что написано ?

       --unmerge (-C)
              WARNING:  This action can remove important packages! Removes all
              matching packages.  This does no checking of dependencies, so it
              may  remove  packages necessary for the proper operation of your
              system.  Its arguments can be atoms or ebuilds. For a dependency
              aware version of --unmerge, use --depclean or --prune.

Вольный перевод:
Выполнение этого действия может привести к удалению важных пакетов. Удаляются все указанные пакеты. При выполнении этого действия не проверяются зависимости, так что могут быть удалены пакеты нужные для работы вашей системы. Аргументами могут быть атомы или ebuild`ы. Для проверки зависимостей при удалении используйте --depclean или --prune.

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

Фак, я ж ведь читал! Но почему-то считал, что --depclean - просто выпиливание барахла. Благодарю.

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

считал, что --depclean - просто выпиливание барахла.

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

depclean - состоит из двух слов: dependency (depends) и clean. Зависимость и очистка, т.е. depclean - очистка зависимостей. Если вызывать emerge с этой опцией без указания атомов (имён пакетов), то будут проверены зависимости всех установленных пакетов и удалены пакеты, которых нет в world и которые не являются зависимостями других пакетов в системе. Если указать какой-либо пакет, то в начале будет проверено не является ли этот пакет зависимостью какого-либо пакета в системе.

С unmerge тоже всё просто, состоит из двух слов: undo и merge. Отмена и слияние, т.е. unmerge - отменить слияние (установку пакета в систему).

Всё просто.

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

Спасибо за разъяснение :-)

Be
() автор топика
19 апреля 2014 г.
Ответ на: комментарий от funeralismatic

там разжёвано всё настолько подробно, что даже младенец сможет им рулить

Но ведь ТС не младенец.

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