Этот вопрос описывает, как получить список изменений для данного пакета. Тем не менее, это весь список изменений.
Мне бы хотелось, чтобы был способ увидеть, что изменится во всем, что я собираюсь обновить. Например, я представлял что-то вроде:
$ sudo apt-get upgrade --show-changelogs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
foo
-- adds the bar feature for better snazziness
-- removes the deprecated baz feature
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,864 kB of archives.
After this operation, 285 kB disk space will be freed.
Do you want to continue [Y/n]?
К сожалению, я не вижу ничего подобного на страницах руководства для apt-get. Существует ли это или что-то подобное?
ОБНОВЛЕНИЕ: Я написал короткое сообщение в блоге , в котором рассказывается о apt-listchanges и изменениях в Debian с небольшой глубиной, которая включает некоторые отзывы в этом вопросе.
Самое близкое к тому, что вы ищете, может быть пакет под названием apt-listchanges
, который предоставит вам сводку журнала изменений при обновлении пакетов. Вы можете настроить его так, чтобы примечания к журналу изменений отображались в терминале сразу после apt-get
загрузки обновления (см. Объяснение ниже и снимок экрана), но перед его установкой.
Вы можете установить программу с помощью
sudo apt-get install apt-listchanges
, а затем настройте его с помощью
sudo dpkg-reconfigure apt-listchanges
. Созданный установочный файл - /etc/apt/listchanges.conf
.
В моей настройке информация журнала изменений отображается непосредственно в виде текста в терминале (stdout), что как раз то, что вам нужно. Я считаю, что это лучше, чем загрузка информации пейджером. У меня просто выбраны журналы изменений в моем файле conf, поэтому новости о пакете не отображаются. Я также настроил его для отправки по электронной почте отрывка из журнала изменений.Если вы хотите использовать эту функцию, вам необходимо настроить локальную электронную почту, обратившись к моей статье здесь .
Это мой /etc/apt/listchanges.conf
:
[apt]
frontend=text
email_address=root
confirm=1
save_seen=/var/lib/apt/listchanges.db
which=changelogs
Снимок экрана процедуры обновления при установке apt-listchanges
. Я настроил его так, чтобы он запрашивал у меня подтверждение установки после прочтения выдержки из журнала изменений.
Для получения дополнительной информации см. man apt-listchanges
и онлайн-руководство Ubuntu .
Я использую aptitude
:
$ aptitude changelog package-name
См. Этот вопрос: apt changelog для пакетов, которые должны быть установлены
$ apt changelog firefox
У меня работает. Для внешних PPA он не работает, даже если этот находится по адресу http://changelogs.ubuntu.com/changelogs/binary/p/plasma-framework/5.67.0-0ubuntu2/changelog
$ apt changelog plasma-framework
E: Ophalen van changelog:/plasma-framework.changelog is mislukt Logbestand met veranderingen niet beschikbaar voor plasma-framework=5.67.0-0ubuntu2~ubuntu19.10~ppa1
Или, что более полезно, через Synaptic:
This change is not coming from a source that supports changelogs.
Failed to fetch the changelog for plasma-framework
URI was: http://ppa.launchpad.net/pool/main/p/plasma-framework/plasma-framework_5.67.0-0ubuntu2~ubuntu19.10~ppa1_amd64.changelog
Что не работает:
E: ERROR: couldn't open /root/.synaptic/synaptic.conf for writing - ofstream (5: Input/output error)
E: An error occurred while saving configurations.
Вы можете сделать что-то вроде этого
fullList=$(apt list --upgradable 2> /dev/null)
shortList=$(echo "${fullList}" | cut -f1 -d"/" | sed s/Listing...//)
for pkg in $shortList ; do
echo "## ${pkg}"
apt-get changelog ${pkg}
done
Нажмите q
, чтобы прочитать журнал изменений для каждого пакета; если вы перенаправляете вывод пейджера в файл, он будет проходить через список до конца, хотя и медленно.