Làm thế nào bạn có thể mở ra (loại bỏ giữ) một gói?


49

Tôi đã sử dụng synaptic để khóa phiên bản pidgin-data- làm cách nào để thay đổi trạng thái từ holdtrở lại bình thường, để nó được nâng cấp đúng cách?

Các PinningHowto nói rằng làm một apt-get install packagenamenên loại bỏ hold, nhưng chạy dpkg -l | grep ^hvẫn hiển thị nó như là tổ chức:

hi  pidgin-data                                                 1:2.10.6-0ubuntu1+pidgin1.12.04                            multi-protocol instant messaging client - data files

Làm thế nào tôi có thể hoàn tác đúng holdtrạng thái?

Câu trả lời:


59

Bạn có thể sử dụng sudo apt-mark unhold package_name. Gói không được mở và nó trả về một xác nhận : Canceled hold on package_name..


1
sudoVấn đề của bạn có lẽ là do bạn đã viết sudo echo "package_name install"|dpkg --set-selections. Điều này sudoes echonhưng không phải đường ống sau, do đó lỗi truy cập. Hãy thử điều này thay thế : sudo -E -- sh -c 'echo "package_name install"|dpkg --set-selections'. Điều này sudoes một shell phụ có dòng lệnh là echo "package_name install"|dpkg --set-selections.
Urhixidur

1
Câu trả lời của tôi có phần liên quan đến phiên bản chưa được chỉnh sửa của câu trả lời ở đây bên dưới, trước đây bao gồm chính xác lệnh tôi đã tham chiếu. Tuy nhiên, câu hỏi cụ thể sử dụng apt-getnhư một ví dụ và đó là lý do tại sao tôi đã trả lời sử dụng apt-markđược bao gồm trong các apt gói. Tuy nhiên, rất hữu ích để biết chính xác lý do tại sao các lệnh dpkg không hoạt động.
DrA7

@ DrA7 gói_name đã không được giữ. Tôi nên làm gì bây giờ?
Dr.jacky

13

Cách chính xác để loại bỏ việc giữ phải là:

echo "package_name install"|sudo dpkg --set-selections

2

Mở một gói duy nhất có tên $ pack_name:

echo $package_name install | dpkg --set-selections

Chưa mở tất cả các gói hiện đang được tổ chức:

dpkg --get-selections | grep hold | awk '{ print $1, "install" }' | dpkg --set-selections

1

Chạy echo pidgin-data install | dpkg --set-selections(thay thế pidgin-databằng tên gói được giữ) - điều này sẽ thay đổi trạng thái gói thành installthay vì hold.


1

Bạn có thể mở ra tất cả các gói APT với:

apt-mark showhold | awk '{ print $1, "install" }' | dpkg --set-selections
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.