Подписка на блог

делю на ноль, обогащаю уран
Позднее Ctrl + ↑

Awesome и NetBeans

Никак не мог установить `NetBeans`, причем любой версии, в любом виде, хоть бинарный, хоть из сырцов. Проблема заключалась в том, что инсталлятор программы показывал пустой серый квадрат, то есть ничего не отображал. Дело, как оказалось в особенностях работы `Awesome` с `Java`

Для решения проблемы нужно установить из оверлея `wmname`, потом поставить в автозагрузку команду «wmname LG3D». Все.

Тут еще другие варианты решения проблемы для разных версий JDK.

Сетевой мост в VirtualBox

Долго мучился с настройкой бриджа в VirtualBox. Мучился до тех пор, пока внимательно не перечитал вики.

В общем, ничего делать не надо, кроме как загрузить модуль:

# modprobe vboxnetflt 

Ну или вписать в /etc/conf.d/modules

<div style="text-align: justify;">modules=vboxnetflt</div>

В свойствах данной виртуальной машины в настройках сети выбираем тип подключения «Сетевой мост» После грузим гостевую ОС, у меня это CentOS, и там как обычно настраиваем сеть.

Проблема с NFS, gentoo-sources-2.6.32

После обновления ядра до версии 2.6.32, перестали монтироваться nfs-разделы. Проблема такая же как и тут

Решается добавлением опции nfsvers=3 ( на тот случай если nfs-сервер этой версии)

Что такое оверлеи и как ими пользоваться

Несмотря, что выбор программного обеспечения в `Gentoo` очень велик, довольно часто бывает так, что какого-то пакеты в дереве портежей нету. Приходится иметь дело с `ebuild`-ами, которые не вошли в официальное дерево.

Проще говоря `overlay` это дополнительный репозиторий. Оверлеи бывают двух видов. Локальный — тот, который вы обслуживаете сами, закидываете ебилды, создаете `digest`-файлы и т.д. И еще существуют, так называемые автоматизированные оверлеи. Эти оверлеи обслуживаются утилитой `layman`, которая все делает сама. У нее есть свой список оверлеев, который время от времени обновляется. Рассмотрим поочердно каждый тип.

Итак, для оверлеев, которые будут обрабатываться вручную, необходимо создать отдельный каталог, допустим `/usr/local/portage/` Сюда будут закидываться `ebuild`-ы. Таким образом официальное дерево и дополнительные `ebuild`-ы смешиваться не будут. При помещении `ebuild` файла в этот каталог, необходимо использовать такую же схему иерархии каталогов как и в `/usr/portage/`

Еще нужно добавить в `/etc/make.conf` строчку

PORTDIR_OVERLAY="/usr/local/portage"

Пример установки пакетного менеджера `pacman` из `ArchLinux`, которого нету в официальном дереве:

mkdir -p /usr/local/portage/app-misc/pacman
cd  /usr/local/portage/app-misc/pacman
wget http://gentoo-overlays.zugaina.org/arcon/portage/app-misc/pacman/pacman-3.3.2.ebuild

Теперь когда скачан `ebuild`-файл, нужно скачать исходники и создать файл `Manifest`, в котором будут указанны контрольная сумма `md5` сборочного файла:

ebuild /usr/local/portage/app-misc/pacman/pacman-3.3.2.ebuild digest

Все. Тут уже можно устанавливать как обычно.

Второй тип оверлеев. Для начала нужно установить утилиту для автоматизации обслуживания оверлеев:

emerge layman

Затем добавить строчку в `make.conf`

source /usr/local/portage/layman/make.conf

Могут понадобится утилиты `git`, `subversion`, `mercurial`, `bzr`. Так как большинство оверлей-репозитории обновляются через эти системы контроля версий.

Краткий перечень основных команд:

layman -L — выводит список оверлеев подключаемых оверлеев

layman -a overlay — подключает оверлей

layman -d overlay — удаляет оверлей

layman -S — обновляет все подключенные оверлеи

Как обновить gcc

Обновлять `gcc` нужно хотя бы по двум причинам: первое — в `gcc` бывают ошибки, второе — перекомпиляция старых программ новым компилятором может дать выигрыш в оптимизации программ, которыми пользуемся.

Ничего сложного в этом нету. Просто поэтапно нужно сделать:

# emerge -uva gcc
# gcc-config x86_64-pc-linux-gnu-4.4.2 

(вместо `x86_64-pc-linux-gnu-4.4.2` ставится своя версия gcc. список доступных gcc можно получить командой gcc-config -l)

Потом:

# source /etc/profile
# emerge --oneshot -av libtool

Теперь можно пересобрать систему новым компилятором. Перед этим нужно пересобрать набор программ для компиляции:

# emerge -eav system

А теперь пересоберем мир:

# emerge -eav world

После вышеописанных процедур можно удалить старый `gcc`:

# emerge -C gcc-x.x

Вместо `gcc-x.x` пишется старая версия `gcc`

Не собирается xorg-server-1.7.1

При обновлении `xorg-server-1.7.1` получил ошибку:

rensize.c: В функции '__glXImageSize':

rensize.c:222: ошибка: 'GL_DEPTH_STENCIL_MESA' не описан (первое использование в этой функции)

rensize.c:222: ошибка: (Сообщение о неописанном идентификаторе выдается один раз

rensize.c:222: ошибка: для каждой функции, в которой он используется.)

rensize.c:261: ошибка: 'GL_UNSIGNED_SHORT_15_1_MESA' не описан (первое использование в этой функции)

rensize.c:262: ошибка: 'GL_UNSIGNED_SHORT_1_15_REV_MESA' не описан (первое использование в этой функции)

rensize.c:276: ошибка: 'GL_UNSIGNED_INT_24_8_MESA' не описан (первое использование в этой функции)

rensize.c:277: ошибка: 'GL_UNSIGNED_INT_8_24_REV_MESA' не описан (первое использование в этой функции)

make[1]: *** [rensize.lo] Ошибка 1

make[1]: *** Ожидание завершения заданий...

make: *** [all-recursive] Ошибка 1

 * ERROR: x11-base/xorg-server-1.7.1 failed:

 *   emake failed

 * 

 * Call stack:

 *      ebuild.sh, line   49:  Called src_compile

 *   environment, line 3743:  Called x-modular_src_compile

 *   environment, line 4667:  Called x-modular_src_make

 *   environment, line 4706:  Called die

 * The specific snippet of code:

 *        emake || die "emake failed"

 * 

 * If you need support, post the output of 'emerge --info =x11-base/xorg-server-1.7.1',

 * the complete build log and the output of 'emerge -pqv =x11-base/xorg-server-1.7.1'.

 * The complete build log is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'.

 * The ebuild environment file is located at '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/environment'.

 * S: '/home/tmp2/portage/x11-base/xorg-server-1.7.1/work/xorg-server-1.7.1'

>>> Failed to emerge x11-base/xorg-server-1.7.1, Log file:

>>>  '/home/tmp2/portage/x11-base/xorg-server-1.7.1/temp/build.log'

Здесь нужно сообщить `X.org`, чтобы тот пользовался `xorg-x11`:

# eselect opengl set xorg-x11

Собрать `xorg-server`. Потом вернуть как было.

Пересборка модулей

После обновления ядра, понадобилось пересобрать модули. Чтобы сделать это махом, поставил `module-rebuild`. Далее просто:

# module-rebuild rebuild||list

Пересоберет все модули.

XFCE 4,6 и поведение рабочих столов

Представим, что браузер `Firefox `у меня расположен на рабочем столе №1, а мессенджер `Gajim` на рабочем столе №2. Если мне приходит в сообщении по мессенджеру ссылка, я ее естественно открываю. Ссылка открывается в браузере, который расположен на рабочем столе №1, но сам браузер при этом перемещается на активный рабочий стол, то есть на рабочий стол №2. Это не баг, это фича.

Однако, это можно исправить. В файле `~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml` нужно найти строку

< property name="activate_action" type="string" value="none" />

Параметр bring (помечено красным) нужно исправить на none.

Кодировка под учетной записью root

После недавнего обновления слетела кодировка. Не читались файлы на кириллице. Причем под обычным пользователем все работало нормально.

Решение проблемы с локалью в оболочке root’а.

Добавить в файл `/etc/environment` следующие строки:

LC_ALL="ru_RU.UTF-8"

LANG="ru_RU.UTF-8"

В файле `/etc/login.defs` проверить, а при необходимости определить переменную `ENVIRON_FILE`

grep ENVIRON /etc/login.defs

ENVIRON_FILE=/etc/environment

Источник

Ранее Ctrl + ↓