Sự khác biệt giữa thanh trừng và dpkg -P?


9

Tôi đã phải gỡ cài đặt phpmyadmin khỏi máy chủ sản xuất và tìm kiếm nó và sử dụng nó:

sudo dpkg -P phpmyadmin

Chà, điều này đã hoạt động tốt, nhưng có vẻ như mọi người khác trên Ubuntu đang sử dụng một cuộc thanh trừng thay thế

sudo apt-get purge phpmyadmin 

Tôi đã làm gì sai? Bất kỳ hậu quả nào tôi nên biết (đó là máy chủ sản xuất của tôi) Có phải tất cả các bit của phpmyadmin thực sự được gỡ cài đặt thông qua dpkg -P?


Từ trang con người của dpkg, nó nói "-P, - gói gói", vì vậy -P là viết tắt của 'thanh trừng', vì vậy, như tôi nghĩ về nó, nó sẽ giống như vậy. Cá nhân tôi sử dụng 'apt-get purge'
hytromo

Câu trả lời:


5

dpkgapt-getlà 2 cách khác nhau để cài đặt phần mềm. Về cơ bản apt-get, aptitude và synap được xây dựng dựa trên chương trình quản lý gói dpkg của debian. Tất cả đều thực hiện cùng chức năng cơ bản - quản lý gói, nhưng có một số tính năng bổ sung. Một trong những tính năng bổ sung của apt-get là nó sẽ cài đặt các phụ thuộc và dpkg thì không.

Về -p / thanh trừng ...

Các phương tiện -Ptrong và sẽ loại bỏ mọi thứ, bao gồm các tệp định cư và cấu hình. Từ hướng dẫn:dpkg--purge

-r, --remove, -P, --purge package...|-a|--pending

          Remove  an  installed  package. -r or --remove remove everything
          except conffiles. This may avoid having to reconfigure the pack‐
          age  if  it  is  reinstalled later. (Conffiles are configuration
          files that are listed in the DEBIAN/conffiles control file).  -P
          or  --purge  removes  everything,  including conffiles. If -a or
          --pending is given instead of a package name, then all  packages
          unpacked,   but   marked   to  be  removed  or  purged  in  file
          /var/lib/dpkg/status, are removed or purged, respectively. Note:
          some  configuration  files might be unknown to dpkg because they
          are created and handled  separately  through  the  configuration
          scripts. In that case, dpkg won't remove them by itself, but the
          package's postrm script (which is called by dpkg), has  to  take
          care of their removal during purge. Of course, this only applies
          to files in system directories, not configuration files  written
          to individual users' home directories.

          Removing of a package consists of the following steps:

          1. Run prerm script

          2. Remove the installed files

          3. Run postrm script

Cùng đi purgetrong apt-get.

 remove
       remove is identical to install except that packages are removed
       instead of installed. Note the removing a package leaves its
       configuration files in system. If a plus sign is appended to the
       package name (with no intervening space), the identified package
       will be installed instead of removed.


 purge
       purge is identical to remove except that packages are removed and
       purged (any configuration files are deleted too).

Về cơ bản nó là tùy chọn tương tự. Lưu ý bạn: loại bỏ các phụ thuộc không xảy ra với dpkg. apt-get không loại bỏ phụ thuộc

Tài liệu từ bình luận của Lekensteyn:


+1 sắp viết một câu trả lời tương tự. Tài liệu: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . Điều phụ thuộc cần được làm nổi bật. Ví dụ: loại bỏ php5cũng sẽ phpmyadminbị xóa (giả sử không có các SAPI PHP khác). aptcó thể xử lý việc này, dpkgkhông thể tự làm được.
Lekensteyn

Tuyệt vời lekensteyn. Vẫn đang nhìn vào (vì sự phụ thuộc quá mức đang cằn nhằn tôi). Đã thêm nó vào :) Hãy thoải mái chỉnh sửa câu trả lời của tôi nếu bạn có thêm: D
Rinzwind

Không sao :) Nếu ai đó gặp phải vấn đề phụ thuộc sau khi sử dụng dpkgtrực tiếp, họ có thể sửa nó bằng sudo apt-get install -f(như được đề xuất bởi dpkg)
Lekensteyn

Cảm ơn tất cả mọi người cho lời khuyên của bạn. Vì vậy, tôi có làm một sudo apt-get install -f phpmyadmintrong trường hợp của tôi để đảm bảo các phụ thuộc được xóa? Điều gì nếu các phụ thuộc được chia sẻ?
Houman

@Kave Phụ thuộc không được cài đặt thủ công sẽ bị xóa khi không có gói nào được cài đặt phụ thuộc vào chúng.
nanofarad
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.