Переход с 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 написал(а):Кто что
wine32 должен сам для себя собирать 32битные библиотеки, такие как zlib.
Быть точнее, zlib должен собираться под обе архитектуры. Multilib-же?
На деле, после установки wine у меня оказывается
Это несколько протухший 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?
Кстати, предложенный мной способ исключает
И да, а как же насчет
?
И почему
emerge system
, а не world?
multilib относится отнюдь не только к системным пакетам.
alexpro написал(а):Даже в
ДаUPD. Не уверен.. В genkernel по дефолту включена. Надо проверить..А получается так, что после распаковки включен дефолтный профайл т.е. первый т.е.
Но убедиться, конечно, лишним не будет.
Мир не соберется. Там окажутся сложные зависимости system от НЕ system. Конкретно я оказался в ситуации, когда glibc из system оказался зависим от xorg-server! Который не собирался по своим причинам.
(См мои сообщения).
Т.е. если в USE включить все старые флаги - сборка упадёт на сложных зависимостях. Если их не включить, то просто ничего не соберется, кому эти флаги нужны =)
Поэтому нужно сперва пересобрать system с "пустым" USE, а уже потом пересобрать world как полагается.
.
Мда. Даже не знаю, что на все это сказать...
Просто, со вкусом, и самое главное - никаких сомнений в том, что это может оказаться ересью.
:)
Цитата:
Вы правы, без этой штуки не взлетит.
Совершенно согласен :) в
Совершенно согласен :) в данном случае - однозначная ересь.
депенды глибца от хорга - это уже не есресь, это ошибка
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
Есстественно ошибка! В ходе миграции вообще много ошибок! Для этого вся система и пересобирается вообще-то.
Если у Вас сомнения, что при определенных USE и битом glib, glibc будет падать с ошибкой, то можете пройтись тем же путём и убедиться :-)
Никто не утверждает, что glibc зависит от иксов :-) Просто конкретно в моем случае, с моими USE пересобрать glibc emerge отказался. Т.е. упал из за glib. А emerge glib тянул xorg-server, который падал из за pkgconfig...
Для этого USE и должен быть пустым. Нет флагов - нет кривых зависимостей.
Цитата: 2) Какчаем
O_o
язабан
.
Та вот я думал, почитает человек внимательно и одумается. :) Однако, не одумался, жаль...
Хотя, с другой стороны, кто из нас не ломал дров в самом начале пути...
alexpro написал(а): Хотя, с
Дров, я думаю, у каждого хватает. Сам небезгрешен, если уж на то пошло. Страшны не сами "дрова", а нежелание проанализировать ситуацию, все взвесить и сделать соответствующие выводы.
eegorov написал(а):alexpro
Без аргументации - пустой звон.
Специально для тебя еще раз прошелся той же дорогой в обе стороны. Никто не пострадал, всё работает :-)
P.S. Могут конечно быть нюансы, с пакетами, которые были в stage, но были удалены из системы. Но думаю гентушник с этим разберётся.
Интересно, что, по-твоему, в
Интересно, что, по-твоему, в моем посте требует аргументации?
.
Да простят меня за упоминание.
Сейчас есть много аникейщиков, помогающих народу справиться с домашней виндой. Большинство работают по объявлениям, некоторые имеют подобие мастерских. Помогают в основном переустановкой поверх старой, реже чистой, практически в любых случаях. Хотя почти всегда этого не требуется. Прослеживается тот же подход.
В принципе, из Москвы в Сочи можно ехать через Астрахань, тоже вряд ли кто пострадает, все доберутся.
alexpro написал(а): Помогают
Может и не требуется, но из моего опыта общения с виндой, переустановить начисто - проще и быстрее. А уж если свой комп и вместо переустановки идет разворачивание образа, тогда уж разбираться совсем бесполезно. (Когда экспериментировал над виндой, то иногда по раз 5 в час винду распаковывал. В Gentoo же у меня есть уверенность: что бы я не сотворил, потом можно будет восстановить, причем именно тот кусок который я сломал)
/
В данном случае (настоящий профессионал, т.е. приходящий мастер) главное --- надёжность.
Ну и почти отсутствующий требования по сохранению пользовательского профиля (пользователи альтернативной ОС привыкли к трудностям и этой фишки не особенно и ждут).
:wq
--
Live free or die
.
Не буду спорить о том, что проще и быстрее. Вообще-то, в данном случае главным было это:
Ведь здесь не обсуждается "альтернативная ОС", речь-то идет о 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 ...
Если это нормальное поведение, то хотя бы объясните почему, плиз :)