Table of Contents
Оконная система X
Установка и базовая настройка системы Х.
Введение
В этой главе описываются установка и настройка иксов в SliTaz. Мы установим библиотеки для expat, XML, шрифтов, графический сервер (Xvesa), эмулятор терминала (xterm), оконный менеджер (JWM) и различные мелкие утилиты. Также поставим библиотеки для JPEG-изображений и браузер Links.
Переменные окружения ($fs)
Если у вас еще не указан путь к папке rootfs, экспортируйте соответствующую переменную окружения:
# export fs=$PWD/rootfs
Для проверки можно ввести:
# echo $fs
expat-2.0.0 — библиотека анализатора XML
Expat (expat.sourceforge.net) содержит библиотеки анализатора XML:
# cd .. # wget http://switch.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz # tar xzf expat-2.0.0.tar.gz # cd expat-2.0.0 # ./configure --sysconfdir=/etc --prefix=/usr \ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/lib/* # strip -v _pkg/usr/bin/*
После этого установим xterm, который опирается на библиотеку libexpat.so.0, создадим ему символическую ссылку, и все дела! Теперь можно установить приложение xmlwf с его библиотеками в rootfs:
# cd _pkg/usr/lib # ln -s libexpat.so.1.5.0 libexpat.so.0 # cp -a *.so* $fs/usr/lib # cd .. # cp -a bin/* $fs/usr/bin # cd ../..
Библиотеки
xmlwf использует следующие библиотеки:
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40021000) libc.so.6 => /lib/tls/libc.so.6 (0x40041000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
freetype-2.3.1 — библиотеки системных шрифтов
Пакет freetype (www.freetype.org) содержит библиотеки, используемые Х-сервером, для настройки системных шрифтов:
# cd .. # wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.1.tar.bz2 # tar xjf freetype-2.3.1.tar.bz2 # cd freetype-2.3.1 # ./configure --sysconfdir=/etc --prefix=/usr \ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -vs _pkg/usr/lib/* # cp -a _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
fontconfig-2.4.2 — утилиты управления шрифтами
Пакет fontconfig (www.fontconfig.org/wiki/) предоставляет библиотеку libfontconfig, которую используют многие Х-программы. Кстати, XFree86 также ее содержит. Мы выбрали оригиальный пакет, т.к. он работает лучше в JWM:
# cd .. # wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz # tar xzf fontconfig-2.4.2.tar.gz # cd fontconfig-2.4.2 # ./configure --sysconfdir=/etc --prefix=/usr \ --mandir=/usr/share/man --localstatedir=/var # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # strip -v _pkg/usr/lib/* # cp -a _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/lib/*.so* $fs/usr/lib # cp -a _pkg/etc $fs # cp -a _pkg/var $fs
Библиотеки
Выполним команду ldd на fc-cache и получим требуемые библиотеки. Можно также использовать libfreetype из XFree86:
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7f12000) libz.so.1 => /usr/lib/libz.so.1 (0xb7eff000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7edf000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7eb0000) libc.so.6 => /lib/tls/libc.so.6 (0xb7d7b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7f8c000)
Xserver — графический сервер Xvesa из состава Xfree86
Мы будем использовать двоичные версии сервера Xvesa (www.xfree86.org) и шрифтов, предоставляемых Xfree86.org. Мы также могли бы скопировать библиотеки Xorg из основной системы, которая будет использоваться для компиляции Х-приложений, но Xvesa сам по себе хорошо работает и при этом значительно проще. Также можно пересобрать пакеты Xorg в вашей рабочей системе.
Сервер Xtinyx от Xvesa
Сервер Xvesa очень легкий и использует крохотные библиотеки. Он содержится в архиве Xtinyx.tgz. Скачаем и установим его в /usr/bin папки rootfs SliTaz:
# cd .. # mkdir -p XFree86-4.6.0 && cd XFree86-4.6.0 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xtinyx.tgz # tar xzf Xtinyx.tgz # cp bin/Xvesa $fs/usr/bin # strip $fs/usr/bin/Xvesa # chmod 4711 $fs/usr/bin/Xvesa
Библиотеки для Xvesa
libz.so.1 => /usr/lib/libz.so.1 (0xb7ed6000) libm.so.6 => /lib/tls/libm.so.6 (0xb7eb1000) libc.so.6 => /lib/tls/libc.so.6 (0xb7d7e000) /lib/ld-linux.so.2 (0xb7ef8000)
rgb.txt — RGB-цвета в X-сервере
Конфигурационный файл для настройки цветовой гаммы Х-сервера носит название rgb.txt; советуем скопировать его в основную систему. Библиотека libX11.so будет искать файлы настроек в папке /usr/share/X11, а сервер Xvesa — в /usr/X11R6/lib/X11; для этого создадим ссылку на /usr/share/X11:
# mkdir -p $fs/usr/share/X11 # cp /usr/share/X11/rgb.txt $fs/usr/share/X11 # chroot $fs /bin/ash /# mkdir -p /usr/X11R6/lib/X11/ /# ln -s /usr/share/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt /# exit
Xfnts — шрифты
Чтобы управлять сервером, нам понадобится базовый набор шрифтов. Их можно скачать с сайта xfree86.org, а затем скомпилировать соответствующие пакеты из Xorg или взять их из основной системы. Системные шрифты можно располагать по разным папкам, а кеш обновлять утилитой lc-cache. Не забывайте: шрифты отнимают драгоценное пространство, поэтому устанавливайте только самые необходимые. Папка /usr/share/fonts содержит шрифты TrueType, например, bitstream-vera:
# wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xfnts.tgz # tar xzf Xfnts.tgz # mkdir -p $fs/usr/X11R6/lib/X11/fonts # mkdir -p $fs/usr/share/fonts/truetype
Скопируем шрифты:
(# cp -a lib/X11/fonts/* $fs/usr/X11R6/lib/X11/fonts) (# cp -a /usr/share/fonts/truetype/* $fs/usr/share/fonts/truetype
После этого заново создадим файл fonts.dir, для этого запустим утилиту mkfontdir и укажем нужную папку:
# mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi
Файлы конфигурации fontconfig можно найти в /etc/fonts из пакета fontconfig. Теперь можно запустить fc-cache, чтобы обновить кеш, и fc-list для вывода списка доступных шрифтов. Эти команды можно запускать из chroot-окружения rootfs:
# chroot $fs /bin/ash # fc-cache -v # fc-list # exit
Xlib locale — файлы раскладок клавиатуры
В SliTaz мы установили 4 локали: C, iso8859-1, iso8859-15 и iso 8859-2 из пакета Xorg. Вы можете взять эти файлы из основной системы или из пакета XFree86. Для примера скопируем локали из основной системы:
# mkdir -p $fs/usr/share/X11/locale # cp -a /usr/share/X11/locale/* $fs/usr/share/X11/locale
Использование X
Xvesa можно использовать в качестве Х-терминала, если в вашей сети есть компьютер, способный принимать XDMCP-соединения. Для этого можно запустить сервер с опцией -query, например:
# Xvesa -ac -shadow -screen 1024x768x24 -query 192.168.0.2
xterm — эмулятор терминала
Пакет xterm (invisible-island.net/xterm/) предоставляет эмулятор терминала для Х-сервера:
# wget ftp://invisible-island.net/xterm/xterm-223.tgz # tar xzf xterm-223.tgz # cd xterm-223 # ./configure --prefix=/usr --sysconfdir=/etc \ --mandir=/usr/share/man --localstatedir=/var \ --with-app-defaults=/usr/share/X11/app-defaults \ --build=i486-pc-linux-gnu --host=i486-pc-linux-gnu # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/bin/* # cp _pkg/usr/bin/* $fs/usr/bin # cp -a _pkg/usr/share/X11/* $fs/usr/share/X11
Библиотеки
Выполним команду ldd на XTerm, а затем команды copy и strip, чтобы скопировать недостающие библиотеки из основной системы:
libXft.so.2 => /usr/lib/libXft.so.2 (0xb7f09000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7f00000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7ed5000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e68000) libz.so.1 => /usr/lib/libz.so.1 (0xb7e54000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d68000) libXaw.so.7 => /usr/lib/libXaw.so.7 (0xb7d0f000) libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7cfa000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7cec000) libXt.so.6 => /usr/lib/libXt.so.6 (0xb7c9e000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb7c96000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb7c7f000) libncurses.so.5 => /lib/libncurses.so.5 (0xb7c3c000) libc.so.6 => /lib/libc.so.6 (0xb7b2c000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b0b000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b08000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b03000) libdl.so.2 => /lib/libdl.so.2 (0xb7aff000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7aee000)
libpng-1.2.18 — библиотеки для работы с форматом PNG
Библиотеки для PNG (libpng.org/pub/png/libpng.html) используются для управления изображениями в формате PNG:
# wget http://puzzle.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.18.tar.bz2 # tar xjf libpng-1.2.18.tar.bz2 # cd libpng-1.2.18 # ./configure --enable-shared --prefix=/usr \ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/lib/*.so* # cp -a _pkg/usr/lib/libpng12.so* $fs/usr/lib # cp -a _pkg/usr/bin/libpng12* $fs/usr/bin
jwm-2.0 — менеджер окон
Оконный менеджер Джо (Joe's Window Manager, www.joewing.net/programs/jwm/) — потрясающе легкий и дружественный менеджер окон. В SliTaz он является оконным менеджером по умолчанию. Основной файл конфигурации (/etc/jwm/system.jwnrc) содержит настройки стиля и меню настроек:
# cd .. # wget http://www.joewing.net/programs/jwm/releases/jwm-2.0.tar.bz2 # tar xjf jwm-2.0.tar.bz2 # cd jwm-2.0 # ./configure --prefix=/usr --mandir=/usr/share/man \ --sysconfdir=/etc/jwm --disable-xinerama # make # strip src/jwm # cp src/jwm $fs/usr/bin # mkdir $fs/etc/jwm # cp example.jwmrc $fs/etc/jwm/system.jwmrc
Библиотеки
Команда ldd, как всегда, покажет нужные библиотеки:
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e35000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7e12000) libXft.so.2 => /usr/lib/libXft.so.2 (0xb7e00000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7df7000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7dcc000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7d5f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7d4a000) libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7d3a000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7d2c000) libc.so.6 => /lib/libc.so.6 (0xb7c1c000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c19000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c14000) libdl.so.2 => /lib/libdl.so.2 (0xb7c0f000) libm.so.6 => /lib/libm.so.6 (0xb7bea000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7bc9000)
Можно запустить Х-сервер и JWM при помощи нижеприведенной команды или создать для этого скрипт в /usr/bin/startx с тем же содержимым:
Xvesa -ac -shadow -screen 1024x768x24 & exec jwm
Специфика работы Х-сервера в SliTaz
SliTaz использует файл ~/.Xsession для запуска графической сессии. Команда startx проверяет наличие этого файла или запускает tazx, чтобы настроить систему X. Руководство пользователя по X window содержится в /usr/share/doc/slitaz/user-guide/x-window.html или на сайте проекта.
В качестве набора иконок мы выбрали Tango (tango.freedesktop.org), не скомпилированную версию. Мы взяли самый минимум — значки формата 16×16 — и поместили их в /usr/share/icons.
Чтобы протестировать JWM в создаваемом ISO, выполните следующую команду:
# Xvesa -ac -shadow -screen 800x600x24 & exec jwm
jpeg-6b — библиотеки для работы с JPEG
В этом пакете представлены библиотеки для управления форматом JPEG и некоторые мелкие утилиты:
# wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz # tar xzf jpegsrc.v6b.tar.gz # cd jpeg-6b # ./configure --enable-shared --prefix=/usr \ --mandir=/usr/share/man # make # strip .libs/* # cp -a .libs/*.so* $fs/usr/lib # cp .libs/{cjpeg,djpeg,jpegtran} $fs/usr/bin
tiff-3.8.2 — библиотеки и утилиты для формата TIFF
Здесь содержатся библиотеки для работы с форматом TIFF и несколько утилит.
# wget ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz # tar xzf tiff-3.8.2.tar.gz # cd tiff-3.8.2 # ./configure --prefix=/usr --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip _pkg/usr/bin/* # strip _pkg/usr/lib/*.so* # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
Вы можете установить только нужные вам утилиты.
links-2.1pre29 — консольный и графический веб-браузер
Links (links.twibright.com) является браузером, поддерживающим графический и текстовый режимы работы. Он переведен на многие языки, включая русский:
# cd .. # wget http://links.twibright.com/download/links-2.1pre28.tar.gz # tar xzf links-2.1pre28.tar.gz # cd links-2.1pre28 # ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \ --without-directfb --without-ssl --enable-graphics --enable-javascript # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/* # cp -v _pkg/usr/bin/* $fs/usr/bin
Библиотеки
libtiff.so.3 => /usr/lib/libtiff.so.3 libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7ede000) libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7eba000) libz.so.1 => /usr/lib/libz.so.1 (0xb7ea7000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dbb000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7db7000) libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7d96000) libm.so.6 => /lib/tls/libm.so.6 (0xb7d70000) libc.so.6 => /lib/tls/libc.so.6 (0xb7c3e000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c3b000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c36000) /lib/ld-linux.so.2 (0xb7f5d000)
Создаем initramfs и ISO-образ
Для создания ISO-образа можно использовать утилиту mktaziso из SliTaz tools. Или же можно собрать новый образ initramfs, скопировать его в rootcd/boot и создать ISO-образ при помощи genisoimage:
# cd $fs # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz # cd .. # cp rootfs.gz rootcd/boot # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \ -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ -V "SliTaz" -boot-info-table rootcd