LINUX.ORG.RU

Странные лаги от portage...

 , ,


0

1

При (пере)установке любого пакета происходит что-то такое на этапе установки:

 * Detected file collision(s):
 *
 *      /usr/share/doc.ecompress.dir
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * sys-devel/flex-2.5.39-r1:0::gentoo
 *      /usr/share/doc.ecompress.dir
 *
 * Package 'dev-perl/Net-SSLeay-1.650.0' NOT merged due to file
 * collisions. If necessary, refer to your elog messages for the whole
 * content of the above message.
При этом:
equery b /usr/share/doc.ecompress.dir
 * Searching for /usr/share/doc.ecompress.dir ...
sys-devel/flex-2.5.39-r1 (/usr/share/doc.ecompress.dir)
И вот что насчет emerge -avq1 =sys-devel/flex-2.5.39-r1
И еще выскакивает на этапе загрузки системы какое-то вообще нечитаемое сообщение, могу выложить чуть попопозже.
Что это вообще такое и как бороться? Пятая точка подозревает, что это как-то связано с perl.

Press Ctrl-C to Stop

Ты не нажал и оно перезаписало файл. Что тут не понятного?

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

funeralismatic ★★★
()
Ответ на: комментарий от Waldo-de-Kard

Вообще не трогал эти ваши CFLAGS

Ну-ну:

CFLAGS="-O2 -march=core-avx-i -pipe -fomit-frame-pointer -mfpmath=sse"
CXXFLAGS="-O2 -march=core-avx-i -pipe -fomit-frame-pointer -mfpmath=sse"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"

Дефолтные, аж жуть.

Сделай dmesg -c, запусти emerge, а когда он снова вывалится с illegal instruction - покажи выхлоп dmesg.

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

Ты не нажал и оно перезаписало файл.

А прочитать выхлоп, не?

Package 'dev-perl/Net-SSLeay-1.650.0' NOT merged due to file collisions.

По умолчанию, portage не ставит пакет при коллизиях, если файл с которым случилась коллизия принадлежит другому пакету.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Waldo-de-Kard

Ну смотри, вариантов несколько, по степени убывания:

1) неправильные CFLAGS, из-за которых собраны пакеты не под твой процессор - отсюда факап;
2) используемый unstable gcc генерит кривые бинари;
3) твоему процессору скоро прийдут кранты(маловероятно, но возможно)

Как чинить первые 2 варианта - из live системы перебирать пакеты с Safe CFLAGS, а еще лучше для начала - с минимумом оптимизаций.

3 вариант - только в морг. Но как я уже сказал - он слишком маловероятен.

А, и да, версии Python-а по ссылке на emerge --info тоже явно не из главного дерева. Но учитывая, что у тебя фэйлится perl-cleaner(а конкретнее - find) - это явно не источник проблем.

Ну и вот тебе еще выдержка из man gcc о -mfpmath:

               The resulting code should be considerably faster in the majority of cases and avoid the numerical instability problems of 387 code, but may break some
               existing code that expects temporaries to be 80 bits.

Почему я о нём вспомнил? Да как-то года эдак 2 назад помню он мне openoffice сломал на 32-битной машине. На 64-битной машине всё было ОК при этом. Так что я бы поостерегся включать это по умолчанию, если ты не знаешь как именно это работает и почему на 32-битных машинах это не дефолт.

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

А, и да, версии Python-а по ссылке на emerge --info тоже явно не из главного дерева.

Я хз из какого оно у меня там дерева, м.б. потому что у мну фанта, а не Ъ-каноничная гента?

Ну и вот тебе еще выдержка из man gcc о -mfpmath:

По талмуду мегабакса делал, и еще у него лично уточнял этот вопрос. Странно, тогда что оно только сейчас дало о себе знать.
Кстати, раз уж на то пошло, а может быть из-за того, что конкретно эта система в virtualboxe обитает? Спрашиваю потому, что список флагов для процессора как бы далекоооооо не полный от каноничного. Может там еще что-то тогда несовпадает?

Как чинить первые 2 варианта - из live системы перебирать пакеты с Safe CFLAGS, а еще лучше для начала - с минимумом оптимизаций.

В двух словах поясни холопу - загрузиться с LiveCD, chroot-нуться в систему, поправить make.conf и пересобирать? Или как-то иначе?

Waldo-de-Kard ★★
() автор топика
Ответ на: комментарий от Waldo-de-Kard

Кстати, раз уж на то пошло, а может быть из-за того, что конкретно эта система в virtualboxe обитает?

Лоооол. А тест проца(всмысле флаги gcc узнавал) ты на хостовой системе делал? Если да - вдвойне лол.

В двух словах поясни холопу - загрузиться с LiveCD, chroot-нуться в систему, поправить make.conf и пересобирать? Или как-то иначе?

Загрузиться с LiveCD в котором ЕСТЬ emerge, примонтировать корень в /mnt/gentoo например, поправить CFLAGS в /mnt/gentoo/etc/portage/make.conf и сделать:

PORTAGE_CONFIGROOT=/mnt/gentoo ROOT=/mnt/gentoo emerge -e @world
Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Лоооол. А тест проца(всмысле флаги gcc узнавал) ты на хостовой системе делал? Если да - вдвойне лол.

Ну вот ссылка на тот же /proc/cpuinfo из хостовой системы. Видишь количество флагов? Может бинари из-за этого корявыми как моя жизнь вышли?

Waldo-de-Kard ★★
() автор топика
Ответ на: комментарий от Pinkbyte

Флаги gcc делал внутри виртуалки. Но если виртуалка не видит две трети инструкций процессора, то кто знает как оно там под капотом работает...

Waldo-de-Kard ★★
() автор топика
Ответ на: комментарий от Pinkbyte

По умолчанию, portage не ставит пакет при коллизиях, если файл с которым случилась коллизия принадлежит другому пакету.

И правильно делает, на самом-то деле.

Package 'dev-perl/Net-SSLeay-1.650.0' NOT merged due to file collisions.

У меня рефлекс пропускать капс. Нельзя нормально писать всё? Надо выделить — оберните акцентируемое в болд или выкрасьте всю строку в красный/жёлтый. Ещё б зАбОрЧиКоМ писали. Очень трудно читать, когда версия и NOT сливаются из-за высоты символа. Не проще вместо такого выхлопа писать чти-то типа

 * [yellow][bold]dev-perl/Net-SSLeay-1.650.0[/bold][/yellow]: [bold]not[/bold] merged due to file collisions.
Или типа как блюют в лог иксы? Ну легче же читается, ну? Я знаю, что этот вопрос не по адресу, но ты же можешь пнуть кого надо.

Выдохнул.

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

Надо выделить — оберните акцентируемое в болд или выкрасьте всю строку в красный/жёлтый.

А теперь вспомни что существуют и другие типы терминалов, окромя vt100, xterm и linux. И да, представь себе, не везде есть цвета.

Я знаю, что этот вопрос не по адресу, но ты же можешь пнуть кого надо.

bugs.gentoo.org->New bug[Ex]->Portage Development

В severity ставишь enhancement. В описании бага что-то типа «improve collision protect output style» ну и объясняешь что конкретно хотелось бы улучшить.

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

Знаю, я тебя достал за сегодня, но...

root@sysresccd /root % PORTAGE_CONFIGROOT=/mnt/gentoo ROOT=/mnt/gentoo emerge -e @world
!!! Unable to parse profile: '/mnt/gentoo/etc/portage/make.profile'
!!! ParseError: Parent '/usr/portage/profiles/funtoo/1.0/linux-gnu/arch/x86-32bit' not found: '/mnt/gentoo/etc/portage/make.profile/parent'
!!! Your current profile is invalid. If you have just changed your profile
!!! configuration, you should revert back to the previous configuration.
!!! Allowed actions are limited to --help, --info, --search, --sync, and
!!! --version.
Как тут правильней поступить?

Waldo-de-Kard ★★
() автор топика
Ответ на: комментарий от Waldo-de-Kard

Примонтировать дерево portage из /mnt/gentoo через mount --bind в /usr/portage

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

bugs.gentoo.org

С моим инглишем туда лучше не соваться.

А теперь вспомни что существуют и другие типы терминалов, окромя vt100, xterm и linux. И да, представь себе, не везде есть цвета.

Живых осталось не так много.

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

Именно. А на i386 - нет. Хотя казалось бы - почему бы не заюзать? Мне кажется это не спроста и авторы gcc что-то подозревают.

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

Хотя казалось бы - почему бы не заюзать?

например, потому, что x86 подразумевает процессоры и без sse2 в том числе

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

например, потому, что x86 подразумевает процессоры и без sse2 в том числе

Я в курсе. И поэтому примечание в мане написано не зря - некоторый не очень хорошо написанный код может опираться именно на дефолт - то есть НЕ использование sse на x86.

Да, это фигово, но что имеем, то имеем.

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