Câu hỏi Tại sao sử dụng apt-get upgrade thay vì apt-get dist-upgrade?


Tôi thường sử dụng apt-get update && apt-get upgrade để chạy các bản cập nhật và nâng cấp của tôi thay vì GUI vì nó có vẻ chạy nhanh hơn.

Tuy nhiên, tôi đã nhận thấy gần đây rằng tôi thường nhận được một thông báo rằng một trong những nâng cấp của tôi đã được giữ lại. Sau đó tôi thường chạy dist-upgrade để chạy nó và nó hoạt động tốt. Theo như tôi có thể nói sau khi đọc câu hỏi này và câu trả lời của nó, dist-upgrade làm tất cả những điều tương tự và sau đó một số.

Vì vậy, câu hỏi của tôi là: Tại sao sử dụng apt-get upgrade ở tất cả? Tại sao không sử dụng apt-get dist-upgrade mọi lúc? Tại sao apt-get upgrade ngay cả khi tôn tại?


271
2017-09-30 03:21


gốc


Trong các phiên bản Ubuntu mới hơn, sudo apt full-upgrade làm những việc tương tự. - Aaron Franke


Các câu trả lời:


Tôi thường nâng cấp máy của mình bằng:

sudo apt-get update && time sudo apt-get dist-upgrade

Dưới đây là một đoạn trích từ man apt-get. Sử dụng nâng cấp giữ nguyên quy tắc: trong mọi trường hợp hiện tại các gói đã được gỡ cài đặt hoặc các gói chưa được cài đặt được truy xuất và cài đặt. Nếu điều đó quan trọng với bạn, hãy sử dụng apt-get upgrade. Nếu bạn muốn mọi thứ "chỉ hoạt động", bạn có thể muốn apt-get dist-upgrade để đảm bảo phụ thuộc được giải quyết.

Để mở rộng lý do bạn muốn nâng cấp thay vì nâng cấp, nếu bạn là quản trị viên hệ thống, bạn cần khả năng dự đoán. Bạn có thể đang sử dụng các tính năng nâng cao như apt ghim hoặc kéo từ một bộ sưu tập PPA (có lẽ bạn có một PPA nội bộ), với các công cụ tự động khác nhau để kiểm tra hệ thống của bạn và nâng cấp có sẵn thay vì luôn luôn háo hức nâng cấp tất cả các gói có sẵn. Bạn sẽ nhận được rất thất vọng khi apt thực hiện hành vi unscripted, đặc biệt là nếu điều này dẫn đến thời gian chết của một dịch vụ sản xuất.

upgrade
    upgrade is used to install the newest versions of all packages
    currently installed on the system from the sources enumerated in
    /etc/apt/sources.list. Packages currently installed with new
    versions available are retrieved and upgraded; under no
    circumstances are currently installed packages removed, or packages
    not already installed retrieved and installed. New versions of
    currently installed packages that cannot be upgraded without
    changing the install status of another package will be left at
    their current version. An update must be performed first so that
    apt-get knows that new versions of packages are available.

dist-upgrade
    dist-upgrade in addition to performing the function of upgrade,
    also intelligently handles changing dependencies with new versions
    of packages; apt-get has a "smart" conflict resolution system, and
    it will attempt to upgrade the most important packages at the
    expense of less important ones if necessary. So, dist-upgrade
    command may remove some packages. The /etc/apt/sources.list file
    contains a list of locations from which to retrieve desired package
    files. See also apt_preferences(5) for a mechanism for overriding
    the general settings for individual packages.

365
2017-12-06 17:02



Cảm ơn bạn vì không chỉ tổng hợp sự khác biệt giữa hai, mà còn giải thích các tình huống mà người ta có thể tốt hơn những người khác. Đây chính xác là những gì tôi đang tìm kiếm. - jimchristie
dist-upgrade có nhiều khả năng phá vỡ nội dung xấu hơn upgrade. upgrade đảm bảo rằng hệ thống của bạn vẫn hoàn tất. - Braiam
việc nâng cấp có nhiều khả năng khắc phục các vấn đề với các phiên bản gói xung đột, nếu bạn cảm thấy thoải mái khi sử dụng phương pháp tiếp cận con lăn đường (tức là bạn không có phần mềm sản xuất quan trọng chạy trên hộp) - Henno
Một câu hỏi nhỏ về 'apt-get upgrade' đề cập đến thực tế là "không có gói nào được cài đặt đã bị gỡ bỏ hoặc gói mới được thêm vào": các gói hiện có cũng được nâng cấp tương ứng. Ví dụ oldA phụ thuộc vào oldB. Liệu oldA và oldB đều được nâng cấp? Làm thế nào về nếu newA phụ thuộc vào oldB và không newB, những gì sẽ xảy ra với hai trong quá trình nâng cấp? cả hai không nâng cấp hoặc cả hai nâng cấp, mà có thể rời newA không hoạt động vì oldB bị mất? - Kenny
Lý do để sử dụng là gì time đây? - ItalyPaleAle


Tôi biết câu hỏi này đã được trả lời và là một năm tuổi, nhưng tôi cảm thấy điều này cần phải được nói. Ubuntu 14.04 trở lên (và Debian Jessie và sau đó, cho những người tìm kiếm điều này từ Google) sử dụng APT 1.0, cho phép lệnh apt thay vì apt-get và apt-cache cho một số hoạt động.

  • apt-get upgrade sẽ không thay đổi những gì được cài đặt (chỉ các phiên bản),
  • apt-get dist-upgrade sẽ cài đặt hoặc gỡ bỏ các gói khi cần thiết để hoàn thành việc nâng cấp,
  • apt upgrade sẽ tự động cài đặt nhưng không xóa gói.
  • apt full-upgrade thực hiện chức năng giống như apt-get dist-upgrade.

111
2017-07-22 05:22



@muru Cảm ơn bạn đã chỉnh sửa và ghi chú về nâng cấp đầy đủ. Tôi chủ yếu sử dụng Debian 7 (là pre-APT 1.0), và tôi chỉ chơi với Debian Jessie và Ubuntu 14.04. - Stephen Angelico
không có gì. Là người đã sử dụng jessie và 14.04 thường xuyên, lần đầu tiên tôi học về tiện ích mới này từ câu trả lời của bạn! - muru
Bạn có nguồn cho mô tả của mình không apt upgrade? Mọi thứ tôi có thể nghĩ ra rằng apt upgrade giống như apt-get upgrade. Ví dụ, apt help upgrade trên đầu ra hệ thống của tôi: "apt upgrade" is equivalent to "sudo apt-get upgrade" - Jon Bentley
Trang man tương ứng cho apt và apt-get xác định những gì tôi đã nói ban đầu. - Stephen Angelico
apt safe-upgrade không phải là một hoạt động hợp lệ trên hệ thống của tôi. Nếu bạn muốn nói aptitude safe-upgrade, không hẳn. apt-get upgrade sẽ không bao giờ cài đặt các gói, trong khi apt upgrade và aptitude safe-upgrade sẽ cài đặt các gói mới khi các phụ thuộc yêu cầu nó. Vì thế aptitude safe-upgrade tương đương với apt upgrade, không phải apt-get upgrade. - Stephen Angelico


Các upgrade tùy chọn chỉ cài đặt phiên bản mới của các gói đã được cài đặt trên hệ thống (và có, cập nhật hạt nhân thuộc về chúng).

Tuy nhiên, đôi khi các bản cập nhật thay đổi các phụ thuộc: ví dụ, một phiên bản mới của một gói sẽ không còn phụ thuộc vào một thư viện mà bạn đã cài đặt, hoặc sẽ yêu cầu cài đặt các thư viện bổ sung. Các upgrade tùy chọn sẽ không bao giờ xóa các gói đã cài đặt mà bạn không còn thực sự cần nữa.

Tuy nhiên, dist-upgrade tùy chọn có thể "thông minh" xử lý các thay đổi trong hệ thống phụ thuộc. Điều này bao gồm việc loại bỏ các gói không còn cần thiết hoặc giải quyết mâu thuẫn giữa các gói phát sinh do những thay đổi trong các phụ thuộc.


6
2017-09-30 06:17



Trong khi điều này là chính xác, tôi không nghĩ rằng nó trả lời câu hỏi. Nếu chúng ta có tùy chọn "thông minh" có thể xử lý các thay đổi phụ thuộc và xóa lộn xộn, tại sao không phải lúc nào cũng sử dụng nó? - ændrük
upgrade cũng sẽ không bao giờ thêm vào gói mới trở nên cần thiết như phụ thuộc. Từ man apt-get: "trong mọi trường hợp hiện không được cài đặt gói gỡ bỏ, hoặc gói chưa được cài đặt lấy ra và cài đặt" @ ændrük Chỉ vì một cái gì đó là "thông minh" không có nghĩa là nó sẽ luôn luôn làm những gì người dùng muốn (hoặc thậm chí một cái gì đó ở tất cả hợp lý). Bất cứ lúc nào cập nhật hệ thống loại bỏ một gói, rất tốt để xem qua những gì nó đang làm trước khi nhấn Y. - Eliah Kagan


Người dùng có thể đã đến để dựa vào các gói đã được cài đặt ngầm bởi vì các gói khác (được cài đặt rõ ràng) phụ thuộc vào chúng. Do đó, hệ thống đóng gói không thể biết được người dùng / quản trị viên muốn giữ lại một số chức năng nhất định có thể bị xóa thông qua việc nâng cấp.


2
2018-02-04 13:42





Không phải là vấn đề đối với người dùng Win-Home luôn "nâng cấp", nhưng nếu bạn đang chạy hệ thống phức tạp, bạn nên "không bao giờ (thực sự) thay đổi hệ thống đang chạy" ... Ngay cả khi có "nên" không có vấn đề gì , có "có thể" được probs - những gì sẽ cắt bạn đi! BẠN nên là người có quyền quyết định ;-)


-4
2017-08-12 12:17



Should not be a problem for Win-Home Users to always "dist-upgrade" ..tại sao vậy ? - heemayl
Vâng, giả sử bạn thiết lập máy chủ ubuntu, máy trạm cho môi trường sản xuất: khi bạn luôn tự động nâng cấp, bạn có thể không kiểm soát được, khi bạn gặp vấn đề - ngay cả khi bạn không có thời gian để giải quyết ngay thời điểm đó một nâng cấp tự động được thực hiện. Một số cấu hình có thể cần chạm "con người" vào cổng. Đó là những gì tôi đã trải qua nhiều lần. Khi bạn chỉ làm việc trên các nền tảng "Home" như Win-Home, theo mặc định người dùng không được kích hoạt để kiểm soát các bản cập nhật. Vì vậy, bạn có thể không làm phiền bạn. - Thorben Kaufmann