Переход с no-multilib

Привет! В ходе экспериментов перешел на no-multilib профиль. Потом возникли проблемы с приложениями в wine, которые должны заводиться без проблем.

Решил попробовать 32битный wine, но вернуться на multilib оказалось не так и тривильно.
gcc, glibc не собрались..
Т.к. мне было немного лень, искать все "зависмиости", я поступил "в лоб". Распаковал stage3 в /.
(Хотя по-идеи, тулчейна должно было хватить).
Пересобрал всё с multilib.

В ходе процесса пострадало несколько конфигов, так что рекомендую /etc забекапить. И после распаковки не спешить возвращать его обратно. В USE флагах хитро завязано, что glibc оказывается зависим от glib, а glib от xorg-server, который не собирается из за ломаного pkgconfig, который, в свою очередь зависит от glib. Но стоит собрать с "пустым" make.conf, как всё далее само разруливается.

Т.е. вся миграция c no-multilib -> multilib прошла без перезагрузки.

1) Есть ли более православный метод? Может есть какой-то скрипт? (В дереве нашелся пакет app-emulation/emul-linux-x86-baselibs, уже скомпилированные 32бит библиотеки. Зачем-то же он существует?).
2) Что делает equery b /path/to/file ? Эта штука смотрит по моим установленным пакетам или нет? Т.е. если я устанолю coreutils через make install, она для /bin/ls выдаст "не принадлежит ни одному" или coreutils?
(Я, конечно, так ставить не собираюсь.. Волнует вопрос, остались ли файлы, которые не принадлежать теперь пакетам? 99% что нет. Но волнут вопрос, почему в emerge world, не пересобирается firefox..)

UPD
Как выяснилось, app-emulation/* нужны для wine. Почему он не собирает сам?

Кто что кому и почему

Кто что кому и почему должен?
ЧаВо, надеюсь, был читан заблаговременно?
http://gentoo.ru/content/kakaya-raznica-mezhdu-profilyami-amd6420080no-multilib-i-amd6420080-mozhno-li-ih-proizvolno

:wq
--
Live free or die

Anarchist написал(а):Кто что

Anarchist написал(а):
Кто что кому и почему должен?

wine32 должен сам для себя собирать 32битные библиотеки, такие как zlib.
Быть точнее, zlib должен собираться под обе архитектуры. Multilib-же?

На деле, после установки wine у меня оказывается

equery b /usr/lib32/liblzo2.so
 * Searching for /usr/lib32/liblzo2.so ... 
app-emulation/emul-linux-x86-baselibs-20120520 (/usr/lib32/liblzo2.so -> liblzo2.so.2.0.0)
app-emulation/emul-linux-x86-baselibs-20120520 (/usr/lib32/liblzo2.so.2.0.0)

Это несколько протухший zlib_1.2.5, в то время как в системе zlib_1.2.7

По поводу ЧаВо первая половина моего поста. Миграция обратно отнюдь не сложная.
И, к сожалению, я это прочитал уже после того, как перешёл на no-multilib.

P.S. В no-multilib есть wine.
Но лично я не понимаю, что "это". У меня в нём ничего не запускается :-) Даже примитивное.. Боюсь предположить, что он там эмулирует =)
(Скорее всего, конечно, ошибка где-то).

.

Профиль no-multilib предполагает, что система не может использовать 32-битные модули. Следовательно, под ним ничего 32-битного собираться не должно. Там же по ссылке все написано.

у меня win64 wine тоже плохо

у меня win64 wine тоже плохо работал, да и на офф сайте написано, что он только для 64 битных прог и не допилен
win32 при no-multilib не должен работать

(*)

Как я понимаю, у вас осталось только два вопроса? Почему не пересобирается firefox (ну так покажите лог сборки) и почему wine сам не собирает ... что?
А то тяжело понять, о чём вообще ваша тема "Переход с no-multilib". Ответ по теме "Переход с no-multilib" - не делайте так, потому что см. ссылку в первом ответе.

.

Да ладно. Переходить no-multilib -> multilib вполне можно. Если точно знаешь, что делаешь.

(*)

Если вы знаете, что делать, не могли бы вы в ту ссылку выше дописать информации по переходу? Не обязательно универсальное руководство, хотя бы успешный личный опыт, хотя бы ссылки?

.

Да делать-то ничего особенного не нужно. Могу здесь изложить. Однако, это может быть признано ересью.

1. В ядре включить CONFIG_IA32_EMULATION, если уже не включено. Перегрузиться, если включал.
2. Найти бинарные multilib-пакеты gcc,glibc тех же версий, что уже установлены, или сделать их самостоятельно на машине с multilib.
3. eselect profile set <профиль с multilib>
4. Установить вышеупомянутые пакеты на системе, которая переходит no-multilib -> multilib. (опция emerge '-K')
5. emerge -e world (хотя, может быть это лишнее и хватит -uDN)
6. Обмыть успешный переход [опционально].

В 2009г. такой вариант вполне удался. Кстати, это та самая система, с которой я в данный момент пишу этот пост.

UPD
Как было сказано выше, это мой собственный метод перехода, а не благословленная инструкция. Возможно, есть и другие методики, более кошерные.

/

Человеку имеющему успешный опыт перехода, полагаю, было бы неплохо, не забывая о привязке к шкале времени и перекрёстной ссылки в ЧаВо отписаться в комментариях к записи по первой ссылке.

:wq
--
Live free or die

Предлагаю остановться :-)

Господа! Предлагаю покончить с этим обсуждением. Я вчера очень коряво выражался.

В заключение, еще раз, более обстоятельно напишу интсрукцию перехода с no-multilib на multilib.

1) cp -r /etc /etc.b
2) Какчаем stage3-amd64-latest
3) tar xvjpf stage3* -C /
(Можнно аккуртано, исколючая там proc dev итд, но по сути - ни на что не влияет).
4) emerge system**
5) rm -rf /etc && mv /etc.b /etc
6) emerge -e world

**) Хорошо бы на этом этапе прописать MAKEOPTS
Способ избавлен от перезагрузок и прочих даунтаймов.
И всё :-)

.

Способ избавлен от перезагрузок и прочих даунтаймов.

Даже в случае, если у использующего эту инструкцию не включено в ведре CONFIG_IA32_EMULATION?

Кстати, предложенный мной способ исключает

1) cp -r /etc /etc.b
5) rm -rf /etc && mv /etc.b /etc

И да, а как же насчет

eselect profile set <x>

?
И почему

emerge system

, а не world?
multilib относится отнюдь не только к системным пакетам.

alexpro написал(а):Даже в

alexpro написал(а):
Даже в случае, если у использующего эту инструкцию не включено в ведре CONFIG_IA32_EMULATION?

Да UPD. Не уверен.. В genkernel по дефолту включена. Надо проверить..

alexpro написал(а):
И да, а как же насчет

eselect profile set <x>

?

А получается так, что после распаковки включен дефолтный профайл т.е. первый т.е.

 [1]   default/linux/amd64/10.0 *

Но убедиться, конечно, лишним не будет.

alexpro написал(а):
И почему

emerge system
, а не world?

Мир не соберется. Там окажутся сложные зависимости system от НЕ system. Конкретно я оказался в ситуации, когда glibc из system оказался зависим от xorg-server! Который не собирался по своим причинам.
(См мои сообщения).
Т.е. если в USE включить все старые флаги - сборка упадёт на сложных зависимостях. Если их не включить, то просто ничего не соберется, кому эти флаги нужны =)
Поэтому нужно сперва пересобрать system с "пустым" USE, а уже потом пересобрать world как полагается.

.

Мда. Даже не знаю, что на все это сказать...

Просто, со вкусом, и самое главное - никаких сомнений в том, что это может оказаться ересью.
:)

Цитата:

Цитата:
CONFIG_IA32_EMULATION:

Include code to run legacy 32-bit programs under a
64-bit kernel. You should likely turn this on, unless you're
100% sure that you don't have any 32-bit programs left.

Вы правы, без этой штуки не взлетит.

Совершенно согласен :) в

Совершенно согласен :) в данном случае - однозначная ересь.

депенды глибца от хорга - это уже не есресь, это ошибка

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga

slepnoga написал(а):
Совершенно согласен :) в данном случае - однозначная ересь.

депенды глибца от хорга - это уже не есресь, это ошибка

Есстественно ошибка! В ходе миграции вообще много ошибок! Для этого вся система и пересобирается вообще-то.
Если у Вас сомнения, что при определенных USE и битом glib, glibc будет падать с ошибкой, то можете пройтись тем же путём и убедиться :-)

Никто не утверждает, что glibc зависит от иксов :-) Просто конкретно в моем случае, с моими USE пересобрать glibc emerge отказался. Т.е. упал из за glib. А emerge glib тянул xorg-server, который падал из за pkgconfig...
Для этого USE и должен быть пустым. Нет флагов - нет кривых зависимостей.

Цитата: 2) Какчаем

Цитата:
2) Какчаем stage3-amd64-latest
3) tar xvjpf stage3* -C /

O_o
язабан

.

Та вот я думал, почитает человек внимательно и одумается. :) Однако, не одумался, жаль...
Хотя, с другой стороны, кто из нас не ломал дров в самом начале пути...

alexpro написал(а): Хотя, с

alexpro написал(а):
Хотя, с другой стороны, кто из нас не ломал дров в самом начале пути...

Дров, я думаю, у каждого хватает. Сам небезгрешен, если уж на то пошло. Страшны не сами "дрова", а нежелание проанализировать ситуацию, все взвесить и сделать соответствующие выводы.

eegorov написал(а):alexpro

eegorov написал(а):
alexpro написал(а):
Хотя, с другой стороны, кто из нас не ломал дров в самом начале пути...

Дров, я думаю, у каждого хватает. Сам небезгрешен, если уж на то пошло. Страшны не сами "дрова", а нежелание проанализировать ситуацию, все взвесить и сделать соответствующие выводы.

Без аргументации - пустой звон.

Специально для тебя еще раз прошелся той же дорогой в обе стороны. Никто не пострадал, всё работает :-)

P.S. Могут конечно быть нюансы, с пакетами, которые были в stage, но были удалены из системы. Но думаю гентушник с этим разберётся.

Интересно, что, по-твоему, в

Интересно, что, по-твоему, в моем посте требует аргументации?

.

Да простят меня за упоминание.

Сейчас есть много аникейщиков, помогающих народу справиться с домашней виндой. Большинство работают по объявлениям, некоторые имеют подобие мастерских. Помогают в основном переустановкой поверх старой, реже чистой, практически в любых случаях. Хотя почти всегда этого не требуется. Прослеживается тот же подход.

В принципе, из Москвы в Сочи можно ехать через Астрахань, тоже вряд ли кто пострадает, все доберутся.

alexpro написал(а): Помогают

alexpro написал(а):
Помогают в основном переустановкой поверх старой, реже чистой, практически в любых случаях. Хотя почти всегда этого не требуется.

Может и не требуется, но из моего опыта общения с виндой, переустановить начисто - проще и быстрее. А уж если свой комп и вместо переустановки идет разворачивание образа, тогда уж разбираться совсем бесполезно. (Когда экспериментировал над виндой, то иногда по раз 5 в час винду распаковывал. В Gentoo же у меня есть уверенность: что бы я не сотворил, потом можно будет восстановить, причем именно тот кусок который я сломал)

/

_SerEga_ написал(а):
из моего опыта общения с виндой, переустановить начисто - проще и быстрее

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

:wq
--
Live free or die

.

Не буду спорить о том, что проще и быстрее. Вообще-то, в данном случае главным было это:

Прослеживается тот же подход.

Ведь здесь не обсуждается "альтернативная ОС", речь-то идет о gentoo. :)

/

alexpro написал(а):
Ведь здесь не обсуждается "альтернативная ОС", речь-то идет о gentoo. :)

Я бы отметил недостаточно высокий уровень обобщения :)

Ибо энциклопедия методов пропаганды, эффект первичности.
Зачистка с таким трудом добытых (в альтернативной ОС) "знаний", утрачивающих свою актуальность при переходе к GNU/Linux --- дело тяжкое и долгое.

Соседняя тема показывает, что знание о необходимости дефрагментаторов (с спросом и удовлетворяющим его предложением) уже идёт...

:wq
--
Live free or die

Знаете, я полтора года сижу

Знаете, я год сижу на LFS/BLFS на ноутбуке :-) Я всё там собрал сам, с 0. Наложил несколько своих патчей на ядро, для решения задач "не костылями".
Там исключительно моё понимание того, где что должно быть, как взаимодействовать, с чем должно быть скомпилированно итд...

Потом я устроился работать сисадмином, и мне пришло понимание :-) Самое быстрое решение - самое хорошее.
Мне было совсем не интересно, решать задачу минимумом средств. Загуглил, на первых 3 ссылках решения не нашлось.. Далее я потратил примерно несколько секунд на обдумывание, а потом уже сама сборка.

Т.к. в докумнтации генты было написано, что я не смогу вернуться с no-multilib на multilib. Я создал этот пост. Никаких сложностей в этом нет.

Тот, кто хочет решать подобную задачу трушно, пожалуйста, почитайте LFS. Ничего сложного :-) Собираете тулчейн(там имеет несколько иной смысл - урезанная версия, которая может что-то собирать), собираете им тулчейн(в генто смысле), ставите себе в систему - и в перёд, с песней. Полная пересборка. Только system всё равно придётся собирать без флагов, да..

Потом я устроился работать

Потом я устроился работать сисадмином, и

;)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Всем здрям! Столкнулся вот

Всем здрям!
Столкнулся вот тут с переходом с no-multilib на multilib... Решение пришло такое:
1. качаем stage3 для х86_64
2. распаковываем в каталог и чрутимся туда как положено по библии...
3. там устанавливаем флаги для glibc как в целевой системе и собираем двоичный пакет
4. переносим пакет в целевую систему, переключаем профиль и устанавливаем glibc из своего двоичного пакета
5. пересобираем gcc и binutils
6. удаляем каталог со stage3

команды приводить не стал, ведь главное стратегия ;)

P.S. если кто может, то запостите баг в багзилу или поправьте ебилд, а то по английски нема. Суть проблемы, с которой столкнулся при установке glibc из двоичного пакета: у меня /var/tmp/portage - это tmpfs. При сборке больших пакетов места там не хватает, поэтому для них (в частности glibc) в /etc/portage/package.env/* прописан другой каталог сборки (расположенный на жестком диске). Так вот при установке из двоичного пакета его распаковка происходит правильно на жесткий диск, а поиск файлов при копировании в систему происходит из стандартной папки, которая в tmpfs... Соответственно установка вываливается с ошибкой и приходится править туда-сюда /etc/portage/package.env/glibc ...

Если это нормальное поведение, то хотя бы объясните почему, плиз :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".