А в каких случаях apt-get upgrade может быть необходим? Не проще ли просто избавиться от него во избежание?..
Есть разница между apt-deb и apt-rpm, а также между deb пакетами от Canonical и rpm пакетами ALT Linux:
Где находимся
$ cat /etc/*-release|sort -u
ALT Linux Sisyphus (unstable)
Информация по пакету elinks:
Ubuntu$ dpkg-deb -I ./elinks_0.12~pre6-12_i386.deb
новый пакет debian, версия 2.0.
размер 534562 байт(а): управляющий архив длиной 2293 байт(а).
975 байт(а), 17 строк * config
1435 байт(а), 26 строк control
455 байт(а), 7 строк md5sums
776 байт(а), 31 строк * postinst #!/bin/sh
517 байт(а), 14 строк * postrm #!/bin/sh
185 байт(а), 5 строк * preinst #!/bin/sh
320 байт(а), 13 строк * prerm #!/bin/sh
Package: elinks
Version: 0.12~pre6-12
Architecture: i386
Maintainer: Ubuntu Developers <ubuntu-devel-discuss(at)lists.ubuntu.com>
Original-Maintainer: Moritz Muehlenhoff <jmm(at)debian.org>
Installed-Size: 1487
Pre-Depends: dpkg (>= 1.17.14)
Depends: libbz2-1.0, libc6 (>= 2.15), libexpat1 (>= 2.0.1), libfsplib0 (>= 0.9), libgnutls30 (>= 3.5.3), libgpm2 (>= 1.20.4), libgssapi-krb5-2 (>= 1.14+dfsg), libidn11 (>= 1.13), liblua5.1-0, libperl5.24 (>= 5.24.0), libtre5, zlib1g (>= 1:1.1.4), elinks-data (= 0.12~pre6-12), debconf (>= 0.5) | debconf-2.0
Suggests: elinks-doc
Provides: www-browser
Section: web
Priority: optional
Homepage: http://elinks.cz/
Description: advanced text-mode WWW browser
ELinks is a feature-rich program for browsing the web in text mode. It is
like enhanced Lynx and Links. The most noteworthy features of ELinks are:
.
* Lots of protocols (local files, finger, HTTP(S), FTP, IPv4/6 etc.)
* Internationalized domain names
* Persistent cookies, HTTP authentication and proxy authentication
* Tabbed browsing, good looking menus and dialogs, and key-binding manager
* History browsing and typeahead searches
* Forms history and completion, and history in commonly used input dialogs
* CSS support and support for browser scripting (Perl, Lua, Guile etc.)
* Tables and frames rendering, and configurable color support
* Compressed and background (non-blocking) downloads, and download resuming
ALT Linux$ rpm -qi elinks
Name : elinks
Version : 0.12
Release : alt0.12.1
Architecture: i586
Install Date: Чт 02 мар 2017 06:12:05
Group : Networking/WWW
Size : 2801173
License : GPLv2
Signature : DSA/SHA1, Вт 07 фев 2017 15:12:07, Key ID 95c584d5ae4ae412
Source RPM : elinks-0.12-alt0.12.1.src.rpm
Build Date : Вт 07 фев 2017 15:11:49
Build Host : viy-sisyphus.hasher.altlinux.org
Relocations : (not relocatable)
Packager : Igor Vlasenko (ALT Linux Sisyphus) <viy(at)altlinux.org>
Vendor : ALT Linux Team
URL : http://elinks.cz
Summary : Lynx-like text WWW browser with many features
Description :
ELinks is advanced text-mode web browser with wide scale of additional
features and extensibility by possibility to plug in own scripts in Lua
language. This project aims to provide feature-rich version of Links,
with more open patches/features inclusion policy.
А разница-то в чём?
А в том, что понятие релиза в пакетах от Canonical отсутствует,
$ dpkg-deb --help|grep '\--field'
-f|--field <deb> [<поле>…] вывести поле(я) в стандартный поток
$ dpkg-deb -f ./elinks_0.12~pre6-12_i386.deb Release
[ктото@гдето ~]$
в отличие от пакетов ALT Linux
$ rpm -q --qf '%{RELEASE}\n' elinks
alt0.12.1
$ rpm -qi elinks|grep -i ^release
Release : alt0.12.1
и обработка Depends в Ubuntu идёт по
имя (>=версия), в отличие от в ALT Linux
имя (=версия-релиз)При необходимости см.:
http://www.tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/Т.е. при upgrade в Ubuntu достаточно будет смениться с elinks_0.12~pre6-12_i386.deb на elinks_0.12~pre7-12_i386.deb, как пакет будет считаться новым, поскольку 0.12~pre7-12 и есть версия пакета.
В ALT Linux для пакета elinks-0.12-alt0.12.1.i586 повышение релиза с alt0.12.1 до alt0.12.2, при upgrade не приведёт к установке нового пакета, поскольку версия (0.12) осталась неизменной, а upgrade обрабатывает только повышение версии. Что в ALT Linux и приведёт к разлому системы.
Структура имени deb-файла Ubuntu
имяпакета_версия_архитектура.deb
Также см.
Ответ #8 об обработке зависимостей (Depends) в ALT Linux:
https://forum.altlinux.org/index.php?topic=40159.msg317641#msg317641И при этом в последние строки альтового мануала редко кто заглядывает
$ man apt-get | tail -n 8
BUGS
See the APT bug page <URL:http://bugs.debian.org/src:apt>. If you wish to report a bug in APT, please see
/usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.
AUTHOR
APT was written by the APT team <apt@packages.debian.org>.
12 March 2001 APT-GET(8)
apt-rpm это порт apt-deb от Connectiva и функционал upgrade портирован и в apt-rpm
http://apt-rpm.orghttp://apt-rpm.org/scripting.shtmlно системный администратор, коим является и пользователь домашнего компьютера, должен понимать разницу между upgrade и dist-upgrade.
И проблема в том, что пользователи (читай начинающие системные администраторы) одной Unix-подобной операционной системы, переходя на другую Unix-подобную операционную систему, используют прежние навыки не вдаваясь в подробности различий между этими системами, рассуждая, что та и другая, это всё равно один и тот же Linux.
Говоря более простым языком:
Команда
# apt-get upgrade
в Ubuntu приведёт к корректному обновлению системы, а в ALT Linux к стопроцентному разлому системы, из-за различия полей служащих идентификатором(ами) нового пакета.
А в каких случаях apt-get upgrade может быть необходим?
Я бы сказал применим.
Например когда происходит переключение на какой-то alt-базированный репозиторий, например из одного пакета (в разных версиях), который изменяется версионно, с одним и тем же релизом, но зависимости в пакете не меняются.
В этом случае, не вдаваясь в подробности, достаточно будет и
apt-get upgrade. Но здесь нужно понимание различий работы команд, иначе разлом системы неизбежен.
И соблюдать правило:
Однажды прочитав man chkconfig в ALT Linux, прочесть его и в Debian/Devuan. И наоборот.
В выбросах из под сизиф-системы используется команда dpkg:Будьте предельно осторожны и используйте её только тогда, когда вы точно знаете, зачем вам это нужно, как это работает и что произойдёт в rpm системе. Иначе применение этой команды в rpm системе может привести к необратимым последствиям.Не проще ли просто избавиться от него во избежание?..
UNIX не предназначен для ограждения своих пользователей от глупостей, поскольку это оградило бы их и от умных вещей.
Doug Gwyn (Даг Гвин)