Trong Ubuntu / Debian, làm cách nào để tôi đánh dấu một gói là không thể tự động tháo rời?


9

Giả sử tôi có một gói (gói Python trong trường hợp này) mà tôi cài đặt bằng Synaptic. Vì phiên bản của gói này có phần lỗi thời, tôi xóa nó trong Synaptic và sau đó cài đặt nó bằng cách sử dụng easy_install. Một trong những phụ thuộc của nó cũng được cài đặt bằng Synaptic, nhưng tôi muốn giữ phiên bản cài đặt Synaptic hơn là easy_installingnó.

Vấn đề duy nhất là sự phụ thuộc bây giờ được đánh dấu tự động tháo rời. Có cách nào để đánh dấu nó là được cài đặt thủ công ngoài việc gỡ bỏ nó và cài đặt lại không? Nếu nó làm nên sự khác biệt thì tôi đang sử dụng Ubuntu Jaunty.

Câu trả lời:


3

Bạn có thể "giữ" một gói trong Ubuntu.

Giữ một gói về cơ bản có nghĩa là bạn đang nói với người quản lý gói để giữ phiên bản hiện tại bất kể điều gì. Điều này hữu ích nếu phiên bản gần đây hơn của chương trình hiện đang hoạt động bị hỏng sau khi cập nhật.

Bạn có thể làm điều đó qua Synaptic hoặc trên dòng lệnh thông qua apt / dpkg. Phiên bản dòng lệnh để giữ một gói là:

echo package_name hold | dpkg --set-selections

Tài liệu cộng đồng Ubuntu có một hướng dẫn đầy đủ hơn giải thích cách ghim hoặc giữ các gói .



2
Giữ thường được sử dụng để ngăn nâng cấp lên các phiên bản mới hơn; nó không nên được sử dụng để giữ một gói. Sử dụng giữ sẽ chặn bạn nhận được các bản cập nhật bảo mật và phân phối, và sẽ là một gánh nặng bổ sung trong quá trình nâng cấp. Đánh dấu gói là cài đặt thủ công phải là cách đúng (xem câu trả lời của tôi ...).
Thomas Guyot-Sionnest

6

Tôi biết bạn có thể làm điều đó trong năng khiếu. Bạn có thể thực hiện trong GUI của nó bằng cách chọn gói và nhấn 'm' hoặc chọn "Đánh dấu thủ công" từ menu "Gói" hoặc sử dụng dòng lệnh:

cài đặt năng khiếu <pack_name> & m

5

Bạn có thể sử dụng apt-mark manual <package>cho điều đó, từ Synaptic, Package=> [ ] Automatically Installed(bỏ chọn nó).

Ví dụ:

# Mark <some_package> as manually-installed:
apt-mark manual <some_package>

# Mark <other_package> as automatically-installed (ex if you know it's a
# dependency to something else and you want to make sure it'll be
# auto-removable if it's no longer used):
apt-mark auto <other_package>

Ngoài ra, nếu bạn sử dụng apt-get install <package>trên một gói đã được cài đặt, nó sẽ được đánh dấu ngầm là thủ công.


Điều này dường như làm chính xác như mong muốn. Nó thay đổi trạng thái của gói của tôi từ [installed,auto-removable]chỉ [installed].
mwfearnley
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.