Fedora tương đương với 'apt-get purge' là gì?


45

Trong Debian, có ít nhất hai cách để xóa gói:

  • apt-get remove pkgname
  • apt-get purge pkgname

Cái đầu tiên bảo tồn các tệp cấu hình trên toàn hệ thống (nghĩa là các tệp được tìm thấy trong " / etc "), trong khi tệp thứ hai thì không.

Fedora tương đương với hình thức thứ hai là purgegì? Hoặc có lẽ tôi nên hỏi nếu yum remove pkgnamethực sự bảo tồn các tập tin cấu hình.

Câu trả lời:


27

yum remove không được bảo đảm để bảo toàn các tập tin cấu hình.

Như đã nêu trong yum HOWTO :

Trong mọi trường hợp, cú pháp lệnh để loại bỏ gói là:

# yum remove package1 [package2 package3...]

Như đã lưu ý ở trên, nó loại bỏ gói1 và tất cả các gói trong cây phụ thuộc phụ thuộc vào gói1, có thể không thể đảo ngược khi có liên quan đến dữ liệu cấu hình .

Cập nhật

Như James chỉ ra, bạn có thể sử dụng rpm -elệnh để xóa gói nhưng lưu các bản sao lưu của bất kỳ tệp cấu hình nào đã thay đổi.

Để biết thêm thông tin, hãy xem Sử dụng RPM để xóa các gói . Đặc biệt:

Nó kiểm tra xem liệu bất kỳ tập tin cấu hình của gói đã được sửa đổi. Nếu vậy, nó lưu bản sao của chúng.


4
Điều đó không thực sự đúng, "rpm -e" sẽ xóa các tệp cấu hình nếu chúng không thay đổi. Nếu chúng đã được thay đổi, chúng sẽ được chuyển đến <filename> .rpmsave và không bị xóa.
James Antill

9

Tôi đã tìm thấy câu trả lời này cho một câu hỏi trùng lặp trên ServerFault có tiêu đề: yum tương đương với apt apt-get purge " cung cấp phương pháp duy nhất tôi thấy có thể làm những gì apt-get purge <pkg>trên Ubuntu / Debian.

for package in package1 package2 package3
do
  echo "removing config files for $package"
  for file in $(rpm -q --configfiles $package)
  do
    echo "  removing $file"
    rm -f $file
  done
  rpm -e $package
done

Phương pháp khác duy nhất tôi có thể nghĩ ra ở đây là phân tích đầu ra yum remove <pkg>và sau đó xóa thủ công bất kỳ tệp nào có thể đã được sửa đổi. Ví dụ: khi gần đây tôi đã cài đặt RPM của ElasticSearch cho 2.3 Tôi đã sửa đổi một số tệp được liên kết với RPM này. Khi tôi xóa nó bằng YUM, bạn sẽ nhận được thông báo ở đầu ra như thế này:

warning: /etc/sysconfig/elasticsearch saved as /etc/sysconfig/elasticsearch.rpmsave
warning: /etc/elasticsearch/logging.yml saved as /etc/elasticsearch/logging.yml.rpmsave
warning: /etc/elasticsearch/elasticsearch.yml saved as /etc/elasticsearch/elasticsearch.yml.rpmsave

Chúng có thể được xóa bài xóa bằng cách sử dụng YUM theo kịch bản hoặc bằng tay.

Tài liệu tham khảo


Đây có thể là một plugin dnf thú vị ....
mattdm

@mattdm - vấn đề này thỉnh thoảng xuất hiện, sẽ rất tuyệt nếu chúng ta có thể làm điều này trong thế giới "RPM".
slm

1

Không có tương đương cho "thanh trừng", chỉ cần sử dụng yum remove package.

Ngoài ra, bạn có thể sử dụng yum reinstall package, khi bạn muốn cài đặt lại một số gói ...


1
Trên thực tế, như được giải thích trong câu trả lời của Justin Ethier , yum removetương đương với apt-get purge.
Gilles 'SO- ngừng trở nên xấu xa'

6
@Gilles Justin Ethier nói yum removelà " không được bảo đảm để bảo vệ các tệp cấu hình." Điều đó không giống như nói rằng nó được đảm bảo không bảo toàn các tệp cấu hình (có nghĩa là nó tương đương với apt-get purge). Bạn đang thực hiện yêu cầu này (nhiều) mạnh mẽ hơn?
Eliah Kagan

@EliahKagan Đó là cách tôi hiểu về cách mà Justin trích dẫn. Tôi không chắc là nó đúng, CentOS dường như đang nói ngược lại.
Gilles 'SO- ngừng trở nên xấu xa'

1
Tôi nghĩ đó là hành vi không xác định. Yum có thể hoặc không thể bảo quản các tập tin cấu hình.
m0j0

-2

Nếu bạn muốn dọn sạch các tệp cấu hình khỏi chương trình mà bạn đã xóa gần đây thông qua hệ thống RPM, tất cả những gì bạn phải làm là nhập: yum xóa tất cả


2
Điều này là không đúng. "Yum clean all" chỉ đơn giản là dọn sạch siêu dữ liệu được lưu trong bộ nhớ cache, danh sách nhân bản, v.v., được sử dụng bởi yum. Nó không làm gì để tập tin cấu hình.
m0j0
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.