Я зазвичай використовую apt-get update && apt-get upgrade
для запуску моїх оновлень і модернізацій замість графічного інтерфейсу, тому що він, здається, працює швидше.
Однак останнім часом я помітив, що часто отримую повідомлення про те, що одне з моїх оновлень було затримано. Тоді я зазвичай запускаю dist-upgrade
, щоб запустити його, і він працює нормально. Наскільки я можу судити після прочитання цього питання і відповідей на нього, dist-upgrade
виконує всі ті ж дії, а потім і деякі інші.
Отже, моє питання: Навіщо взагалі використовувати apt-get upgrade
? Чому не використовувати apt-get dist-upgrade
весь час? Чому взагалі існує apt-get upgrade
?
Зазвичай я модернізую свої машини:
sudo apt-get update && time sudo apt-get dist-upgrade
Нижче наведено уривок з man apt-get
. Під час використання оновлення дотримується правило: за жодних обставин не вилучаються встановлені пакунки, а також не вилучаються і не встановлюються пакунки, які ще не встановлено. Якщо це важливо для вас, скористайтеся apt-get upgrade
. Якщо ви хочете, щоб усе просто працювало, вам слід скористатися apt-get dist-upgrade
для усунення залежностей.
Якщо ви системний адміністратор, вам потрібна передбачуваність, і ви хочете використовувати upgrade замість dist-upgrade. Можливо, ви використовуєте розширені функції, такі як apt pinning або витягування з колекції PPA (можливо, у вас є власний PPA), з різними автоматизованими засобами для перевірки вашої системи і доступних оновлень замість того, щоб завжди з нетерпінням оновлювати всі доступні пакети. Ви будете дуже розчаровані, коли apt буде поводитися не за сценарієм, особливо якщо це призведе до простою виробничої служби.
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.
Опція upgrade
встановлює тільки нові версії пакетів, які вже встановлені в системі (і так, оновлення ядра відносяться до них).
Однак, іноді оновлення змінюють залежності: наприклад, нова версія пакунка більше не буде залежати від встановленої вами бібліотеки, або вимагатиме встановлення додаткових бібліотек. Опція upgrade
ніколи не видалить встановлені пакунки, які вам більше не потрібні.
Однак, за допомогою параметра dist-upgrade
можна &quo ;розумно&quo ; впоратися зі змінами у системі залежностей. Це включає в себе видалення пакунків, які більше не потрібні, або вирішення конфліктів між пакунками, які виникли через зміни в залежностях.
Користувачі могли почати покладатися на пакунки, які були встановлені неявно, через залежність від них інших (явно встановлених) пакунків. Таким чином, система пакунків не може знати про бажання користувача/адміністратора зберегти певну функціональність, яку інакше можна було б видалити за допомогою dist-upgrade.