======Оконная система X====== Установка и базовая настройка системы Х. =====Введение===== В этой главе описываются установка и настройка иксов в SliTaz. Мы установим библиотеки для expat, XML, шрифтов, графический сервер (Xvesa), эмулятор терминала (xterm), оконный менеджер (JWM) и различные мелкие утилиты. Также поставим библиотеки для JPEG-изображений и браузер Links. ===Переменные окружения ($fs)=== Если у вас еще не указан путь к папке rootfs, экспортируйте соответствующую переменную окружения: # export fs=$PWD/rootfs Для проверки можно ввести: # echo $fs =====expat-2.0.0 — библиотека анализатора XML===== Expat ([[http://expat.sourceforge.net/|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 ([[http://www.freetype.org/|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 ([[http://www.fontconfig.org/wiki/|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 ([[http://www.xfree86.org/|www.xfree86.org]]) и шрифтов, предоставляемых Xfree86.org. Мы также могли бы скопировать библиотеки Xorg из основной системы, которая будет использоваться для компиляции Х-приложений, но Xvesa сам по себе хорошо работает и при этом значительно проще. Также можно пересобрать [[xorg|пакеты 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|пакета 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 ([[http://invisible-island.net/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 ([[http://libpng.org/pub/png/libpng.html|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, [[http://www.joewing.net/programs/jwm/|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 ([[http://tango.freedesktop.org/|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 ([[http://links.twibright.com/|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 из [[ru:cookbook:slitaz-tools|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 ===Следующая глава=== В главе [[gtk-libs|Библиотеки GTK+]] мы поговорим об установке библиотек GTK. ---- Статью перевел [[http://forum.slitaz.org/index.php/profile/1273/Cyril|Cyril]]