slitaz-doc-wiki-data view pages/ru/scratchbook/gtk-libs.txt @ rev 141

Added nmon to en:handbook:systemtools
author Christian Mesh meshca@clarkson.edu
date Mon Mar 19 22:00:56 2012 +0000 (2012-03-19)
parents
children
line source
1 ======Библиотеки GTK+======
3 Компиляция и установка пакетов и библиотек GTK+.
6 =====Введение=====
8 В этой главе описываются установка и настройка библиотек GTK, которые используют многие открытые программы. Вы можете просто скомпилировать и создать пакет для SliTaz, который можно будет установить командой tazpkg.
10 Компиляция приложений GTK потребует много времени и зависимостей. Руководство по этому вопросу вы найдете на странице [[http://developer.gnome.org/doc/API/2.0/gtk/gtk-building.html|gtk-building]] сайта developer.gnome.org. В этом документе акцент делается на необходимости компилировать пакеты в следующем порядке: Glib, Pango, ATK и GTK+, а затем всё остальное. Перед тем как начать процесс компиляции, убедитесь, что все зависимости установлены в вашей основной системе. Glib, Pango, ATK и GTK+ входят в группу пакетов, распространяемых командой разработчиков GTK.
13 ===Переменная окружения ($fs)===
15 Если вы не указали путь к папке rootfs, сделайте это, экспортировав соответствующую переменную:
17 <code># export fs=$PWD/rootfs</code>
19 Для проверки наберите
21 <code># echo $fs</code>
24 =====cairo-1.2.6 — библиотека двухмерной графики=====
26 Начнем с установки libcairo ([[http://www.cairographics.org/|www.cairographics.org]]), которая необходима для компиляции библиотеки pango:
28 <code>
29 # cd src
30 # wget http://cairographics.org/releases/cairo-1.2.6.tar.gz
31 # tar xzf cairo-1.2.6.tar.gz
32 # cd cairo-1.2.6
33 # ./configure --prefix=/usr --mandir=/usr/share/man \
34 --with-html-dir=/usr/share/doc
35 # make
36 # make DESTDIR=$PWD/_pkg install
37 # strip -v _pkg/usr/lib/*.so*
38 </code>
40 ===Установим ее в rootfs:===
42 <code># cp -av _pkg/usr/lib/*.so* $fs/usr/lib</code>
45 =====glib-2.12.4 — алгоритмы языка C=====
47 <code>
48 # cd ..
49 # wget ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.4.tar.bz2
50 # tar xjf glib-2.12.4.tar.bz2
51 # cd glib-2.12.4
52 # ./configure --prefix=/usr --sysconfdir=/etc \
53 --mandir=/usr/share/man --with-html-dir=/usr/share/doc
54 # make
55 # make DESTDIR=$PWD/_pkg install
56 # strip -v _pkg/usr/bin/*
57 # strip -v _pkg/usr/lib/*.so*
58 </code>
60 ===Установим этот пакет в rootfs===
62 Если вам понадобится установить также утилиты glib-genmarshal и gobject-query, то им нужна библиотека ///lib/tls/librt.so.1//:
64 <code>
65 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
66 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
67 </code>
69 Скопируем исполняемые файлы:
71 <code># cp -a _pkg/usr/bin/* $fs/usr/bin</code>
74 =====pango-1.14.8 — библиотека для отображения и размещения текста=====
76 <code>
77 # cd ..
78 # wget ftp://ftp.gtk.org/pub/pango/1.14/pango-1.14.8.tar.bz2
79 # tar xjf pango-1.14.8.tar.bz2
80 # cd pango-1.14.8
81 # ./configure --prefix=/usr --sysconfdir=/etc \
82 --mandir=/usr/share/man --with-html-dir=/usr/share/doc
83 # make
84 # make DESTDIR=$PWD/_pkg install
85 # strip -v _pkg/usr/bin/*
86 # strip -v _pkg/usr/lib/*.so*
87 # strip -v _pkg/usr/lib/pango/1.5.0/modules/*
88 </code>
90 ===Установим ее в rootfs:===
92 <code>
93 # cp -a _pkg/usr/bin/* $fs/usr/bin
94 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
95 # cp -a _pkg/usr/lib/pango $fs/usr/lib
96 # rm -rf $fs/usr/lib/pango/1.5.0/modules/*.la
97 # cp -a _pkg/etc $fs
98 </code>
100 Создадим файл ///etc/pango.modules// в chroot-окружении rootfs (pango-querymodules использует библиотеку librt.so.1):
102 <code>
103 # chroot $fs /bin/ash
104 /# pango-querymodules > /etc/pango/pango.modules
105 # exit
106 </code>
109 =====atk-1.12.4 — пакет для людей с ограниченными возможностями=====
111 <code>
112 # cd ..
113 # wget http://ftp.gnome.org/pub/gnome/sources/atk/1.12/atk-1.12.4.tar.bz2
114 # tar xjf atk-1.12.4.tar.bz2
115 # cd atk-1.12.4
116 # ./configure --prefix=/usr --mandir=/usr/share/man \
117 --with-html-dir=/usr/share/doc
118 # make
119 # make DESTDIR=$PWD/_pkg install
120 # strip -v _pkg/usr/lib/*.so*
121 </code>
123 ===Установим его в rootfs:===
125 <code>
126 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
127 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
128 </code>
131 =====gtk+-2.8.20 — набор инструментов из состава GIMP=====
133 <code>
134 # cd ..
135 # wget ftp://ftp.gtk.org/pub/gtk/v2.8/gtk+-2.8.20.tar.bz2
136 # tar xjf gtk+-2.8.20.tar.bz2
137 # cd gtk+-2.8.20
138 # ./configure --prefix=/usr --sysconfdir=/etc \
139 --mandir=/usr/share/man --with-html-dir=/usr/share/doc
140 # make
141 # make DESTDIR=$PWD/_pkg install
142 # strip -v _pkg/usr/bin/*
143 # strip -v _pkg/usr/lib/*.so*
144 # strip -v --strip-unneeded \
145 _pkg/usr/lib/gtk-2.0/2.4.0/*/*
146 </code>
148 ===Установим данный пакет в rootfs:===
150 <code>
151 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
152 # mkdir $fs/usr/lib/gtk-2.0
153 # cp -a _pkg/usr/lib/gtk-2.0/2.4.0 $fs/usr/lib/gtk-2.0
154 # rm -rf $fs/usr/lib/gtk-2.0/2.4.0/*/*.la
155 </code>
157 Скопируем локали и темы:
159 <code>
160 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale
161 # cp -a _pkg/usr/share/themes $fs/usr/share
162 </code>
164 Скопируем сами приложения:
166 <code>
167 # cp _pkg/usr/bin/gtk-query-immodules-2.0 $fs/usr/bin
168 # cp _pkg/usr/bin/gtk-update-icon-cache $fs/usr/bin
169 # cp _pkg/usr/bin/gdk-pixbuf-csource $fs/usr/bin
170 # cp _pkg/usr/bin/gdk-pixbuf-query-loaders $fs/usr/bin
171 ...
172 </code>
174 Скопируем всё, что понадобится приложению gtk-demo:
176 <code>
177 # cp -a _pkg/usr/bin/gtk-demo $fs/usr/bin
178 # cp -a _pkg/usr/share/gtk-2.0 $fs/usr/share
179 </code>
181 Создадим файлы ///etc/gtk-2.0/gtk.immodules// и //gdk-pixbuf.loaders// в chroot-окружении rootfs:
183 <code>
184 # chroot $fs /bin/ash
185 /# mkdir /etc/gtk-2.0
186 /# gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
187 /# gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders
188 # exit
189 </code>
191 На данной стадии можно протестировать работу GTK+ и приложения gtk-demo, создав ISO и загрузив его в qemu. Также можно скомпилировать маленькое приложение GTK+ (например, Leafpad) и протестировать его тоже. Компиляция и установка приложений GTK, входящих в состав SliTaz, описаны в следующей главе под названием [[gtk-apps|Приложения GTK]].
194 =====Создаем initramfs и ISO-образ=====
196 Для создания ISO-образа можно использовать утилиту mktaziso из [[ru:cookbook:slitaz-tools|SliTaz tools]]. Или же можно собрать новый образ initramfs, скопировать его в rootcd/boot и создать ISO-образ при помощи genisoimage:
198 <code>
199 # cd $fs
200 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
201 # cd ..
202 # cp rootfs.gz rootcd/boot
203 # genisoimage -R -o slitaz-cooking.iso -b boot/isolinux/isolinux.bin \
204 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
205 -V "SliTaz" -boot-info-table rootcd
206 </code>
209 ===Следующая глава===
211 Поговорив о библиотеках, перейдем к рассмотрению [[gtk-apps|приложений GTK+]].
213 ----
214 Статью перевел [[http://forum.slitaz.org/index.php/profile/1273/Cyril|Cyril]]