Chiến lược quản lý trọn gói với Pacman


7

Kể từ khi tôi chuyển distro yêu thích của mình sang Gentoo, tôi đã rất quen thuộc với mẫu sau để cài đặt và gỡ bỏ các gói:

  1. Cài đặt một loạt các ứng dụng thực hiện khá nhiều điều tương tự để dùng thử : emerge <package>. Lệnh này cài đặt gói và đánh dấu gói là đã cài đặt rõ ràng.
  2. Hãy thử chúng và loại bỏ những thứ tôi không thích (và hy vọng giữ một hoặc hai cái thỏa mãn nhu cầu của tôi) : emerge --deselect <package>. Lệnh này loại bỏ gói khỏi danh sách các ứng dụng được cài đặt rõ ràng, nhưng không gỡ cài đặt gói.
  3. Cuối cùng, xóa mọi thứ không cần thiết trên hệ thống của tôi : emerge --depclean. Lệnh này loại bỏ tất cả các gói (1) không phải là gói hệ thống, (2) không được cài đặt rõ ràng và (3) không phụ thuộc vào hai gói đó.
  4. Và tùy chọn kiểm tra xem tất cả các phụ thuộc gói là OK : revdep-rebuild. Lệnh này kiểm tra tất cả các phụ thuộc và cài đặt lại các gói bị hỏng.

Thỉnh thoảng tôi sẽ xem các mục trong /var/lib/portage/world(danh sách các gói được cài đặt rõ ràng) để xem xét các ứng dụng cấp cao nhất mà tôi sử dụng và xóa những mục tôi không sử dụng nữa bằng cách sử dụng các lệnh trong bước 2, 3 và 4 .

Bây giờ tôi đang cố gắng học Arch, tôi tự hỏi liệu tôi có thể sử dụng chiến lược tương tự với Pacman không? Hoặc một chiến lược khác có thể giữ cho hệ thống của tôi sạch các gói không sử dụng?

Lưu ý: Pacman Rosetta giúp ích rất nhiều trong việc hiểu nhanh mọi thứ, nhưng tôi không thể tìm ra /var/lib/portage/worldtệp tương đương của Arch . pacman -Qeđược cho là làm điều đó, nhưng nó chứa những điều mà tôi thề là tôi chưa cài đặt rõ ràng ... Dù sao, xin vui lòng trả lời câu hỏi này về mặt chiến lược (tất nhiên với các ví dụ lệnh :)


vì arch không phải là một bản phân phối nguồn mà bạn sẽ không tìm thấy tương đương với việc xây dựng lại revdep, tôi hiếm khi tìm thấy các bản bị hỏng ... nhưng nó xảy ra ... và sau đó tôi chỉ cần xây dựng lại và cài đặt lại với pkgbuild và cho các nhà phát triển vòm biết nếu nó hoạt động . đã xảy ra với smplayer một vài tháng trước.
xenoterracide

@xenoterracide Cảm ơn bạn đã biết thông tin, nhưng trong câu hỏi này tôi không quan tâm lắm đến việc xây dựng lại
Revdep

Câu trả lời:


4

Lý do rất có thể bạn đang thấy các gói pacman -Qemà bạn không nhớ cài đặt là chúng là một phần của "nhóm" (như base-devel, v.v.) mà bạn đã cài đặt.

Lưu ý bên lề: Cá nhân tôi cũng đã tìm kiếm một thời gian để chuyển gói từ "rõ ràng" sang "ẩn" (và thậm chí ngược lại) mà không cài đặt lại, thậm chí còn lấy một gói tôi đã cài đặt rõ ràng để làm cho gói khác hoạt động và chuyển nó thành một phần phụ thuộc của gói đó (một lần nữa mà không cần cài đặt lại).


Điểm quan trọng pacman -Qelà thú vị, tôi không quen thuộc với điều "nhóm". Liên quan đến lưu ý phụ, arent --asdeps--asexplicitphải làm điều đó?
phunehehe

@phunehehe Không, pacman -Qe là một truy vấn (hiển thị tất cả các gói được cài đặt rõ ràng) --asdeps và --asexplicit là các tùy chọn đồng bộ hóa. --asdeps sẽ CÀI ĐẶT một ứng dụng như thể nó là một phụ thuộc. Vì nó không thực sự được yêu cầu bởi bất cứ điều gì, nó sẽ xuất hiện trong "pacman -Qdt" liệt kê tất cả các gói được cài đặt dưới dạng phụ thuộc không còn yêu cầu bởi bất cứ điều gì (thường các gói đó có thể được gỡ bỏ mà không có hậu quả). Điều khó hiểu nhất mà tôi tìm thấy về pacman khi tôi bắt đầu (đến từ apt-get / apt-cache của
ubfox

2

Nhờ câu trả lời của DarwinSurvivor, tôi đã có thể hiểu rõ hơn về cách quản lý gói hoạt động trong Arch. Bây giờ tôi có thể áp dụng chiến lược tương tự mà tôi sử dụng với Gentoo (với các sửa đổi nhỏ). "Tương đương" của các lệnh trong câu hỏi lần lượt là:

  1. pacman -S <package>
  2. pacman -D --asdeps <package>
  3. pacman -Rs $(pacman -Qqtd)
  4. Không có sẵn / không cần thiết

Điều gần nhất với /var/lib/portage/worldGentoo là kết quả của lệnh pacman -Qe. Sự khác biệt:

  1. Arch có các nhóm gói , về cơ bản là một số gói "được nhóm" lại với nhau dưới một tên. Khi một nhóm được cài đặt, mọi thứ trong nhóm được coi là được cài đặt rõ ràng.
  2. Arch không có "gói hệ thống", do đó, việc giảm các mục từ kết quả pacman -Qethực sự có thể dẫn đến việc các gói quan trọng bị xóa.

1

Nếu tôi nhớ chính xác,

pacman -S package

cài đặt một gói

pacman -Rs package

xóa một gói và tất cả các phụ thuộc của nó --- nhưng chỉ những gói không phá vỡ các gói khác và chỉ những gói mà bạn không cài đặt rõ ràng.

Kiểm tra trang người đàn ông pacman.

Thật không may, tôi không biết làm thế nào để kiểm tra các gói bị hỏng.


0

Thay vì dựa vào trình quản lý gói để theo dõi các gói được cài đặt rõ ràng, bạn có thể sử dụng công cụ quản lý cấu hình như Ansible trên hệ thống của mình. Tôi sử dụng nó cho một vài máy của riêng tôi và tôi luôn có thể thiết lập một máy giống như máy chính của mình chỉ bằng hai lệnh.

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.