Come forzare la rimozione di un pacchetto in Arch con pacman?


64

Come forzare la rimozione di un pacchetto in Arch con pacmanmentre altri pacchetti dipendono ancora da esso.

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

sostanzialmente LWP 6 ha diviso un sacco di pacchetti e devo rimuoverlo per poterlo reinstallare.


Non esiste un equivalente del flag --reinstall di apt-get?
Faheem Mitha,

@faheem considerando che arch non ha ancora rilasciato libwww 6 ... anche se ci fosse non funzionerebbe proprio in questo scenario
xenoterracide

@xenoterracide: mi dispiace, non ho seguito per niente la tua risposta (suppongo che libwww abbia qualcosa a che fare con il pacchetto che stai tentando di installare) ma per favore non senti di doverti spiegare per mio conto. :-)
Faheem Mitha

@faheem è LWP . ma di solito possiamo semplicemente reinstallare un pacchetto richiedendo di nuovo l'installazione ... ciò non aiuta in questo caso però perché non è in Arch repo e ho bisogno di disinstallarlo e aggiornarlo senza usare Arch Repo, e poiché il pacchetto era diviso, ho avuto conflitti di file.
xenoterracide,

@faheem nota anche che Arch non è debian e non ha idea di come funzioni Debian apt-get --reinstall.
xenoterracide,

Risposte:


97

Dovresti essere in grado di reinstallare il pacchetto con un semplice:

# pacman -S perl-libwww

Questo rimuoverà solo perl-libwww:

# pacman -Rdd perl-libwww

Nota il doppio -d nel comando, se usi --nodeps devi specificare anche quello due volte o combinarlo con un -d come:

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

Questo rimuove tutti i pacchetti che dipendono da perl-libwww:

# pacman -Rc perl-libwww

Dalla pagina man di 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 grazie per -Rc anche, maggiori informazioni in Arch Wiki
vladkras,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.