Як змусити видалити пакет з Arch з pacman?


64

Як змусити видалити пакет з Arch, pacmanтоді як інші пакети все ще залежать від нього.

pacman -R perl-libwww                                                               
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: perl-app-cpanminus: requires perl-libwww>=5.828
:: perl-app-pmuninstall: requires perl-libwww
:: perl-app-sd: requires perl-libwww
:: perl-catalyst-action-rest: requires perl-libwww>=2.033 
:: perl-catalyst-runtime: requires perl-libwww>=1.64
:: perl-cpan: requires perl-libwww
:: perl-cpan-mini: requires perl-libwww
:: perl-cpan-uploader: requires perl-libwww
:: perl-feed-find: requires perl-libwww
:: perl-http-body: requires perl-libwww
:: perl-http-request-ascgi: requires perl-libwww
:: perl-module-cpants-analyse: requires perl-libwww
:: perl-module-install: requires perl-libwww>=5.812
:: perl-net-trac: requires perl-libwww
:: perl-net-whois-raw: requires perl-libwww
:: perl-prophet: requires perl-libwww
:: perl-rt-client-rest: requires perl-libwww
:: perl-uri-fetch: requires perl-libwww
:: perl-www-mechanize: requires perl-libwww
:: perl-xml-atom: requires perl-libwww
:: perl-xml-feed: requires perl-libwww

в основному LWP 6 розділив цілу купу пакетів, і мені потрібно її видалити, щоб я міг її знову встановити.


Не існує еквівалента прапора apt-get - перевстановити?
Faheem Mitha

@faheem вважаючи, що арка ще не випустила libwww 6 ... навіть якщо б це не було, це не спрацювало б правильно в цьому сценарії
xenoterracide

@xenoterracide: Вибачте, я взагалі не дотримувався вашої відповіді (я припускаю, що libwww - це щось спільне з пакетом, який ви намагаєтесь встановити), але, будь ласка, не відчуваю, що вам потрібно пояснювати від мого імені. :-)
Faheem Mitha

@faheem це LWP . але ми можемо просто перевстановити пакет, попросивши його встановити знову ... це не допомагає в цьому випадку, хоча тому, що він не в Arch Repo, і мені потрібно видалити та оновити його, не використовуючи Arch Repo, і оскільки пакет був розколовся, у мене були конфлікти файлів.
ксенотеррацид

@faheem також зверніть увагу, що Arch не є debian і не має уявлення про те, як apt-get --reinstallпрацює debian .
ксенотеррацид

Відповіді:


97

Ви повинні мати змогу перевстановити пакет простим:

# pacman -S perl-libwww

Це видалить лише perl-libwww:

# pacman -Rdd perl-libwww

Зауважте, що в команді є подвійний -d , якщо ви використовуєте --nodeps, вам слід вказати це також двічі або поєднати його з ad на зразок:

# pacman -R --nodeps --nodeps perl-libwww
# pacman -Rd --nodeps perl-libwww

Це видаляє всі пакунки, які залежать від perl-libwww:

# pacman -Rc perl-libwww

З сторінки чоловіка pacman:

   -d, --nodeps
       Skips dependency version checks. Package names are still
       checked. Normally, pacman will always check a package’s
       dependency fields to ensure that all dependencies are
       installed and there are no package conflicts in the
       system. Specify this option twice to skip all dependency
       checks.
   -c, --cascade
       Remove all target packages, as well as all packages that
       depend on one or more target packages. This operation is
       recursive, and must be used with care since it can remove
       many potentially needed packages.

2
+1 спасибі за -Rc також, більше інформації у Arch Wiki
vladkras
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.