Chặn gói không bị gỡ cài đặt trong APT


8

Nói tóm lại, tôi muốn có thể đặt gói abcsao cho:

  1. apt-get remove abc nên thất bại
  2. apt-get purge abc nên thất bại
  3. apt-get upgrade abc nên làm việc.

Nếu các phụ thuộc gói thay đổi để abcđược gỡ cài đặt trong thời gian dist-upgradetôi vui mừng khi bị buộc phải làm một cái gì đó và sau đó dist-upgrademột lần nữa.


Tôi đã tạo ra một siêu dữ liệu thiết yếu phụ thuộc vào abc, nhưng dù sao nó cũng bị xóa ... Tôi nghĩ bạn phải biên dịch lại abccài đặt Essential: yesPriority: requiredtrongdebian/control
Teresa e Junior

@TeresaeJunior Strange, một gói thiết yếu deftùy thuộc vào abcnên đã hoạt động. Đã được defgỡ bỏ? Nó có giúp gì nếu bạn thực hiện def Priority: requiredkhông?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Chính xác, tôi đặt cả Essential: yesPriority: requiredvà nó đã được gỡ bỏ với không có cảnh báo. Tôi đã tạo tập lệnh nhỏ này để tạo gói, nếu bạn muốn có một cái nhìn: paste.org/44184
Teresa e Junior

Tôi thấy điều đó Essential: yesđã bị bỏ qua, vì vậy equivskhông đủ cho điều đó ... Có lẽ nếu gói được tạo ra debuild, tôi sẽ thử.
Teresa e Junior

Câu trả lời:


5

Không thực sự có bất cứ điều gì để 'ghim' một gói xuống để có thể ngăn chặn loại bỏ, nhưng cho phép nâng cấp.

Bạn có thể đóng một cành nhọn vào một gói, không thể bị xóa, thanh trừng, nâng cấp, liếm, bất cứ điều gì ...

Nhưng đó là một chút phức tạp hơn hầu hết mọi thứ.

Ví dụ: chúng tôi muốn ghim firefox xuống: (dĩ nhiên bạn sẽ sử dụng tên đầy đủ của gói)

echo firefox hold | dpkg --set-selections

mà sau đó sẽ làm cho ' firefox ' bất tử. NHƯNG , nó cũng không thể được nâng cấp trong trạng thái này.

Để xóa trạng thái giữ dễ dàng hơn một chút, nhưng đó là một cử chỉ quét:

dpkg --clear-selections

xóa trạng thái GIỮ khỏi MỌI THỨ! Vì vậy, nếu bạn muốn giữ một vài gói, tốt nhất bạn nên giữ một danh sách để áp dụng lại sau

Nó thực sự khá dễ chịu và dễ thực hiện bằng cách sử dụng năng khiếu hoặc khớp thần kinh , vì chúng có các tùy chọn menu để giữ / mở gói, chăm sóc tất cả các sổ sách đằng sau hậu trường cho bạn. Tôi khuyên bạn nên sử dụng một trong số đó (hoặc bất kỳ trong số vô số các trình quản lý gói khác mà bạn có thể gặp phải)

Với Aptitude, việc sử dụng dòng lệnh cũng có thể:

aptitude hold <package>
aptitude unhold <package>

Ghi tuy nhiên, bạn sẽ cần phải ' Nhả cái gì đó' nếu muốn nó để nâng cấp. Mặc dù nếu bạn sử dụng phía GUI của Aptitude, nó sẽ cho bạn biết nếu thứ gì đó được giữ có thể nâng cấp được


1
apt-getsẽ vui vẻ gỡ cài đặt một gói giữ.
bahamat
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.