22 мая 2010 г.

gentoo. Пара слов о x86_64. Обходим masked by: CHOST

Недавно пересобрал свою домашнюю gentoo на x86_64. Процесс прошел на удивление гладко. Использовал ежедневную автоматическую сборку stage3 и последний архив portage-latest. Также ставилась задача минимизировать установку ненужных пакетов. И использовать только новейшие версии. Поэтому, с пристрастием вычистил USE-флаги (-gnome -kde -python и многое другое). Из ошибок - забыл изменить в старом make.conf ACCEPTED_KEYWORDS на новую архитектуру, но это не сильно помешало. Также был сразу установлен и настроен на использование по-умолчанию компилятор sys-devel/gcc-4.5.1_pre9999:4.5-svn из SVN. К моему удивлению, при начальной компиляции emerge -e world не было ни одной ошибки сборки!  Далее я встретил всего несколько программных продуктов, которые не собирались из-за слишком новой версии компилятора: mysql, xbmc, x11-libs/qt-3.3.8b-r2. Исправив ошибку с ACCEPTED_KEYWORDS пришлось пересобрать всего менее 20 пакетов. В общем, процессом установки приятно удивлён.

Из плохого a): grub2 отказался работать наотрез. Ошибка, похоже, не в конфиге, а глубже. Несколько попыток положительного результата не принесли. Гугл практически не помог. Снёс, вернулся на grub-0.97.

Из плохого b): флеш-плагин, как и на 32 битной системе, не подхватывается ни мозиллой, ни оперой после установки. Как и на старой системе, предпочёл скачать оригинальную библиотеку с adobe.com. К сожалению, даже бета-версии 10.1 для linux-x86_64 недоступно, пришлось остановиться на 10.0. Зато всё работает без всяких проблем.

Из плохого c): В ебилде nvidia-drivers для FreeBSD и Linux-x86 качается драйвер с суффиксом -0 (без дополнительных прекомпилированных модулей ядра), а для x86_64 ставится файл с суффиксом-2 (43 мегабайта против 26). Попробовал исправить ебилд руками, но оказалось, что -0 ставиться действительно не хочет - не находится libGL.so. Пришлось оставить, как есть.

Проблема с MASKED BY: CHOST

Связана с тем, что пакеты x11-libs/qt-3.xyz и net-im/sim объявлены устаревшими и удалены из дерева portage. Альтернативы sim я для себя катастрофически не вижу. qutim сырой и его qipпоподобность очень раздражает. На юзабилити pidgin разработчики с самого начала забили болт. Новую версия 2.7, сжав зубы, еще можно было-бы использовать, если-бы она не сегволтилась при подключении (проблема проявилась не сразу, а на третий день - похоже, при чтении статуса одного из icq-контактов?). Удалил пиджин без особого сожаления. 

У меня на другой машине собран sim из февральского SVN. И установлена последняя доступная версия x11-libs/qt-3.x.y.z. Таким образом, делаем пакеты:

quickpkg net-im/sim \=x11-libs/qt-3.3.8-b2 и переносим их на новую систему в директорию /usr/portage/packages, или другую, в соответствие с настройками make.conf. Далее размаскируем package.keywords или package.unmask, если это необходимо. И пытаемся поставить программу с помощью команды emerge net-im/sim -K -pv отказывается устанавливать наши пакеты из-за Masked by: CHOST. Прописать нужный CHOST в виде переменной не помогло.  Оказывается, база данных бинарных пакетов хранится в той-же директории в файле Packages. Я просто отредактировал его, прописав нужный CHOST: x86_64-pc-linux-gnu. После этой нехитрой операции всё поставилось и даже заработало! 

Удачи!