LINUX.ORG.RU

64 и 32 архитектуры в Gentoo

 


0

2

Почитал гентувики ничего не понял. На других дистрибутивах в этом плане чуть понятнее, есть отдельно 64-битные пакеты и 32-битные.

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

Возможно ли установить чистый 64-битный вайн на генту (может на no-multilib?) ?

Поясните пожалуйста за ABI_X86=«64 32» и abi_x86_32.

32 рядом ставятся. На сколько я помню, вайна 64 нет.

panter_dsd ★★★★ ()

Зачем? Глобально задай abi_x86_32 если тебя парят зависимости и всё.

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

32 рядом ставятся

К сожалению нет, идет реинсталл пакета

[ebuild R] virtual/glu-9.0-r1::gentoo ABI_X86="32* (64) (-x32)" 0 KiB

У меня если честно разрыв шаблонов, я ничерта не понимаю что происходит.

junked ()

Он предлагает пересобрать пакеты, собрав при этом и 64-битную, и 32-битную версии.


Поясните пожалуйста за ABI_X86=«64 32» и abi_x86_32

ABI_X86 — глобальная переменная в make.conf, abi_x86_32 — USE-флаг, включающийся/выключающийся этой переменной в зависимости от значения последней. Если в ней есть «32» (например, «64 32»), то флаг включён, 32-битная версия собирается. Нет — значит нет.

К слову, поясняют «за» что-то только гопники (за шмот или мАбилу). Грамотно было бы спросить так: „Поясните, пожалуйста, что за ABI_X86=«64 32» и abi_x86_32 и в чём между ними разница“

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

Да, пересобирается пакет и будет у тебя не один набор либ, а 2.

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

ABI_X86="32* (64) (-x32)"

Ну так всё нормально же. 32-битная версия устанавливается параллельно с 64-битной.

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

Меня смещает присутствие только одной метки R, и отсутствие метки in new slot. Так бы я понял что собирается 32-битная версия пакета, которая будет лежать рядом с 64.

Если указать глобально ABI_X86=«64 32», то если для какого то пакета, например, вайна, будут нужны 32-битные зависимости, то оно установит их рядом с 64-битными в новый слот или это означает что ВСЕ 64-битные пакеты в системе будут иметь 32-битные «дубликаты» ?

В чем разница если я укажу ABI_X86=«64 32» или ABI_X86=«32 64»

junked ()

Если тебе нужна чистая 64 битная система, то выбери соответствующий профиль no-multilib и сделай обновление мира.

Если нужен только 64 битный wine, что не совсем понятно, в нём ты не сможешь запустить ни одно 32 битное Windows приложение, то отключи соответствующий abi у wine.

А так у тебя, насколько я понимаю, каникулы начались?

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

Меня смещает присутствие только одной метки R, и отсутствие метки in new slot.

В отдельный слот ставится только ebuild другой версии пакета. Скажем gcc-4.8 и gcc-4.6.

Так бы я понял что собирается 32-битная версия пакета, которая будет лежать рядом с 64.

Так и есть, собирается параллельно 64 битной и 32 битная версия пакета.

это означает что ВСЕ 64-битные пакеты в системе будут иметь 32-битные «дубликаты»

Да, если включишь глобально ABI_X86=«64 32», то все установленные и устанавливаемые пакеты, у которых есть поддержка multilib будут собраны для двух архитектур.

В чем разница если я укажу ABI_X86=«64 32» или ABI_X86=«32 64»

Функционально ни в чём.

Почитай уже Gentoo Handbook и включи голову.

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

Если указать глобально ABI_X86=«64 32», то
ВСЕ 64-битные пакеты в системе будут иметь 32-битные «дубликаты»

Вот это вот. С поправкой на поддержку пакетом мультилиба, конечно.

В чем разница если я укажу ABI_X86=«64 32» или ABI_X86=«32 64»

Нет разницы. Это то же самое, что написать USE="abi_x86_64 abi_x86_32" и USE="abi_x86_32 abi_x86_64" соответственно.

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

Так и есть, собирается параллельно 64 битной и 32 битная версия пакета.

Тогда по идее, если приложению нужно, например, 15 32-битных зависимостей, то количество пакетов в системе должно увеличится на 15. Здесь же, количество установленных в системе пакетов не изменилось. По памяти, когда на арче ставил скайп или вайн, то ставилась целая простыня зависимостей, из которых 80% это 32-битные дубликаты. На генте я вчера поставил вино, было около 7 новых пакетов а все остальное было с пометкой R, например вот это:

[ebuild R] virtual/glu-9.0-r1::gentoo ABI_X86="32* (64) (-x32)" 0 KiB

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

А так у тебя, насколько я понимаю, каникулы начались?

Чини детектор.

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

Тогда по идее, если приложению нужно, например, 15 32-битных зависимостей, то количество пакетов в системе должно увеличится на 15.

На генте я вчера поставил вино, было около 7 новых пакетов а все остальное было с пометкой R, например вот это:

[ebuild R] virtual/glu-9.0-r1::gentoo ABI_X86="32* (64) (-x32)" 0 KiB

Значит остальные пакеты зависимости уже были установлены и были лишь пересобраны с поддержкой дополнительной архитектуры. «*» как раз и указывает, что пакет пересобирается с добавлением нового флага, в данном случае активируется флаг поддержки новой архитектуры.

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

На сколько я помню, вайна 64 нет.

Есть, но он практически бесполезен.

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

Понял. Благодарю за помощь.

Есть еще пару вопросов по поводу зависимостей, их можно задать здесь или нужно создать новый тред?

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

На сколько я помню, вайна 64 нет.

Говоря точнее он есть только он нужен так-же как машине пятое колесо.

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

Как в генте разрешать такие зависимости при обновлении мира или установке пакетов? http://pastebin.com/y5C7jZvX

Скажу, честно, я подчистил /etc/portage. Но иногда что-то подобное, хоть и не в таких серьезных масштабах, да происходило на чистой системе, когда я, например, ставил какие то пакеты.

junked ()

например

eselect profile set default/linux/amd64/13.0/no-multilib

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

перекомпилировать в 32-битные

у одного пакета могут быть и 32-битные и 64-битные библиотеки, раньше шли прекомпилированные бинарные пакеты совместимости отдельно, как в остальных дистрах, теперь всё компилируется с твоими флагами

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

++

Я раньше пытался все говно, которому нужны abi_x86_32, в отдельном USE-файле перечислять, но на шестом десятке задолбался: каждое обновление требует пару-тройку пакетов туда добавлять...

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

Увы, есть дятлы, которые кроме скайпа ничего не знают. И из-за них приходится тянуть долбаные 32-битные либы.

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

Я раньше пытался все говно, которому нужны abi_x86_32, в отдельном USE-файле перечислять

etc-update ?

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

Нафиг эту «автоматизацию», она мне один раз так систему ушатала, что я теперь даже emerge без -a не запускаю!

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

Как можно запретить установку kwallet, openrc или любого другого пакета из профиля? У меня systemd, в make.conf прописано -kwallet и -openrc, но пр обновлении мира их постоянно тянет обратно. Такие вещи затягивают процесс компиляции как не крути.

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

1. Ты вообще кто такой?

2. Почему я должен это делать?

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

В Calculate все эти каталоги могут быть в другом месте,

добавить их в /etc/portage/package.mask.

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

Цитирование неправильное, но писал я тебе

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

меня systemd, в make.conf прописано -kwallet и -openrc, но пр обновлении мира их постоянно тянет обратно

Openrc уж точно не должен тянуться. Профиль какой?

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

Попробуй добавить -*sys-apps/openrc в /etc/portage/profile/packages.

Я как раз помнил, что надо что-то подобное сделать, но не получилось в гентушной вики про это найти, а сейчас уже на своей машине этот файл откопал.

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

Давай вывод:

emerge --info

И после запуска какой команды происходит такой вывод?

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

Вывод замечательный. Подчистил - что? Сидишь на тестовой ветке? Иногда что-то подобное происходит потому, что пакеты конфликтуют, да. Надо вручную расставлять нужные флаги или размаскировывать/маскировать проблемные пакеты. Ты же решил размаскировать тестовую libxcb и при этом оставить старый wine к примеру. Нафейхоа? Ты уверен что ты делаешь всё правильно?

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

А так у тебя, насколько я понимаю, каникулы начались?

Да ты, Костик, мудак. Это тебе пишет анон77.

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

попробуй в /etc/portage/package.use/multilib добавлять

x11-libs/libxcb abi_x86_32 

и далее по списку.

должно помочь.

samy_volosaty ★★★★★ ()

Прошу прощение за долгое отсутствие.

Вывод замечательный. Подчистил - что?

Я удалил все конфиги которые сделал etc-update.

Давай вывод emerge --info
Сидишь на тестовой ветке?

Переставил систему на ~amd64, до этого стояла из стабильной ветки. Так как я тянул некоторые пакеты из нестабильной ветки, решил что так будет меньше проблем с зависимостями. Все юзфлаги для конкретных пакетов во время установки я теперь просматриваю лично и добавляю в package.use руками. Этого достаточно что бы таких проблем впреть не возникало?

добавить их в /etc/portage/package.mask

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

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

Я удалил все конфиги которые сделал etc-update.


Вот теперь дальше - сам. Я руки умываю, ибо прежде чем делать это - ты должен был понимать, что делаешь и зачем. Ты сам сломал свою систему.

решил

глупо. Тестовая ветка и стабильная - как бэ намекает.

и добавляю в package.use руками

Т.е. хернёй страдаешь. man emerge

Этого достаточно что бы таких проблем впреть не возникало?

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

Тогда ничего нельзя установить

попробуй для начала emerge -auDN @world --with-bdeps=y

и потом после этого повтори. Так же не мешало бы почистить файл world. После этого выполнить emerge --depclean. Потом, может быть, и что-то получится. А вообще теперь надо разгребать каждый конфликт отдельно.

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