Автор: Gatsu
Зачастую, устанавливая «с нуля» систему, мы задумываемся о том, какие пакеты в системе нужны для работы и что можно исключить при инсталляции. Перед промышленным использованием ОCи, может понадобиться урезать систему до минимума и снабдить ее необходимыми компонентами для работы. Например заменить стандартные оконные менеджеры JDE или CDE на альтернативный. Одним из наиболее удобных и легковесных, на мой взгляд, является оконный менеджер для X11 - «BlackBox», который мы и попытаемся собрать.
Требования к системе у «BlackBox» довольно простые — наличие рабочего X-сервера «Xsun» с его библиотеками.
Для сборки «BlackBox» (в статье рассматривается сборка «blackbox-0.70.0») потребуется GNU-набор «Binutils» и GNU-сборщик «Gmake». Воспользуемся сетью для получения требуемых исходников. Необходимо найти и скачать «blackbox-0.70.0.tar.gz» - 400кб , «binutils-2.17.tar.gz» - 17Мб и «gmake-3.81.tar.gz» - 1,5Мб.
Набор «Binutils» пригодится и для последующих сборок, так как большинство исходников «заточено» под GNU-binutils. «Gmake» - «Гнутый make».
Как все это «добро» собирать? Да очень просто. Распаковываем во временный каталог «gmake-3.81.tar.gz», «binutils-2.17.tar.gz» и «blackbox-0.70.0.tar.gz», переходим в каталог «gmake-3.81» и конфигурим уже известным способом с применением файла «myconfig» :
Содержимое файла должно быть следующим:
#!/sbin/sh
PATH=/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/ucb:/usr/ccs/bin:/usr/ucb:/usr/sfw/bin
export PATH
LD_LIBRARY_PATH=/usr/sfw/lib
export LD_LIBRARY_PATH
./configure --prefix=/MYCATALOG #(кому не нравится /usr/local)
make
Заметили изменения в файле «myconfig»? В пути добавил каталог «/usr/local/bin», убрал «PKG_CONFIG_PATH» и после скрипта «configure» добавил команду «gmake». Эти операции обосновывать не буду, можете поэкспериментировать.
Многие могут подумать, что при добавлении новых программ и библиотек в систему неплохо бы прописать к ним пути в файле профиля пользователя, но это мнение все-таки можно оспорить. Если мы имеем дело с множеством независимых пакетов, взаимодействующих с системными или вновь установленными библиотеками, то необходимо следовать правилу размещения каталогов в строке указания пути. Система будет искать файлы и библиотеки начиная с самого первого каталога, указанного в переменной пути.
Поясню: если «PATH=/usr/ccs/bin:/usr/local/bin» и в обоих каталогах расположены линковщики «ld» разных версий, то система выберет первый линковщик из каталога «/usr/ccs/bin» и будет его использовать при сборке.
И наоборот в случае «PATH=/usr/local/bin:/usr/ccs/bin» - система будет использовать при сборке «ld» из каталога «/usr/local/bin».
После сборки «GNU-make» инсталим его.
# pwd
/Documents/gmake-3.81
# make install
Далее собираем «Binutils», предварительно скопировав в каталог с исходниками файл «myconfig»:
# cd /Documents/binutils-2.17
# ./myconfig
После сборки «Binutils» можно приступить с сборке «Blackbox». Подготавливаем файл «myconfig» следующего содержания:
#!/sbin/sh
PATH=/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/ucb:/usr/ucb:/usr/sfw/bin:/usr/local/bin:/MYCATALOG/bin
export PATH
LD_LIBRARY_PATH=/usr/sfw/lib
export LD_LIBRARY_PATH
./configure --prefix=/MYCATALOG #(кому не нравится /usr/local)
gmake
Внимание! Из пути «PATH» удален каталог «/usr/ccs/bin», и добавлены пути к «GNU-make» и «binutils».
Копируем файл «myconfig» в каталог «/Documents/blackbox-0.70.0» и конфигурим с попыткой сборки.
# cd /Documents/blackbox-0.70.0
# ./myconfig
Инсталлируем «BlackBox»:
# pwd
/Documents/blackbox-0.70.0
# gmake install
«BlackBox» собирается «Гнутыми» утилитами — это связано с особенностью его исходников.
Остается всего немного... - настроить dt-сессию для «BlackBox». Всего-то понадобится создать четыре файла в каталоге «/usr/dt/config»:
1.Файл «Xinitrc.bbx» листинг:
#!/bin/ksh
if [ "x$LC_ALL" = x -a "x$LANG" = x -o "x$LANG" = xC ]; then
export LC_ALL="C"
export LC_CTYPE="C"
else
export LC_MESSAGES=$LANG
fi
export G_FILENAME_ENCODING=@locale,UTF-8
export G_BROKEN_FILENAMES=yes
/usr/openwin/bin/xrdb -merge << EOF
! Default CDE resources
*WindowColor: #8A008A008A00
!*WindowForeground: #FF0000000000
!*DataBackground: #0000FF000000
*DataForeground: #FF0000000000
*WorkspaceColor: #8A008A008A00
*Color.Background: #FF000000FF00
!*Color.Foreground: #0000FF000000
*foreground: #000000000000
! Hack for Dtmail
*XmText*background: seashell
*XmTextField*background: seashell
*Message_List*background: seashell
*background: #AE00B200C300
Dthello*string: Welcome to the BlackBox window manager
EOF
if [ -f $HOME/.Xdefaults ]; then
xrdb -merge $HOME/.Xdefaults # Load Users X11 resource database
fi
echo "Starting BlackBox"
exec /usr/local/bin/blackbox
2. Файл «Xsession.bbx» листинг:
3. Файл «Xsession2.bbx» листинг:
4. Файл «Xresources.bbx», который необходимо скопировать в каталог «/usr/dt/config/C/Xresources.d» и во все каталоги «/usr/dt/config/../Xresources.d» листинг:
Не забудьте назначить права файлам сессий на запуск.
После рестарта «dtlogin» подхватит новую сессию «BlackBox»
На этом очередная статья по сборке из исходников закончена.
С Уважением ко всем прочитавшим, Gatsu.