Начиная с portage-2.2.17 cl-update перестаёт подхватывать добавляемые layman оверлеи, со стабильным portage всё работает. Видимо это связано с переходом portage на плугины.
Исправлено в новых утилитах.
Привет. Никак не пойму, синхронизирует ли cl-update steam-overlay? layman -l говорит что он есть,
# layman -l
* calculate [Git ] (git://git.calculate.ru/calculate/overlay.git )
* distros [Git ] (git://git.calculate.ru/calculate/distros.git )
* steam-overlay [Git ] (git://github.com/anyc/steam-overlay.git
emerge --sync его синхронизирует, но в выхлопе cl-update вижу только distros, calculate и portage.
# cl-update -s
Синхронизация репозиториев
* Синхронизация Distros репозитория ... [ ok ]
* Синхронизация Calculate репозитория ... [ ok ]
* Синхронизация Portage репозитория ... [ ok ]
* Синхронизация завершена
Конфигурация системы
* Исправление настроек ... [ ok ]
* Обновление конфигурационных файлов ... [ ok ]
* Обновление системы завершено!
В документации cl-update http://www.calculate-linux.org/main/ru/cl-update написано:
-o [ON/OFF], --update-other [ON/OFF]
Выполняет обновление сторонних оверлеев (не являющихся репозиториями дистрибутива). По умолчанию выключено. Для того, чтобы изменить действие по умолчанию, надо изменить значение переменной cl_update_other_set секции update; для этого можно выполнить следующую команду:
cl-core-variables --set update.cl_update_other_set=on
а cl-update -h говорит, что
-o [ON/OFF], --update-other [ON/OFF]
обновлять остальные оверлеи (*включено по умолчанию*)
Так выключено или включено по умолчанию?
Ладно, сделал
cl-core-variables --set update.cl_update_other_set=on
По прежнему вижу в выхлопе cl-update только distros, calculate и portage.
Пробовал:
cl-update -o
cl-update -o ON
cl-update --update-other
cl-update --update-other ON
без разницы, steam-overlay нет. Заглянул в /etc/portage/repos.conf/layman.conf, увидел в секции [steam-overlay]
auto-sync = No
При этом для [distros] и [calculate] он тоже No. Что не мешает им обновляться однако. Исправил на Yes. В выхлопе cl-update ничего не изменилось. Обратил внимание, что cl-update говорит Синхронизация репозиториев, а не оверлеев. Судя по документации и подсказке утилиты, репозиторий и оверлей разные сущности, за работу с которыми отвечают разные ключи. Мозг начал взрываться. Всякий репозиторий - оверлей, но не всякий оверлей является репозиторием, я правильно понял? Возможно утилита просто не показывает мне синхронизацию оверлеев, или она действительно этого не делает?
Справочная информация. У меня ~amd64.
# emerge -pv eix layman portage calculate-utils
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-apps/portage-2.2.18::gentoo USE="(ipc) -build -doc -epydoc (-selinux) -xattr" LINGUAS="ru" PYTHON_TARGETS="python2_7 -pypy -python3_3 -python3_4" 0 KiB
[ebuild R ] app-portage/eix-0.30.7::gentoo USE="dep nls optimization strong-optimization -debug -doc -security -sqlite -strong-security -swap-remote -tools" LINGUAS="ru -de" 0 KiB
[ebuild R ] app-portage/layman-2.3.0::gentoo USE="git sync-plugin-portage -bazaar -cvs -darcs -g-sorcery -gpg -mercurial -squashfs -subversion {-test}" PYTHON_TARGETS="python2_7 -pypy -python3_3 -python3_4" 0 KiB
[ebuild R ] sys-apps/calculate-utils-3.3.1.3:3::calculate USE="client console desktop qt4 server -minimal -pxe" PYTHON_TARGETS="python2_7" 0 KiB
Конфиги portage (комментарии удалены):
# ls -l /etc/portage/make.conf/
итого 28
-rw-r--r-- 1 root root 649 мар 19 15:50 0-base
-rw-r--r-- 1 root root 48 авг 25 2014 ccache
-rw-r--r-- 1 root root 69 янв 30 19:25 cpu_flags
-rw-r--r-- 1 root root 2644 мар 21 05:48 custom
-rw-r--r-- 1 root root 94 мар 23 15:35 features
-rw-r--r-- 1 root root 54 мар 23 17:37 local-overlay
-rw-r--r-- 1 root root 266 мар 22 22:00 use
# cat /etc/portage/make.conf/0-base
source /var/lib/layman/make.conf
# cat /etc/portage/make.conf/local-overlay
PORTDIR_OVERLAY="$PORTDIR_OVERLAY /usr/local/portage"
Конфиги eix:
# ls -l /etc/eixrc/
итого 8
-rw-r--r-- 1 root root 1233 мар 23 17:41 00-eixrc
-rw-r--r-- 1 root root 408 мар 23 17:42 50-calculate
Первый пустой, второй дефолтный с NOSTATUSLINE=true
# cat /etc/eix-sync.conf
!have_changed=:
!emergecmd='/usr/sbin/cl-core --method update --sync-only --skip-eix-update'
Конфиги layman:
/etc/layman/layman.conf http://pastebin.calculate-linux.ru/ru/show/10674
# cat /var/lib/layman/make.conf
PORTDIR_OVERLAY="
/var/lib/layman/calculate
/var/lib/layman/distros
$PORTDIR_OVERLAY"
По идее этот конфиг устарел и больше не нужен в новом layman, но поскольку утилиты автоматически воткнули мне в /etc/portage/make.conf/0-base строку
source /var/lib/layman/make.conf
я его не трогаю.
# cat /etc/portage/repos.conf/layman.conf
[calculate]
priority = 50
location = /var/lib/layman/calculate
layman-type = git
sync-type = laymansync
sync-uri = git://git.calculate.ru/calculate/overlay.git
auto-sync = Yes
[distros]
priority = 50
location = /var/lib/layman/distros
layman-type = git
sync-type = laymansync
sync-uri = git://git.calculate.ru/calculate/distros.git
auto-sync = Yes
[steam-overlay]
priority = 50
location = /var/lib/layman/steam-overlay
layman-type = git
sync-type = laymansync
sync-uri = git://github.com/anyc/steam-overlay.git
auto-sync = Yes
Если честно, я совсем запутался как весь этот бардак теперь работает. Может ли кто нибудь развёрнуто объяснить логику работы cl-update со сторонними оверлеями?