Gentoo Archives: gentoo-user-ru

From: Alex Efros <powerman@××××××××.name>
To: gentoo-user-ru@l.g.o
Subject: [gentoo-user-ru] странности с обновлением некоторых пакетов
Date: Fri, 17 Jan 2014 21:23:03
Message-Id: 20140117212251.GM30541@home.power
1 Hi!
2
3 Заметил странную вещь: `emerge -uDNav world` не выдаёт ничего, но
4 `emerge -av world` предлагает обновить три пакета (ну, плюс переустановить
5 ещё 500, но это понятно, а вот откуда обновления взялись - это любопытно).
6
7 С двумя из трёх я разобрался. Происходит следующее: в портаж есть пакет
8 одной версии A помеченный ~ARCH. Когда просят установить этот пакет, то
9 --autounmask-write добавляет запись в package.keywords:
10 =package-A ~ARCH
11 Дальше из портаж этот ebuild удаляют, а добавляют новый версии B, тоже ~ARCH.
12 В результате `emerge -uDNav world` не пытается обновлять этот пакет (т.к.
13 новая версия ~ARCH и не прописана в package.keywords), а `emerge -av world`
14 пытается (т.к. в world прописан этот пакет а единственная доступная версия
15 это B). Понятно, хотя и не очень интуитивно.
16
17 А вот с третьим случаем я ничего понять не могу. По неизвестной причине
18 портаж пытается обновить mercurial до последней ~ARCH версии якобы для
19 hg-git. Но в зависимостях пакета hg-git-0.5.0 указан mercurial-1.9, у меня
20 сейчас установлен ARCH 2.4.2, а обновлять он его пытается на ~ARCH 2.8.2.
21 Причём происходит это только при запуске world. Запуск с -t ничего не
22 показал - выглядит так, как будто mercurial обновляется сам по себе, а не
23 как чья-то зависимость. Вот:
24
25 # emerge -pvt world
26
27 [ebuild R ~] dev-vcs/hg-git-0.5.0 0 kB
28
29 [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
30
31 The following keyword changes are necessary to proceed:
32 (see "package.accept_keywords" in the portage(5) man page for more details)
33 # required by dev-vcs/hg-git-0.5.0
34 # required by @selected
35 # required by @world (argument)
36 =dev-vcs/mercurial-2.8.2 ~amd64
37
38 При этом:
39
40 # emerge -pvt hg-git mercurial
41
42 These are the packages that would be merged, in reverse order:
43
44 Calculating dependencies... done!
45 [ebuild R ~] dev-vcs/hg-git-0.5.0 0 kB
46 [ebuild R ] dev-vcs/mercurial-2.4.2 USE="gpg -bugzilla -emacs {-test} -tk -zsh-completion" 0 kB
47
48 Total: 2 packages (2 reinstalls), Size of downloads: 0 kB
49
50 Ничего особенного в конфигах тоже нет:
51
52 # egrep -r 'hg-git|mercurial' /etc/portage/ | grep -v ':#'
53 /etc/portage/package.keywords:=dev-vcs/hg-git-0.5.0 ~amd64
54
55 # egrep 'hg-git|mercurial' /var/lib/portage/world
56 dev-vcs/hg-git
57 dev-vcs/mercurial
58
59 --
60 WBR, Alex.