Bagaimana cara memaksa menghapus paket di Arch dengan pacman?

64

Bagaimana saya memaksa menghapus suatu paket di Arch dengan pacmansementara paket lain masih bergantung padanya.

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

pada dasarnya LWP 6 membagi sejumlah paket, dan saya harus menghapusnya sehingga saya dapat menginstalnya kembali.

xenoterracide
sumber
Tidak ada yang setara dengan flag --reinstall apt-get's?
Faheem Mitha
@ faheem mengingat bahwa lengkungan belum merilis libwww 6 ... bahkan jika ada itu tidak akan berfungsi dengan baik dalam skenario ini
xenoterracide
@ xenoterracide: Maaf, saya tidak mengikuti respons Anda sama sekali (saya berasumsi libwww ada hubungannya dengan paket yang Anda coba instal) tetapi tolong jangan merasa Anda perlu menjelaskan atas nama saya. :-)
Faheem Mitha
@Faheem itu LWP . tetapi kami biasanya hanya dapat menginstal ulang paket dengan meminta itu menginstal lagi ... itu tidak membantu dalam kasus ini karena itu bukan di arch repo dan saya perlu menghapus ini dan memutakhirkannya tanpa menggunakan arch repo, dan karena paket itu perpecahan, saya punya konflik file.
xenoterracide
@Faheem juga harap perhatikan bahwa Arch bukan debian, dan tidak tahu cara kerja debian apt-get --reinstall.
xenoterracide

Jawaban:

97

Anda harus dapat menginstal ulang paket dengan sederhana:

# pacman -S perl-libwww

Ini hanya akan menghapus perl-libwww:

# pacman -Rdd perl-libwww

Harap perhatikan double -d pada perintah, jika Anda menggunakan --nodeps Anda harus menentukannya dua kali atau menggabungkannya dengan -d seperti:

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

Ini menghapus semua paket yang bergantung pada perl-libwww:

# pacman -Rc perl-libwww

Dari halaman manual 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
sumber
2
+1 terima kasih untuk -Rc juga, info lebih lanjut di Arch Wiki
vladkras