Làm cách nào để tôi chỉ xóa một gói cụ thể với apt-get?


18

Tôi chỉ cài đặt máy chủ MySQL và tất cả các phụ thuộc của nó, trong số các nhu cầu cần thiết khác. Nhưng khi đi đến cấu hình máy chủ mysql, nó đã không làm như vậy và phát sinh lỗi. Lỗi nào không liên quan ở đây vì tôi đã cố gắng xác định vấn đề là vấn đề phụ thuộc giữa máy chủ mysql và máy chủ phổ biến mysql. Mysql-chung cần phải được loại bỏ.

Nhưng khi tôi đi đến

apt-get purge remove mysql-common 

Nó cũng tự động muốn loại bỏ mọi thứ liên quan đến nó, bao gồm tất cả các phụ thuộc mysql, thậm chí apache2 và php5 ..

Vì vậy, đối số nào cần được thêm vào lệnh apt-get để gỡ cài đặt CHỈ MỘT gói, nhưng vẫn giữ nguyên tất cả các đối số khác.

Câu trả lời:


21

apt-get sẽ không cho phép bạn làm điều đó, vì đó là một bước nguy hiểm tiềm tàng cho một hệ thống quản lý gói cho phép.

Miễn là bạn biết rằng có thể có hậu quả, hãy sử dụng dpkgvới --removetùy chọn để làm điều đó. Ví dụ:

sudo dpkg --remove mysql-common

Lưu ý : Trên hệ thống 12.04 của tôi apache2, php5, mysql-serverđược cài đặt riêng, sử dụng apt-getđể xóa mysql-commonKHÔNG muốn xóa apache2 hoặc php5 .

Từ nhận xét của chứng mất ngủ: Nếu bạn cần ghi đè quyết định của hệ thống phụ thuộc, bạn có thể (hết sức cẩn thận và đảm bảo bạn biết bạn đang làm gì), hãy sử dụng bổ sung --force-depends.

sudo dpkg --remove --force-depends mysql-common

Được rồi, cảm ơn. Nhiều người khác tuyên bố nó đã làm việc. Ý tôi là rất nhiều người Nhưng vâng, điều đó xảy ra trên Ubuntu. Nhưng tôi thực sự trên debian. Nhưng tôi đã hỏi ở đây vì tôi là một người dùng ở đây, và họ rất giống nhau và hệ thống gói giống nhau .. cảm ơn.
mất ngủ

Đừng lo lắng. Tôi sẽ không để bạn bị treo. Tôi luôn chấp nhận. Mọi người thường bỏ qua nó sau khi tôi chấp nhận và vẫn còn một vấn đề. Nhưng tôi đã thử nó và nó sẽ không cho phép tôi. Có một lệnh lực lượng?
mất ngủ

Xin lỗi, điều đó đúng - tôi nghĩ bạn phải đợi một khoảng thời gian nhất định trước khi bạn có thể làm điều đó - 15 phút, tôi nghĩ sao? Vui lòng thử lại bất cứ khi nào bạn có cơ hội, không vội vàng. Ngoài ra, tôi chỉ lưu ý rằng bạn đã đề cập rằng bạn đang sử dụng Debian - lưu ý rằng các câu hỏi liên quan đến Debian không có chủ đề và thường bị đóng như vậy. Vui lòng xem xét yêu cầu trên unix.stackexchange.com cho một cái gì đó cụ thể về Debian trong tương lai :)
ish

Vâng, tôi đã hiểu như vậy .. lý do chính tại sao tôi không thực sự đề cập đến nó cho đến khi tôi cần. Tôi có nghĩa là các trình quản lý gói của họ là như nhau, Ubuntu chỉ là supian up. nhưng không sao Tuy nhiên, điều 15 phút không hoạt động, vì tôi đã cố gắng lâu hơn 15 phút sau. Nhưng tôi không thể gõ một cái gì đó tương tự như "dpkg -f --remove mysql-common"?
mất ngủ

Nếu đồng bằng --removecung cấp cho bạn một cảnh báo và hủy bỏ, chắc chắn, bạn có thể buộc nó với -f. BTW, --removegiống như -r.
ish

0

Nếu bất cứ ai muốn biết có lệnh debian 2014:

dpkg --force-all -r name_of_package

Nó đã thay đổi một chút

Có rất nhiều đối số - lực lượng vì vậy vì lý do chính đáng, hãy kiểm tra chúng bằng cách:

dpkg --force-help

--force-allchắc chắn là không an toàn, tại sao không đề xuất --force-dependsVÀ cung cấp một cảnh báo thích hợp quá?
guntbert

Không bao giờ an toàn để xóa gói cần thiết cho các gói khác mà không cần gỡ cài đặt gói khác. --force-all chỉ là cách tiếp cận nhanh chóng và bẩn thỉu
Michal Sapsa
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.