LINUX.ORG.RU

Gentoo коллизия

 ,


0

1

Добрый день, возникла впервые коллизия в gentoo не понимаю как ее чинить. FEATURES=collision-protect указан

 * Messages for package sys-libs/glibc-2.33-r1:

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at https://bugs.gentoo.org/ unless you report exactly
 * which two packages install the same file(s). See
 * https://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how
 * to solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 *
 * package sys-libs/glibc-2.33-r1 NOT merged
 *
 * Detected file collision(s):
 *
 *      /usr/include/crypt.h
 *
 * Searching all installed packages for file collisions...

Такой же вывод у sys-libs/libxcrypt-4.4.25

!!! existing preserved libs:
>>> package: dev-libs/libffi-3.4.2
 *  - /usr/lib/libffi.so.7
 *  - /usr/lib/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *  - /usr/lib64/libffi.so.7
 *  - /usr/lib64/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib64/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *      used by /usr/lib/python3.10/lib-dynload/_ctypes.cpython-310-x86_64-linux-gnu.so (dev-lang/python-3.10.0_beta4)
 *      used by /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so (dev-lang/python-3.8.8)
 *      used by 2 other files
>>> package: sys-libs/glibc-2.33-r7
 *  - /lib/libcrypt-2.33.so
 *  - /lib/libcrypt.so.1
 *      used by /lib/security/pam_pwhistory.so (sys-libs/pam-1.5.1)
 *      used by /lib/security/pam_unix.so (sys-libs/pam-1.5.1)
 *  - /lib64/libcrypt-2.33.so
 *  - /lib64/libcrypt.so.1
 *      used by /lib64/security/pam_passwdqc.so (sys-auth/passwdqc-2.0.2-r1)
 *      used by /lib64/security/pam_pwhistory.so (sys-libs/pam-1.5.1)
 *      used by /lib64/security/pam_unix.so (sys-libs/pam-1.5.1)
 *      used by 12 other files
Use emerge @preserved-rebuild to rebuild packages using these libraries

Ответ на: комментарий от AbbaT

не помогло. Вот лог:

opasswd.c:(.text+0x29b): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:760: pwhistory_helper] Error 1
make[3]: *** Waiting for unfinished jobs....
libtool: link: x86_64-pc-linux-gnu-gcc -m32 -shared  -fPIC -DPIC  .libs/pam_pwhistory_la-pam_pwhistory.o .libs/pam_pwhistory_la-opasswd.o   -Wl,-rpath -Wl,/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86/libpam/.libs -Wl,--as-needed ../../libpam/.libs/libpam.so -ldl  -m32 -march=native -O2 -Wl,--version-script=/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a/modules/pam_pwhistory/../modules.map -Wl,-O1 -Wl,--no-undefined -Wl,-O1   -Wl,-soname -Wl,pam_pwhistory.so -o .libs/pam_pwhistory.so
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/pam_pwhistory_la-opasswd.o: in function `check_old_pass':
opasswd.c:(.text+0x24b): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:756: pam_pwhistory.la] Error 1
make[3]: Leaving directory '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86/modules/pam_pwhistory'
make[2]: *** [Makefile:495: all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86/modules'
make[1]: *** [Makefile:495: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86'
make: *** [Makefile:425: all] Error 2
 * ERROR: sys-libs/pam-1.5.1_p20210622-r1::gentoo failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86'
 * S: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a'

 * Messages for package sys-libs/pam-1.5.1_p20210622-r1:

 * ERROR: sys-libs/pam-1.5.1_p20210622-r1::gentoo failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86'
 * S: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a'
ReiB0T
() автор топика
Последнее исправление: ReiB0T (всего исправлений: 2)
Ответ на: комментарий от ReiB0T

Отключи её и выполни emerge @revdep-rebuild. Можешь выключить её вообще, это для девелоперов, насколько я понял.

AbbaT
()
Ответ на: комментарий от grem

Понял, https://www.gentoo.org/support/news-items/2021-07-23-libxcrypt-migration.html

emerge -v1 virtual/libcrypt sys-libs/libxcrypt

If you wish to manually migrate now, there are a series of steps described on the wiki (see below), but the outline is:

  • unforce the crypt USE flag of sys-libs/glibc and disable it
  • unmask the system and split-usr (if applicable) USE flag of sys-libs/libxcrypt and enable it
  • unmask ~virtual/libcrypt-2
ReiB0T
() автор топика
Последнее исправление: ReiB0T (всего исправлений: 1)
Ответ на: комментарий от grem

unforce the crypt USE flag of sys-libs/glibc and disable it Отключить флаг и отключить sys-libs/glibc (удалить?)

Я выставил:

sys-libs/glibc -crypt
sys-libs/libxcrypt system split-usr

Пересобрал glibc (без удаления), но не пересобирается libxcrypt

 * package sys-libs/libxcrypt-4.4.25 NOT merged
 *
 * Detected file collision(s):
 *
 *      /usr/include/crypt.h
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * None of the installed packages claim the file(s).
 *
 * Package 'sys-libs/libxcrypt-4.4.25' NOT merged due to file collisions.
 * If necessary, refer to your elog messages for the whole content of the
 * above message.

Есть еще это:

!!! existing preserved libs:
>>> package: dev-libs/libffi-3.4.2
 *  - /usr/lib/libffi.so.7
 *  - /usr/lib/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *  - /usr/lib64/libffi.so.7
 *  - /usr/lib64/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib64/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *      used by /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so (dev-lang/python-3.8.8)
 *      used by /usr/lib/python3.8/site-packages/_cffi_backend.cpython-38-x86_64-linux-gnu.so (dev-python/cffi-1.14.4)
>>> package: sys-libs/glibc-2.33-r7
 *  - /lib/libcrypt-2.33.so
 *  - /lib/libcrypt.so.1
 *      used by /lib/security/pam_pwhistory.so (sys-libs/pam-1.5.1)
 *      used by /lib/security/pam_unix.so (sys-libs/pam-1.5.1)
 *  - /lib64/libcrypt-2.33.so
 *  - /lib64/libcrypt.so.1
 *      used by /lib64/security/pam_passwdqc.so (sys-auth/passwdqc-2.0.2-r1)
 *      used by /lib64/security/pam_pwhistory.so (sys-libs/pam-1.5.1)
 *      used by /lib64/security/pam_unix.so (sys-libs/pam-1.5.1)
 *      used by 12 other files
Use emerge @preserved-rebuild to rebuild packages using these libraries

Но emerge @preserved-rebuild жалуется

make: *** [Makefile:425: all] Error 2
 * ERROR: sys-libs/pam-1.5.1_p20210622-r1::gentoo failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-libs/pam-1.5.1_p20210622-r1::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a-abi_x86_32.x86'
 * S: '/var/tmp/portage/sys-libs/pam-1.5.1_p20210622-r1/work/linux-pam-fe1307512fb8892b5ceb3d884c793af8dbd4c16a'

 * Messages for package sys-libs/pam-1.5.1_p20210622-r1:

 * ERROR: sys-libs/pam-1.5.1_p20210622-r1::gentoo failed (compile phase):
 *   emake failed
ReiB0T
() автор топика
Ответ на: комментарий от ReiB0T

Удалять ничего не надо, нужно было выставить флаги и запустить обновление всей системы.

что выдаёт?

equery b /usr/include/crypt.h ?

equery из пакета app-portage/gentoolkit

Правда есть подозрения, что он может и не поставиться.

Зря у тебя базовая система в ~amd64 вместо stable. В stable переход позже будет.

grem ★★★★★
()
Ответ на: комментарий от ReiB0T

У меня так

$ equery b /usr/include/crypt.h 
 * Searching for /usr/include/crypt.h ... 
sys-libs/glibc-2.33-r1 (/usr/include/crypt.h)

Но я и не переходил никуда пока.

Если у glibc действительно стоит USE=«-crypt» (т.е выключен),

$ equery f glibc | grep crypt.h

не показывает /usr/include/crypt.h и сам файл никому не принадлежит, то теперь можно попробовать

FEATURES="-collision-protect" emerge -1av libxcrypt

чтобы он перезаписал его.

Если установится, то после попробовать снова выполнить emerge @preserved-rebuild

grem ★★★★★
()

Кстати, а зачем ты вообще начал ставить sys-libs/libxcrypt ?

Просто сам то sys-libs/glibc-2.33-r1 у тебя из stable.

Для перехода на libxcrypt нужно не просто добавить флаги, но ещё и размаскировать их и размаскировать пакет virtual/libcrypt-2.

Но лучше бы ты пока никуда не переходил, если есть возможность.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 2)

Там надо или отложить переход на xcrypt, или очень-очень внимательно читать что собственно будет происходить.

В данном случае, если

grep /usr/include/crypt.h -R /var/db/pkg --include=CONTENTS

выдает ничего, наверное его можно просто грохнуть, и домерджить glibc вручную с ebuild … install qmerge clean.

После этого надо быть крайне внимательным, потому что если оно развалилось в центре обновления, при новом обновлении портаж может решить откатить всё взад

vasily_pupkin ★★★★★
()
Ответ на: комментарий от grem
equery f glibc | grep crypt.h

вообще ничего не показывает

FEATURES="-collision-protect" emerge -1av libxcrypt

Выдал

* Messages for package sys-libs/libxcrypt-4.4.25:

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at https://bugs.gentoo.org/ unless you report exactly
 * which two packages install the same file(s). See
 * https://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how
 * to solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 *
 * Detected file collision(s):
 *
 *      /usr/include/crypt.h
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * None of the installed packages claim the file(s).
 *
 * Package 'sys-libs/libxcrypt-4.4.25' merged despite file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

!!! existing preserved libs:
>>> package: dev-libs/libffi-3.4.2
 *  - /usr/lib/libffi.so.7
 *  - /usr/lib/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *  - /usr/lib64/libffi.so.7
 *  - /usr/lib64/libffi.so.7.1.0
 *      used by /usr/lib/llvm/11/lib64/libLLVM-11.so (sys-devel/llvm-11.1.0)
 *      used by /usr/lib/python3.8/lib-dynload/_ctypes.cpython-38-x86_64-linux-gnu.so (dev-lang/python-3.8.8)
 *      used by /usr/lib/python3.8/site-packages/_cffi_backend.cpython-38-x86_64-linux-gnu.so (dev-python/cffi-1.14.4)
Use emerge @preserved-rebuild to rebuild packages using these libraries

sys-libs/libxcrypt требует что-то, да и в новости по переходу сказано ставить его

ReiB0T
() автор топика
Ответ на: комментарий от vasily_pupkin
grep /usr/include/crypt.h -R /var/db/pkg --include=CONTENTS
/var/db/pkg/sys-libs/libxcrypt-4.4.25/CONTENTS:obj /usr/include/crypt.h ba1ec19e97b9e54fe03c261b789b974a 1630478514
ReiB0T
() автор топика
Ответ на: комментарий от ReiB0T

Так ты флаги для него размаскировал? Не добавил, а именно размаскировал?

virtual/libcrypt-2 размаскировал?

В новости ж всё написано, если хочется перейти на libxcrypt.

libxcrypt то поставила, но ещё не всё действия выполнены.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)
Ответ на: комментарий от ReiB0T

Да все гениальное просто. Спасибо за помощь. Надо читать новости

ReiB0T
() автор топика
Ответ на: комментарий от ReiB0T

Ээээ, надо было в package accept_keywords или как его там.

grem ★★★★★
()
Ответ на: комментарий от ReiB0T

unforce the crypt USE flag of sys-libs/glibc and disable it

это надо делать в /etc/portage/profiles/package.use.mask - туда надо добавить sys-libs/glibc -crypt

ты же просто отключил отдельный libxcrypt и при штатном апгрейде(когда новый glibc попадет в stable) у тебя вылезут проблемы

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от ReiB0T

Только я тоже малехо ошибся - не package.use.mask, а package.use.force. Просто маскировки я чаще снимаю, чем кручу принудительно-установленные флаги :-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от eternal_sorrow

А зачем он обычному пользователю? Этот флаг нужен для тестирования установки программ, чтоб при ошибке она не затёрла системные\пользовательские файлы.

AbbaT
()
Ответ на: комментарий от AbbaT

чтоб при ошибке она не затёрла системные\пользовательские файлы

для этого же.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Хм, а я, прочитав тред, понял, что давно не было новых новостей от portage, последнее от 2019-10-29, видать что-то давно в кальке накрутили.

AbbaT
()
Ответ на: комментарий от AbbaT

Он по умолчанию включен. Странно его выключать. В штатном режиме никто не должно пытаться перезаписывать чужие файлы. А если пытается, то это баг.

grem ★★★★★
()
Ответ на: комментарий от grem

Вообще можно посмотреть через

emerge --info | grep ^FEATURES=
включён ли он глобально, зависит от профиля. Скорее всего он включается только в профиле developer.

AbbaT
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.