Comment forcer la suppression d'un paquet dans Arch avec pacman?

64

Comment forcer la suppression d'un paquet dans Arch pacmanalors que d'autres paquets en dépendent toujours.

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

Fondamentalement, LWP 6 a divisé tout un paquet de paquets et je dois le supprimer pour pouvoir le réinstaller.

xénoterracide
la source
Il n'y a pas d'équivalent de --reinstall flag d'apt-get?
Faheem Mitha
@faheem considérant que arch n'a pas encore publié libwww 6 ... même s'il y en avait un qui ne fonctionnerait pas correctement dans ce scénario
xenoterracide
@xenoterracide: Désolé, je n'ai pas suivi votre réponse (je suppose que libwww a quelque chose à voir avec le paquet que vous essayez d'installer) mais s'il vous plaît, ne vous sentez pas obligé d'expliquer en mon nom. :-)
Faheem Mitha Le
@faheem c'est LWP . mais nous pouvons normalement simplement réinstaller un paquet en demandant de l'installer à nouveau ... cela n'aide pas dans ce cas car il ne fait pas partie du référentiel arch et je dois le désinstaller et le mettre à niveau sans utiliser le référentiel arch, et depuis le package divisé, j'ai eu des conflits de fichiers.
xenoterracide
@faheem également s'il vous plaît noter que Arch n'est pas Debian, et n'ont aucune idée de la façon dont fonctionne Debian apt-get --reinstall.
xenoterracide

Réponses:

97

Vous devriez pouvoir réinstaller le paquet avec un simple:

# pacman -S perl-libwww

Cela ne supprimera que perl-libwww:

# pacman -Rdd perl-libwww

Veuillez noter le double -d dans la commande, si vous utilisez --nodeps, vous devez aussi le spécifier deux fois ou le combiner avec un -d comme:

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

Cela supprime tous les paquets qui dépendent de perl-libwww:

# pacman -Rc perl-libwww

De la page de manuel de 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.
Kambus
la source
2
+1 merci pour -Rc aussi, plus d'infos sur Arch Wiki
vladkras