Почему делает программное обеспечение, и Обновления влияет на команду-обновления-версии в терминале?

У меня есть любопытное для меня вопрос, обращающийся к Менеджеру обновлений и терминальной команде 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

2
задан 21 April 2015 в 12:48

2 ответа

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), но это, кажется, не использовано на данный момент.

1
ответ дан 21 April 2015 в 22:48

Этот - лучшее понятное объяснение меня теперь, например, когда в программном обеспечении и Обновлениях-> Обновления-> Уведомляют меня относительно новой версии 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.

0
ответ дан 21 April 2015 в 22:48

Другие вопросы по тегам:

Похожие вопросы: