Làm thế nào để tôi buộc loại bỏ một gói trong Arch với pacman?


64

Làm cách nào để tôi buộc loại bỏ một gói trong Arch pacmantrong khi các gói khác vẫn phụ thuộc vào nó.

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

về cơ bản, LWP 6 chia ra một loạt các gói và tôi cần gỡ bỏ nó để tôi có thể cài đặt lại.


Không có tương đương với cờ --reinstall của apt-get?
Faheem Mitha

@faheem xem xét rằng vòm chưa phát hành libwww 6 ... ngay cả khi nó không hoạt động ngay trong kịch bản này
xenoterracide

@xenoterracide: Xin lỗi, tôi hoàn toàn không theo dõi phản hồi của bạn (Tôi cho rằng libwww là thứ cần làm với gói bạn đang cố gắng cài đặt) nhưng xin vui lòng đừng cảm thấy bạn cần phải giải thích thay cho tôi. :-)
Faheem Mitha

@faheem đó là LWP . nhưng thông thường chúng ta chỉ có thể cài đặt lại gói bằng cách yêu cầu cài đặt lại ... điều đó không giúp ích gì trong trường hợp này bởi vì nó không có trong arch repo và tôi cần gỡ cài đặt gói này và nâng cấp mà không cần sử dụng arch repo, và vì gói đó là chia tay, tôi đã có xung đột tập tin.
xenoterracide

@faheem cũng xin lưu ý rằng Arch không phải là debian và không biết debian apt-get --reinstallhoạt động như thế nào .
xenoterracide

Câu trả lời:


97

Bạn có thể cài đặt lại gói một cách đơn giản:

# pacman -S perl-libwww

Điều này sẽ chỉ loại bỏ perl-libwww:

# pacman -Rdd perl-libwww

Vui lòng lưu ý double -d trong lệnh, nếu bạn sử dụng --nodeps, bạn phải xác định hai lần quá hoặc kết hợp nó với một -d như:

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

Điều này loại bỏ tất cả các gói phụ thuộc vào perl-libwww:

# pacman -Rc perl-libwww

Từ trang người đàn ông của 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 cũng cảm ơn vì -Rc, thông tin thêm trong Arch Wiki
vladkras
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.