slitaz-doc-wiki-data view pages/ru/scratchbook/x-window-system.txt @ rev 2

Add pages/ru folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 12:11:48 2011 +0000 (2011-02-26)
parents
children
line source
1 ======Оконная система X======
3 Установка и базовая настройка системы Х.
6 =====Введение=====
8 В этой главе описываются установка и настройка иксов в SliTaz. Мы установим библиотеки для expat, XML, шрифтов, графический сервер (Xvesa), эмулятор терминала (xterm), оконный менеджер (JWM) и различные мелкие утилиты. Также поставим библиотеки для JPEG-изображений и браузер Links.
11 ===Переменные окружения ($fs)===
13 Если у вас еще не указан путь к папке rootfs, экспортируйте соответствующую переменную окружения:
15 <code># export fs=$PWD/rootfs</code>
17 Для проверки можно ввести:
19 <code># echo $fs</code>
22 =====expat-2.0.0 — библиотека анализатора XML=====
24 Expat ([[http://expat.sourceforge.net/|expat.sourceforge.net]]) содержит библиотеки анализатора XML:
26 <code>
27 # cd ..
28 # wget http://switch.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz
29 # tar xzf expat-2.0.0.tar.gz
30 # cd expat-2.0.0
31 # ./configure --sysconfdir=/etc --prefix=/usr \
32 --mandir=/usr/share/man
33 # make
34 # make DESTDIR=$PWD/_pkg install
35 # strip -v _pkg/usr/lib/*
36 # strip -v _pkg/usr/bin/*
37 </code>
39 После этого установим xterm, который опирается на библиотеку libexpat.so.0, создадим ему символическую ссылку, и все дела! Теперь можно установить приложение xmlwf с его библиотеками в rootfs:
41 <code>
42 # cd _pkg/usr/lib
43 # ln -s libexpat.so.1.5.0 libexpat.so.0
44 # cp -a *.so* $fs/usr/lib
45 # cd ..
46 # cp -a bin/* $fs/usr/bin
47 # cd ../..
48 </code>
51 ===Библиотеки===
53 xmlwf использует следующие библиотеки:
55 <file>
56 libexpat.so.1 => /usr/lib/libexpat.so.1 (0x40021000)
57 libc.so.6 => /lib/tls/libc.so.6 (0x40041000)
58 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
59 </file>
62 =====freetype-2.3.1 — библиотеки системных шрифтов=====
64 Пакет freetype ([[http://www.freetype.org/|www.freetype.org]]) содержит библиотеки, используемые Х-сервером, для настройки системных шрифтов:
66 <code>
67 # cd ..
68 # wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.1.tar.bz2
69 # tar xjf freetype-2.3.1.tar.bz2
70 # cd freetype-2.3.1
71 # ./configure --sysconfdir=/etc --prefix=/usr \
72 --mandir=/usr/share/man
73 # make
74 # make DESTDIR=$PWD/_pkg install
75 # strip -vs _pkg/usr/lib/*
76 # cp -a _pkg/usr/bin/* $fs/usr/bin
77 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
78 </code>
81 =====fontconfig-2.4.2 — утилиты управления шрифтами=====
83 Пакет fontconfig ([[http://www.fontconfig.org/wiki/|www.fontconfig.org/wiki/]]) предоставляет библиотеку libfontconfig, которую используют многие Х-программы. Кстати, XFree86 также ее содержит. Мы выбрали оригиальный пакет, т.к. он работает лучше в JWM:
85 <code>
86 # cd ..
87 # wget http://fontconfig.org/release/fontconfig-2.4.2.tar.gz
88 # tar xzf fontconfig-2.4.2.tar.gz
89 # cd fontconfig-2.4.2
90 # ./configure --sysconfdir=/etc --prefix=/usr \
91 --mandir=/usr/share/man --localstatedir=/var
92 # make
93 # make DESTDIR=$PWD/_pkg install
94 # strip -v _pkg/usr/bin/*
95 # strip -v _pkg/usr/lib/*
96 # cp -a _pkg/usr/bin/* $fs/usr/bin
97 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
98 # cp -a _pkg/etc $fs
99 # cp -a _pkg/var $fs
100 </code>
103 ===Библиотеки===
105 Выполним команду ldd на fc-cache и получим требуемые библиотеки. Можно также использовать libfreetype из XFree86:
107 <file>
108 libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7f12000)
109 libz.so.1 => /usr/lib/libz.so.1 (0xb7eff000)
110 libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7edf000)
111 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7eb0000)
112 libc.so.6 => /lib/tls/libc.so.6 (0xb7d7b000)
113 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7f8c000)
114 </file>
117 =====Xserver — графический сервер Xvesa из состава Xfree86=====
119 Мы будем использовать двоичные версии сервера Xvesa ([[http://www.xfree86.org/|www.xfree86.org]]) и шрифтов, предоставляемых Xfree86.org. Мы также могли бы скопировать библиотеки Xorg из основной системы, которая будет использоваться для компиляции Х-приложений, но Xvesa сам по себе хорошо работает и при этом значительно проще. Также можно пересобрать [[xorg|пакеты Xorg]] в вашей рабочей системе.
122 ===Сервер Xtinyx от Xvesa===
124 Сервер Xvesa очень легкий и использует крохотные библиотеки. Он содержится в архиве Xtinyx.tgz. Скачаем и установим его в ///usr/bin// папки rootfs SliTaz:
126 <code>
127 # cd ..
128 # mkdir -p XFree86-4.6.0 && cd XFree86-4.6.0
129 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xtinyx.tgz
130 # tar xzf Xtinyx.tgz
131 # cp bin/Xvesa $fs/usr/bin
132 # strip $fs/usr/bin/Xvesa
133 # chmod 4711 $fs/usr/bin/Xvesa
134 </code>
137 ===Библиотеки для Xvesa===
139 <file>
140 libz.so.1 => /usr/lib/libz.so.1 (0xb7ed6000)
141 libm.so.6 => /lib/tls/libm.so.6 (0xb7eb1000)
142 libc.so.6 => /lib/tls/libc.so.6 (0xb7d7e000)
143 /lib/ld-linux.so.2 (0xb7ef8000)
144 </file>
147 ===rgb.txt — RGB-цвета в X-сервере===
149 Конфигурационный файл для настройки цветовой гаммы Х-сервера носит название rgb.txt; советуем скопировать его в основную систему. Библиотека libX11.so будет искать файлы настроек в папке ///usr/share/X11//, а сервер Xvesa — в ///usr/X11R6/lib/X11//; для этого создадим ссылку на ///usr/share/X11//:
151 <code>
152 # mkdir -p $fs/usr/share/X11
153 # cp /usr/share/X11/rgb.txt $fs/usr/share/X11
154 # chroot $fs /bin/ash
155 /# mkdir -p /usr/X11R6/lib/X11/
156 /# ln -s /usr/share/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt
157 /# exit
158 </code>
161 ===Xfnts — шрифты===
163 Чтобы управлять сервером, нам понадобится базовый набор шрифтов. Их можно скачать с сайта xfree86.org, а затем скомпилировать соответствующие пакеты из Xorg или взять их из основной системы. Системные шрифты можно располагать по разным папкам, а кеш обновлять утилитой lc-cache. Не забывайте: шрифты отнимают драгоценное пространство, поэтому устанавливайте только самые необходимые. Папка ///usr/share/fonts// содержит шрифты TrueType, например, bitstream-vera:
165 <code>
166 # wget http://ftp.xfree86.org/pub/XFree86/4.6.0/binaries/Linux-ix86-glibc23/Xfnts.tgz
167 # tar xzf Xfnts.tgz
168 # mkdir -p $fs/usr/X11R6/lib/X11/fonts
169 # mkdir -p $fs/usr/share/fonts/truetype
170 </code>
172 Скопируем шрифты:
174 <code>
175 (# cp -a lib/X11/fonts/* $fs/usr/X11R6/lib/X11/fonts)
176 (# cp -a /usr/share/fonts/truetype/* $fs/usr/share/fonts/truetype
177 </code>
179 После этого заново создадим файл fonts.dir, для этого запустим утилиту mkfontdir и укажем нужную папку:
181 <code># mkfontdir $fs/usr/X11R6/lib/X11/fonts/75dpi</code>
183 Файлы конфигурации fontconfig можно найти в ///etc/fonts// из пакета fontconfig. Теперь можно запустить fc-cache, чтобы обновить кеш, и fc-list для вывода списка доступных шрифтов. Эти команды можно запускать из chroot-окружения rootfs:
185 <code>
186 # chroot $fs /bin/ash
187 # fc-cache -v
188 # fc-list
189 # exit
190 </code>
193 ===Xlib locale — файлы раскладок клавиатуры===
195 В SliTaz мы установили 4 локали: C, iso8859-1, iso8859-15 и iso 8859-2 из [[xorg|пакета Xorg]]. Вы можете взять эти файлы из основной системы или из пакета XFree86. Для примера скопируем локали из основной системы:
197 <code>
198 # mkdir -p $fs/usr/share/X11/locale
199 # cp -a /usr/share/X11/locale/* $fs/usr/share/X11/locale
200 </code>
203 ===Использование X===
205 Xvesa можно использовать в качестве Х-терминала, если в вашей сети есть компьютер, способный принимать XDMCP-соединения. Для этого можно запустить сервер с опцией //-query//, например:
207 <code># Xvesa -ac -shadow -screen 1024x768x24 -query 192.168.0.2</code>
210 =====xterm — эмулятор терминала=====
212 Пакет xterm ([[http://invisible-island.net/xterm/|invisible-island.net/xterm/]]) предоставляет эмулятор терминала для Х-сервера:
214 <code>
215 # wget ftp://invisible-island.net/xterm/xterm-223.tgz
216 # tar xzf xterm-223.tgz
217 # cd xterm-223
218 # ./configure --prefix=/usr --sysconfdir=/etc \
219 --mandir=/usr/share/man --localstatedir=/var \
220 --with-app-defaults=/usr/share/X11/app-defaults \
221 --build=i486-pc-linux-gnu --host=i486-pc-linux-gnu
222 # make
223 # make DESTDIR=$PWD/_pkg install
224 # strip _pkg/usr/bin/*
225 # cp _pkg/usr/bin/* $fs/usr/bin
226 # cp -a _pkg/usr/share/X11/* $fs/usr/share/X11
227 </code>
230 ===Библиотеки===
232 Выполним команду ldd на XTerm, а затем команды copy и strip, чтобы скопировать недостающие библиотеки из основной системы:
234 <file>
235 libXft.so.2 => /usr/lib/libXft.so.2 (0xb7f09000)
236 libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7f00000)
237 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7ed5000)
238 libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e68000)
239 libz.so.1 => /usr/lib/libz.so.1 (0xb7e54000)
240 libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d68000)
241 libXaw.so.7 => /usr/lib/libXaw.so.7 (0xb7d0f000)
242 libXmu.so.6 => /usr/lib/libXmu.so.6 (0xb7cfa000)
243 libXext.so.6 => /usr/lib/libXext.so.6 (0xb7cec000)
244 libXt.so.6 => /usr/lib/libXt.so.6 (0xb7c9e000)
245 libSM.so.6 => /usr/lib/libSM.so.6 (0xb7c96000)
246 libICE.so.6 => /usr/lib/libICE.so.6 (0xb7c7f000)
247 libncurses.so.5 => /lib/libncurses.so.5 (0xb7c3c000)
248 libc.so.6 => /lib/libc.so.6 (0xb7b2c000)
249 libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7b0b000)
250 libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b08000)
251 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7b03000)
252 libdl.so.2 => /lib/libdl.so.2 (0xb7aff000)
253 libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7aee000)
254 </file>
257 =====libpng-1.2.18 — библиотеки для работы с форматом PNG=====
259 Библиотеки для PNG ([[http://libpng.org/pub/png/libpng.html|libpng.org/pub/png/libpng.html]]) используются для управления изображениями в формате PNG:
261 <code>
262 # wget http://puzzle.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.18.tar.bz2
263 # tar xjf libpng-1.2.18.tar.bz2
264 # cd libpng-1.2.18
265 # ./configure --enable-shared --prefix=/usr \
266 --mandir=/usr/share/man
267 # make
268 # make DESTDIR=$PWD/_pkg install
269 # strip _pkg/usr/lib/*.so*
270 # cp -a _pkg/usr/lib/libpng12.so* $fs/usr/lib
271 # cp -a _pkg/usr/bin/libpng12* $fs/usr/bin
272 </code>
275 =====jwm-2.0 — менеджер окон=====
277 Оконный менеджер Джо (Joe's Window Manager, [[http://www.joewing.net/programs/jwm/|www.joewing.net/programs/jwm/]]) — потрясающе легкий и дружественный менеджер окон. В SliTaz он является оконным менеджером по умолчанию. Основной файл конфигурации (///etc/jwm/system.jwnrc//) содержит настройки стиля и меню настроек:
279 <code>
280 # cd ..
281 # wget http://www.joewing.net/programs/jwm/releases/jwm-2.0.tar.bz2
282 # tar xjf jwm-2.0.tar.bz2
283 # cd jwm-2.0
284 # ./configure --prefix=/usr --mandir=/usr/share/man \
285 --sysconfdir=/etc/jwm --disable-xinerama
286 # make
287 # strip src/jwm
288 # cp src/jwm $fs/usr/bin
289 # mkdir $fs/etc/jwm
290 # cp example.jwmrc $fs/etc/jwm/system.jwmrc
291 </code>
294 ===Библиотеки===
296 Команда ldd, как всегда, покажет нужные библиотеки:
298 <file>
299 libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e35000)
300 libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7e12000)
301 libXft.so.2 => /usr/lib/libXft.so.2 (0xb7e00000)
302 libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7df7000)
303 libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7dcc000)
304 libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7d5f000)
305 libz.so.1 => /usr/lib/libz.so.1 (0xb7d4a000)
306 libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb7d3a000)
307 libXext.so.6 => /usr/lib/libXext.so.6 (0xb7d2c000)
308 libc.so.6 => /lib/libc.so.6 (0xb7c1c000)
309 libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c19000)
310 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c14000)
311 libdl.so.2 => /lib/libdl.so.2 (0xb7c0f000)
312 libm.so.6 => /lib/libm.so.6 (0xb7bea000)
313 libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7bc9000)
314 </file>
316 Можно запустить Х-сервер и JWM при помощи нижеприведенной команды или создать для этого скрипт в ///usr/bin/startx// с тем же содержимым:
318 <file>Xvesa -ac -shadow -screen 1024x768x24 & exec jwm</file>
321 ===Специфика работы Х-сервера в SliTaz===
323 SliTaz использует файл //~/.Xsession// для запуска графической сессии. Команда //startx// проверяет наличие этого файла или запускает tazx, чтобы настроить систему X. Руководство пользователя по X window содержится в ///usr/share/doc/slitaz/user-guide/x-window.html// или на сайте проекта.
325 В качестве набора иконок мы выбрали Tango ([[http://tango.freedesktop.org/|tango.freedesktop.org]]), не скомпилированную версию. Мы взяли самый минимум — значки формата 16×16 — и поместили их в ///usr/share/icons//.
327 Чтобы протестировать JWM в создаваемом ISO, выполните следующую команду:
329 <code># Xvesa -ac -shadow -screen 800x600x24 & exec jwm</code>
332 =====jpeg-6b — библиотеки для работы с JPEG=====
334 В этом пакете представлены библиотеки для управления форматом JPEG и некоторые мелкие утилиты:
336 <code>
337 # wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
338 # tar xzf jpegsrc.v6b.tar.gz
339 # cd jpeg-6b
340 # ./configure --enable-shared --prefix=/usr \
341 --mandir=/usr/share/man
342 # make
343 # strip .libs/*
344 # cp -a .libs/*.so* $fs/usr/lib
345 # cp .libs/{cjpeg,djpeg,jpegtran} $fs/usr/bin
346 </code>
349 =====tiff-3.8.2 — библиотеки и утилиты для формата TIFF=====
351 Здесь содержатся библиотеки для работы с форматом TIFF и несколько утилит.
353 <code>
354 # wget ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz
355 # tar xzf tiff-3.8.2.tar.gz
356 # cd tiff-3.8.2
357 # ./configure --prefix=/usr --mandir=/usr/share/man
358 # make
359 # make DESTDIR=$PWD/_pkg install
360 # strip _pkg/usr/bin/*
361 # strip _pkg/usr/lib/*.so*
362 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
363 </code>
365 Вы можете установить только нужные вам утилиты.
368 =====links-2.1pre29 — консольный и графический веб-браузер=====
370 Links ([[http://links.twibright.com/|links.twibright.com]]) является браузером, поддерживающим графический и текстовый режимы работы. Он переведен на многие языки, включая русский:
372 <code>
373 # cd ..
374 # wget http://links.twibright.com/download/links-2.1pre28.tar.gz
375 # tar xzf links-2.1pre28.tar.gz
376 # cd links-2.1pre28
377 # ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
378 --without-directfb --without-ssl --enable-graphics --enable-javascript
379 # make
380 # make DESTDIR=$PWD/_pkg install
381 # strip -v _pkg/usr/bin/*
382 # cp -v _pkg/usr/bin/* $fs/usr/bin
383 </code>
386 ===Библиотеки===
388 <file>
389 libtiff.so.3 => /usr/lib/libtiff.so.3
390 libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7ede000)
391 libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7eba000)
392 libz.so.1 => /usr/lib/libz.so.1 (0xb7ea7000)
393 libX11.so.6 => /usr/lib/libX11.so.6 (0xb7dbb000)
394 libdl.so.2 => /lib/tls/libdl.so.2 (0xb7db7000)
395 libpcre.so.0 => /usr/lib/libpcre.so.0 (0xb7d96000)
396 libm.so.6 => /lib/tls/libm.so.6 (0xb7d70000)
397 libc.so.6 => /lib/tls/libc.so.6 (0xb7c3e000)
398 libXau.so.6 => /usr/lib/libXau.so.6 (0xb7c3b000)
399 libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7c36000)
400 /lib/ld-linux.so.2 (0xb7f5d000)
401 </file>
404 =====Создаем initramfs и ISO-образ=====
406 Для создания ISO-образа можно использовать утилиту mktaziso из [[ru:cookbook:slitaz-tools|SliTaz tools]]. Или же можно собрать новый образ initramfs, скопировать его в rootcd/boot и создать ISO-образ при помощи genisoimage:
408 <code>
409 # cd $fs
410 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
411 # cd ..
412 # cp rootfs.gz rootcd/boot
413 # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \
414 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
415 -V "SliTaz" -boot-info-table rootcd
416 </code>
419 ===Следующая глава===
421 В главе [[gtk-libs|Библиотеки GTK+]] мы поговорим об установке библиотек GTK.
423 ----
424 Статью перевел [[http://forum.slitaz.org/index.php/profile/1273/Cyril|Cyril]]