ฉันจะบังคับให้ลบแพ็กเกจใน 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 แบ่งแพคเกจทั้งหมดและฉันต้องลบมันออกเพื่อให้ฉันสามารถติดตั้งใหม่ได้


ไม่มีการติดตั้ง --reinstall ของ apt-get เทียบเท่าหรือไม่
Faheem Mitha

@faheem กำลังพิจารณาว่า arch ยังไม่ได้ปล่อย libwww 6 แต่ ... แม้ว่าจะไม่ได้ผลในสถานการณ์นี้
xenoterracide

@xenoterracide: ขออภัยฉันไม่ได้ปฏิบัติตามคำตอบของคุณเลย (ฉันถือว่า libwww เป็นสิ่งที่ต้องทำกับแพ็คเกจที่คุณพยายามติดตั้ง) แต่โปรดอย่าคิดว่าคุณต้องอธิบายในนามของฉัน :-)
Faheem Mitha

@faheem มันLWP แต่โดยปกติเราสามารถติดตั้งแพคเกจใหม่ได้โดยขอให้ติดตั้งอีกครั้ง ... ซึ่งไม่ได้ช่วยในกรณีนี้แม้ว่าจะไม่ใช่ใน arch repo's และฉันต้องถอนการติดตั้งและอัปเกรดโดยไม่ต้องใช้ arch repo และเนื่องจากแพ็คเกจนั้น แยกกันฉันมีข้อขัดแย้งของไฟล์
xenoterracide

@faheem โปรดทราบด้วยว่า Arch ไม่ใช่เดเบียนและไม่รู้ว่าapt-get --reinstallงานของเดเบียนนั้นเป็นอย่างไร
xenoterracide

คำตอบ:


97

คุณควรจะติดตั้งแพ็คเกจใหม่ด้วยวิธีง่ายๆ:

# pacman -S perl-libwww

นี่จะเป็นการลบ perl-libwww:

# pacman -Rdd perl-libwww

โปรดสังเกต double -dในคำสั่งถ้าคุณใช้--nodepsคุณต้องระบุสองครั้งด้วยหรือรวมกับ-d like:

# 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.