Vì lỗi # 693758 tôi muốn ngăn apt-get upgrade
và Trình quản lý cập nhật cập nhật gói "libgtk2.0-0".
Làm thế nào điều này có thể đạt được?
disable packages from the auto-update
Vì lỗi # 693758 tôi muốn ngăn apt-get upgrade
và Trình quản lý cập nhật cập nhật gói "libgtk2.0-0".
Làm thế nào điều này có thể đạt được?
disable packages from the auto-update
Câu trả lời:
Có bốn cách để giữ lại các gói: với dpkg, apt, aptitude hoặc dselect.
Đặt một gói đang chờ:
echo "<package-name> hold" | sudo dpkg --set-selections
Xóa phần giữ:
echo "<package-name> install" | sudo dpkg --set-selections
Hiển thị trạng thái của các gói của bạn:
dpkg --get-selections
Hiển thị trạng thái của một gói duy nhất:
dpkg --get-selections | grep "<package-name>"
Giữ một gói:
sudo apt-mark hold <package-name>
Xóa phần giữ:
sudo apt-mark unhold <package-name>
Hiển thị tất cả các gói đang chờ:
sudo apt-mark showhold
Với DSelect, nhập màn hình bầu [S], tìm gói bạn muốn giữ ở trạng thái hiện tại và nhấn =hoặc H. Các thay đổi sẽ có hiệu lực ngay lập tức sau khi thoát khỏi màn hình bầu [S].
Các cách tiếp cận sau đây bị hạn chế trong việc khóa / giữ một gói trong aptitude hoặc synap không ảnh hưởng đến apt-get / apt.
Giữ một gói:
sudo aptitude hold <package-name>
Xóa phần giữ:
sudo aptitude unhold <package-name>
Chuyển đến Trình quản lý gói Synaptic (Hệ thống> Quản trị> Trình quản lý gói Synaptic).
Nhấp vào nút tìm kiếm và nhập tên gói.
Khi bạn tìm thấy gói, chọn nó và vào menu Gói và chọn Phiên bản khóa .
Gói đó bây giờ sẽ không hiển thị trong trình quản lý cập nhật và sẽ không được cập nhật.
devscripts
, rất nhiều gói được kéo như gói khuyến nghị. Vì tôi không cần mailserver (postfix), tôi có thể vô hiệu hóa cài đặt của nó bằng cách chạy echo postfix hold | sudo dpkg --set-selections
trước khi chạy sudo apt-get install devscripts
. Hành động giữ này chỉ tồn tại cho cài đặt này, sau khi cài đặt, các lựa chọn được đặt lại.
apt-mark
không hỗ trợ hold
trong phiên bản 0.7.25 (Ubuntu Lucid)
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
.
Để đặt gói "foo" ở trạng thái chờ:
echo "foo hold" | dpkg --set-selections
Trong trường hợp của bạn, chúng tôi sẽ giữ rượu vang:
sudo -i
echo "wine hold" | dpkg --set-selections
Để xóa phần giữ:
sudo -i
echo "wine install" | dpkg --set-selections
apt-get install wine=1.2.3
. Bị giữ lại ngăn cản apt-get (dist-)upgrade
thay đổi nó.
/var/cache/apt/archives
) không phụ thuộc vào giữ & nâng cấp & công cụ, vì vậy tất cả các phiên bản bạn đã tải xuống sẽ ở đó cho đến khi bạn chạyapt-get [auto]clean
Tôi đã tìm kiếm điều tương tự và sau rất nhiều nghiên cứu tôi thấy rằng sử dụng cú pháp sau đây bạn có thể cấm một phiên bản cụ thể nhưng cho phép cập nhật tiếp theo:
Gói: compiz-plugins-main Pin: phiên bản 1: 0.9.7.0 ~ bzr19-0ubfox10.1 Pin-Ưu tiên: -1
Điều này đi vào tập tin / etc / apt / Preferences.
Cài đặt synaptic
bằng sudo apt-get install synaptic
.
Chạy bằng cách sử dụng gksudo synaptic
và trên hộp tìm kiếm xác định gói bạn muốn khóa, nghĩa là:gedit
Từ menu gói chọn Phiên bản khóa :
Và đó là tất cả, phiên bản hiện được cài đặt tại thời điểm khóa sẽ vẫn được cài đặt ngay cả trong khi nâng cấp.
Ngăn chặn một gói được cài đặt được gọi là "giữ gói" và rất đơn giản để thực hiện:
echo gói_name giữ | dpkg - bộ lựa chọn
... trong đó * pack_name * là tên của gói bạn muốn ngăn cài đặt.
Lưu ý: lệnh trên giả định quyền root. Nói cách khác, bạn có thể sẽ cần phải gõ sudo su
trước khi chạy nó.
s/sudo su/sudo -s/g
(hoặc sudo -i
). ( -i
sẽ cung cấp một vỏ đăng nhập, -s
sẽ không).
Do một số thời gian apt-get
được thay thế bằng apt
, vì vậy, ví dụ tôi muốn ngăn Firefox cập nhật lên phiên bản trên 56, vì rất nhiều tiện ích bổ sung, như "Nhóm Tab" không hoạt động nữa với Firefox 57 mới (xem "WebExtensions Cập nhật ").
Có thể giữ nhiều gói với một lệnh và sử dụng ký tự đại diện.
sudo apt-mark hold firefox firefox-locale-*
Nếu bạn nên từ bỏ để mở ra chúng sau này, đó sẽ là lệnh:
sudo apt-mark unhold firefox firefox-locale-*
Tôi đồng bộ bạn có thể đóng băng phiên bản của một gói cụ thể Tôi không chắc chắn 100% về việc liệu điều này có sửa đổi apt-get hay không nhưng chắc chắn nó sẽ dừng trình quản lý cập nhật.
Để đóng băng một gói, chọn nó trong synaptic, sau đó mở menu gói và chọn phiên bản đóng băng.
Hi vọng điêu nay co ich
Mọi thứ bạn từng muốn biết về các gói "giữ" và "ghim" vào các phiên bản cụ thể: https : //help.ub Ubuntu.com/community/PinningHowto
Bạn có thể sử dụng trên aptitude "ghi đè cụ thể", như thế này:
aptitude reinstall ~i oracle-java8-jre:
Đây chỉ là một lần sử dụng (không được lưu trữ cho các lần cài đặt lại trong tương lai), giữ nguyên ghi đè cụ thể, để cài đặt lại tất cả các gói trong hệ thống của bạn chứ không phải oracle-java8-jre.
Nếu bạn sử dụng ghi đè cụ thể, gói trong giây lát sẽ ở trạng thái giữ năng lực sẽ không cố gắng cài đặt nó.
Một điều rất tốt nếu bạn nghĩ rằng hệ thống của bạn đã bị xâm phạm một số cách.
Nếu bạn đã cài đặt Synaptic, bạn có thể chọn gói và sử dụng menu Gói -> Phiên bản khóa để ngăn không cho cập nhật.
Bạn có thể cài đặt Synaptic với sudo apt-get install synaptic. Cá nhân tôi thấy nó hữu ích hơn Trung tâm phần mềm ... một lần nữa, tôi khá già đi học. :)
Đôi khi người ta có thể muốn giữ lại tất cả các gói hiện được cài đặt. Đây là cách.
Đầu tiên lưu trạng thái hiện tại, vì vậy bạn có thể hoàn tác:
dpkg --get-selections > current_selections.txt
Sau đó, để giữ lại tất cả các gói:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Cuối cùng, khi bạn muốn trở lại trạng thái trước đó:
dpkg --set-selections < current_selections.txt
Một trường hợp sử dụng cho điều này có thể là khi tạo ảnh chụp nhanh VM hoặc Amazon AMI để di chuyển từ QA sang môi trường sản xuất.
Thêm chi tiết vào nhận xét của @ soger so với Ubuntu 16.04.
Ubuntu 16.04 không có tệp / etc / apt / Preferences hiện có theo mặc định. Nếu bạn hiện không có tệp nào, chỉ cần tạo một tệp mới và điền vào đó một khổ thơ như @soger mô tả ở trên để loại trừ gói đã cho và các phụ thuộc của nó khỏi các bản cập nhật.
Sau đó, chạy apt update
và bạn là GTG. : 0)
Ví dụ: tôi có máy chủ Ubuntu 16.04.5 LTS với thẻ video Intel nhúng và thẻ NVidia. Thẻ NVidia là thẻ duy nhất được sử dụng. Máy chủ cũng sử dụng trình điều khiển CUDA. Tôi đã có một vấn đề mà apt
cứ khăng khăng
va-driver-all
(Trình điều khiển Intel) yêu cầu cập nhật, nhưng nó không thể xác định phiên bản nào sẽ cài đặt. Điều này đã khiến tôi phát điên và dù sao tôi cũng không cần trình điều khiển Intel. Tôi đã nhập văn bản này vào tập tin ưu tiên và xóa apt, vấn đề đã được giải quyết.
Package: va-driver-all
Pin: release *
Pin-Priority: -1