LINUX.ORG.RU

Gentoo: cтабилизация профиля amd64 17.1

 


2

2

ВАЖНО!
Перед переключением на профиль amd64 17.1 внимательно прочтите новость и выполните приведённые там инструкции

Сам переход на новый профиль связан с удалением симлинков /usr/lib и /lib.

Все пользователи gentoo и так знают, что подобные новости распространяются средствами portage (eselect news), но вдруг кто сразу решит переключить, не глядя.

★★★★★

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

Maybe soon

Ну это всё сильно меняет! Особенно на фоне того, что куча игр в виндовой библиотеке стим для 32 бит.

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

Все 32 битные игры всегда доставляют много боли, давно пора их прикопать. Ну хорошо, все «тяжёлые», все на юнити, и все, которые люди пытаются «модить». Икспи дропнули, 32 бита дропнули. Теперь я подозреваю 32 бита будет протон тянуть, всё для любителей старья. Я не против конечно, но дайте мне возможность на 64 битной системе держать в фоне только приложение шарящее системные библиотеки, памяти и так мало.

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

64 битный браузер зачем-то хочет 32 битный ffmpeg

Нет, не хочет.

тянет 32 битные библиотеки в память.

Нет, не тянет.

Как я уже писал, 32бит библиотеки просто не работают в 64бит приложениях.

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

На самом деле 64 битный код может исполнять 32 битный и наоборот, никаких проблем. А библиотеки видимо тянет какой-то 32 битный компонент. Многие кодеки скажем существуют только в 32 битном варианте, возможно это как раз тот случай был.

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

Без эмуляции/виртуализации - не может.

Нет, не тянет. Не путай косяки генты с реальными требованиями приложений, и тем более с тем, что реально загружается в память при работе.

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

Вы считаете это невозможно? Технически никто не запрещает, просто чревато сайдэффектами и не принято на прикладном уровне. А по поводу совместимости, читайте дальше 1 предложения.

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

В том же ksysguard нажать «сведения об использовании памяти», там будут отображаться все линкуемые процессом библиотеки. Очевидно лишние будут содержать lib32 в пути.

Почему не будет, если это возможно? Там даже процедура вызова прерываний разная.

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

Что значит «не запрещает»? Во-первых, в заголовке бинаря указана его битность, и если она не соответствует, с ним линкер/загрузчик дела иметь не будет.

Во вторых кодировка команд и тд в 32 и 64бит режимах различается, потому если подсунуть 32бит код под видом 64бит он просто жидко сегфолтнется.

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

Нет, это невозможно. Значит в ksysguard баг или ты его неправильно читаешь.

Смотреть по-нормальному можно в grep \\.so /proc/*/maps

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

У тебя ссылка на какой-то винфак, а не на место в коде линуксового браузера, где делается что-то аналогичное.

Потому что так никто не делает.

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

Точно, спасибо.

[31]  default/linux/amd64/17.1/desktop (stable) *

а я то думаю, че у меня такой новости нет

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

дайте мне возможность на 64 битной системе держать в фоне только приложение шарящее системные библиотеки, памяти и так мало.

Опять тебе кто-то в штаны… мешает?

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

От мультилиба никуда не денешься если вдруг приспичило поиграть в старенькие 32. И да, я бы не хотел возиться еще и с чрутом, чтобы запускать в нем. Поэтому у меня мультилиб и я просто не парюсь.

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

Да и в чем, собственно, проблема, кроме увеличения занимаемого дискового пространства на корне?)

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

Если вам нужен рецепт, как завести 32 битный чрут с проприетарным драйвером на системе без мультилиба, то он, к сожалению, на текущий момент недоступен. Пришлось поворотить грязи, но она в принципе автоматизируется (нужно запускать скрипт для синхронизации при каждом обновлении основной системы). Саму систему в чруте можно собирать минимально. Проблем за исключением видеодрайвера не возникало. Только uid в чруте тот же что и у основного пользователя, симлинк из чрута в реальное назначение. Можно запускать на в любых иксах: в этих, в соседних, в иксах поверх иксов, всё всегда работало.

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

Отпишитесь, если у кого что сломается. Будем знать.

А зачем вам это, ведь вы не используете такие программы, которые используем мы...

У меня, например сломалась моя бухгалтерская программа, пишет, что не может найти libgdiplus.so.0, хотя лежит этот файл по пути /usr/lib64/libgdiplus.so.0

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

А с чего ты взял, что программа ищет библиотеку там? Вообще, в ebuild всякие пути установки и поиска либ патча перед сборкой посредством подстановки значения функции $(get_libdir) - кажется так она называется.

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

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

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

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

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

Я б для начала запустил через ld, посмотреть список библиотек и где он их ищет. Так обновился или профиль сменил?

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

Я предполагаю, что эту libgdiplus использует вот этот эльф:

/usr/lib64/mono/gac $ sudo ld ./System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
ld: i386 architecture of input file `./System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll' is incompatible with i386:x86-64 output
ld: warning: cannot find entry symbol _start; defaulting to 0000000000400084
Он там один такой:
/usr/lib64/mono # readlink ./4.5/System.Drawing.dll
../gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

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

Битность не подходит. Собери эту библиотеку под 64бит.

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

И потом, мне лучше видно
Так за меня же решают, почему я не могу?

Конечно можешь - пилишь свой дистр и решаешь за других.

Pinkbyte ★★★★★
()

Сам переход на новый профиль связан с удалением симлинков /usr/lib и /lib.

Там часть программ так и продолжает собираться в /usr/lib вместо /usr/lib64.
Например qlist python:3.7 | grep -c /usr/lib/
6888

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

Странно, обычно требуют, чтобы путь посредством функции $(get_libdir) определялся при сборке и установке.

Это на новом профиле?

/lib and /usr/lib become real directories, that are used for cross-arch and native non-library packages (gcc, clang) and 32-bit libraries on the multilib profile (which improves compatibility with prebuilt x86 packages).

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

Был профиль default/linux/amd64/17.0/no-multilib/hardened/selinux (stable)
emerge app-portage/unsymlink-lib
gcc-config указывает на x86_64-pc-linux-gnu-9.1.0
Система обновлена, 32 бита нет. Далее:
unsymlink-lib --analyze вроде ничего интересного не рассказало
unsymlink-lib --migrate сделало /usr/lib.new или как-то наподобие, точно не помню, накидало туда много всякого.
unsymlink-lib --finish удалило ссылку и переименовало /usr/lib.new в /usr/lib
Переключаю на default/linux/amd64/17.1/no-multilib/hardened/selinux (stable)
SYMLINK_LIB=no в /etc/portage/make.conf
Пересобираю gcc binutils glibc.
Ну там всякое . /etc/profile где надо и даже где не очень надо.
После emerge -1v /usr/lib содержимое /usr/lib конечно редеет, но не так как ожидалось — остатся куча эльфов. Например python 3.6 собирается правильно, а python 3.7 по прежнему срёт собой везде вроде тоже собрался. Отбой, остались ещё кое-какие редкие ошмётки, надо поизучать чьи и починить.
Всякое кросс и нонбинари понятное дело в /usr/lib лежит, как и написано в новости.
В общем, для меня не сильно критично, я от пикселей на экране и байтиков на диске в бешенство не прихожу. Со временем думаю ситуация поправится.

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

Учитывая, что use флаг python_targets_python3_7 замаскирован, то косяков связанным с ним самим может быть много.

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