Wie erzwinge ich das Entfernen eines Pakets in Arch mit Pacman?

64

Wie erzwinge ich das Entfernen eines Pakets in Arch, pacmanwährend andere Pakete noch davon abhängen?

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

Grundsätzlich hat LWP 6 eine ganze Reihe von Paketen aufgeteilt, und ich muss es entfernen, damit ich es erneut installieren kann.

Xenoterracid
quelle
Es gibt kein Äquivalent zum Flag --reinstall von apt-get?
Faheem Mitha
@faheem bedenkt, dass arch libwww 6 noch nicht veröffentlicht hat ... auch wenn es in diesem Szenario nicht funktionieren würde
Xenoterracide
@xenoterracide: Tut mir leid, ich habe Ihre Antwort überhaupt nicht befolgt (ich gehe davon aus, dass libwww etwas mit dem Paket zu tun hat, das Sie installieren möchten), aber bitte haben Sie nicht das Gefühl, dass Sie es in meinem Namen erklären müssen. :-)
Faheem Mitha
@faheem es ist LWP . Normalerweise können wir ein Paket einfach neu installieren, indem wir es erneut installieren lassen. In diesem Fall ist dies jedoch nicht hilfreich, da es nicht in Arch Repos enthalten ist und ich es deinstallieren und aktualisieren muss, ohne Arch Repos zu verwenden geteilt, ich hatte Dateikonflikte.
Xenoterracide
@faheem beachte auch, dass Arch kein Debian ist und keine Ahnung hat, wie Debian apt-get --reinstallfunktioniert.
Xenoterracide

Antworten:

97

Sie sollten in der Lage sein, das Paket mit einem einfachen:

# pacman -S perl-libwww

Dies entfernt nur perl-libwww:

# pacman -Rdd perl-libwww

Beachten Sie bitte das doppelte -d im Befehl. Wenn Sie --nodeps verwenden, müssen Sie das auch zweimal angeben oder mit einem -d wie folgt kombinieren :

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

Dies entfernt alle Pakete, die von perl-libwww abhängen:

# pacman -Rc perl-libwww

Aus Pacmans Manpage:

   -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.
Kambus
quelle
2
+1 Danke auch für -Rc, mehr Infos im Arch Wiki
vladkras