У меня есть любопытное для меня вопрос, обращающийся к Менеджеру обновлений и терминальной команде do-release-upgrade
как пользователь я заметил, что много людей задает вопросы, когда они работают:
do-release-upgrade -d
и это возвращается:
Checking for a new Ubuntu release
Get:1 Upgrade tool signature[198B]
Get:2 Upgrade tool[1,147kB]
Fetched 1,148 kB in 0s(0B/s)
authenticate 'utopic.tar.gz' against 'utopic.tar.gz.gpg'
extracting 'utopic.tar.gz'
но когда Вы работаете:
do-release-upgrade -c
это возвращается:
Checking for a new Ubuntu release
No new release found
И если я перехожу к программному обеспечению и Обновлениям->, Обновления-> Уведомляют меня относительно новой версии Ubuntu и устанавливают ее на For any new version
do-release-upgrade -d
возвратится:
Checking for a new Ubuntu release
Get:1 Upgrade tool signature[198B]
Get:2 Upgrade tool[1,147kB]
Fetched 1,148 kB in 0s(0B/s)
authenticate 'utopic.tar.gz' against 'utopic.tar.gz.gpg'
extracting 'utopic.tar.gz'
и так будет:
do-release-upgrade -c
возвратится:
Checking for a new Ubuntu release
New release '14.10' available.
Run 'do-release-upgrade' to upgrade to it.
И если я установил его на Never
обе команды do-release-upgrade -d
и do-release-upgrade -c
возвратится:
Checking for a new Ubuntu release
No new release found
Но в программном обеспечении и Обновлениях я установил все другие обновления Never
уведомьте меня, как я делаю dist-upgrade
через терминал только и это работает действительно, это обновляет все доступные обновления и патчи безопасности.
Почему затем, это не работает с do-release-upgrade
? Разве это не должно делать то, что я говорю этому делать несмотря на то, что установлено в программном обеспечении и Обновлениях? Или это просто разработано этот путь?
Править
Маленький выпуск к вопросу разъяснить его немного больше, я не хочу получать графические уведомления о новых доступных обновлениях или выпусках или безотносительно, таким образом, в программном обеспечении и Обновлениях я установил обновления и уведомления Never
потому что я хотел бы сделать это через терминал, и все работает кроме do-release-upgrade
do-release-upgrade
команда, Менеджер обновлений, Исходная программа программного обеспечения и Центр программного обеспечения вся доля несколько общих библиотек и конфигурационных файлов.
Конкретный аспект, на который Вы смотрите (следующая версия Ubuntu Вы хотели быть предложенными), установлен в файле /etc/update-manager/release-upgrades
.
Можно отредактировать его и установить значение Prompt
опция. Заключение в кавычки комментариев:
Default prompting behavior, valid options:
never - Never check for a new release.
normal - Check to see if a new release is available. If more than one new
release is found, the release upgrader will attempt to upgrade to
the release that immediately succeeds the currently-running
release.
lts - Check to see if a new LTS release is available. The upgrader
will attempt to upgrade to the first LTS release available after
the currently-running one. Note that this option should not be
used if the currently-running release is not itself an LTS
release, since in that case the upgrader won't be able to
determine if a newer release is available.
И GUI и командная строка получают эти настройки (так как в конечном счете, они все заканчивают тем, что использовали класс Python UpdateManager.Core.MetaRelease.MetaReleaseCore
, в котором:
# some constants
CONF = "/etc/update-manager/release-upgrades"
CONF_METARELEASE = "/etc/update-manager/meta-release"
И
if parser.has_option("DEFAULT", "Prompt"):
type = parser.get("DEFAULT", "Prompt").lower()
if (type == "never" or type == "no"):
# nothing to do for this object
# FIXME: what about no longer supported?
self.downloaded.set()
return
Так, это - то, как это было кодировано без любой опции переопределить конфигурационный файл.
Поэтому, если Вы хотите отключить уведомление GUI, но смочь использовать do-release-upgrade
, необходимо будет отредактировать конфигурационный файл. Это может быть сделано достаточно легко (замена lts
с normal
, если Вы предпочитаете):
sed -i.bak 's/^Prompt=.*$/Prompt=lts/' /etc/update-manager/release-upgrades
do-release-upgrade -c
sed -i.bak 's/^Prompt=.*$/Prompt=never/' /etc/update-manager/release-upgrades
Обратите внимание, что, кажется, существует каталог для расширяемой конфигурации (/etc/update-manager/release-upgrades.d
), но это, кажется, не использовано на данный момент.
Этот - лучшее понятное объяснение меня теперь, например, когда в программном обеспечении и Обновлениях-> Обновления-> Уведомляют меня относительно новой версии Ubuntu и устанавливают его на for long-term support versions
затем вывод do-release-upgrade -d
будет> = верный, как do-release-upgrade -d
обозначает:
Check if upgrading to the latest devel (*development) release is possible
Это было бы> = (больший) выпуск, который Вы в настоящее время выполняете, но не LTS выпускают скорее тот, который разрабатывается (нестабильный).
Но do-release-upgrade -c
будет> = ложь как есть для:
Check only if a new distribution release is available
and report the result via the exit code
И это было бы (стабильным) выпуском LTS. И это будет работать, только если существует больший выпуск LTS, доступный, чем Вы в настоящее время работаете.
Но если Вы устанавливаете в программном обеспечении и Обновлениях->, Обновления-> Уведомляют меня относительно новой версии Ubuntu for any versions
и это означало бы для стабильного и нестабильного (дьявол) выпуски. Затем обе команды do-release-upgrade -d
и do-release-upgrade -c
или -c -d
вместе возвратится положительный. В этом случае -c
может даже быть отброшен как -d
заставил бы его работать на обоих если таковые имеются.
И в случае, если набор уведомлений к Never
обе команды возвратятся отрицательный. Это можно было даже назвать блокирующейся функцией, как будто Вы не сможете обновить выпуск до любой новой версии с помощью также -c
или -d
в do-release-upgrade
команда. Я кроме этого, поскольку это было разработано этот путь, вероятно.
P.S.
Ответ @muru работает на меня еще лучше, чем мой. Спасибо :). Но я также собираюсь оставить этого в течение iterest.