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

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

Как создать образ с объемом более 4 гигабайт

Долго бился над созданием образа более 4 гигабайта. Оказалось, что всего лишь нужно добавить iso-level:

mkisofs -vJRl -o -iso-level 3 dvd.iso /path/to/files

Эта опция определяет уровень соответствия iso9660. В данном случае, на уровне 3 нет никаких ограничений.

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.

Ранее Ctrl + ↓