странности с обновлением некоторых пакетов

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

странности с обновлением некоторых пакетов

Alex Efros-4
Hi!

Заметил странную вещь: `emerge -uDNav world` не выдаёт ничего, но
`emerge -av world` предлагает обновить три пакета (ну, плюс переустановить
ещё 500, но это понятно, а вот откуда обновления взялись - это любопытно).

С двумя из трёх я разобрался. Происходит следующее: в портаж есть пакет
одной версии A помеченный ~ARCH. Когда просят установить этот пакет, то
--autounmask-write добавляет запись в package.keywords:
    =package-A ~ARCH
Дальше из портаж этот ebuild удаляют, а добавляют новый версии B, тоже ~ARCH.
В результате `emerge -uDNav world` не пытается обновлять этот пакет (т.к.
новая версия ~ARCH и не прописана в package.keywords), а `emerge -av world`
пытается (т.к. в world прописан этот пакет а единственная доступная версия
это B). Понятно, хотя и не очень интуитивно.

А вот с третьим случаем я ничего понять не могу. По неизвестной причине
портаж пытается обновить mercurial до последней ~ARCH версии якобы для
hg-git. Но в зависимостях пакета hg-git-0.5.0 указан mercurial-1.9, у меня
сейчас установлен ARCH 2.4.2, а обновлять он его пытается на ~ARCH 2.8.2.
Причём происходит это только при запуске world. Запуск с -t ничего не
показал - выглядит так, как будто mercurial обновляется сам по себе, а не
как чья-то зависимость. Вот:

    # emerge -pvt world
    …
    [ebuild   R   ~] dev-vcs/hg-git-0.5.0  0 kB
    …
    [ebuild     U ~] dev-vcs/mercurial-2.8.2 [2.4.2] USE="gpg -bugzilla -emacs {-test} -tk -zsh-completion" PYTHON_TARGETS="python2_7%* -python2_6%" 3,750 kB
    …
    The following keyword changes are necessary to proceed:
    (see "package.accept_keywords" in the portage(5) man page for more details)
    # required by dev-vcs/hg-git-0.5.0
    # required by @selected
    # required by @world (argument)
    =dev-vcs/mercurial-2.8.2 ~amd64

При этом:

    # emerge -pvt hg-git mercurial

    These are the packages that would be merged, in reverse order:

    Calculating dependencies... done!
    [ebuild   R   ~] dev-vcs/hg-git-0.5.0  0 kB
    [ebuild   R    ]  dev-vcs/mercurial-2.4.2  USE="gpg -bugzilla -emacs {-test} -tk -zsh-completion" 0 kB

    Total: 2 packages (2 reinstalls), Size of downloads: 0 kB

Ничего особенного в конфигах тоже нет:

    # egrep -r 'hg-git|mercurial' /etc/portage/ | grep -v ':#'
    /etc/portage/package.keywords:=dev-vcs/hg-git-0.5.0 ~amd64

    # egrep 'hg-git|mercurial' /var/lib/portage/world
    dev-vcs/hg-git
    dev-vcs/mercurial

--
                        WBR, Alex.