======Приложения и библиотеки ncurses======
Установка и настройка библиотек и приложений ncurses.
=====Введение=====
В этой главе описываются создание и установка некоторых приложений и библиотек ncurses в систему SliTaz. Данная процедура включает переход в папку ///src//, скачивание соответствующих исходников в эту папку, их распаковку, изучение файлов //README// или //INSTALL//, компиляцию и установку исполняемых файлов. Завершив установку всех файлов, мы создаем новый initramfs, копируем его в корневой каталог CD-ROM и собираем новый ISO-образ. Для последнего действия можно использовать утилиту ''mktaziso'' из состава [[ru:cookbook:slitaz-tools|SliTaz tools]].
===Назначаем переменную окружения ($fs)===
Переменная окружения не указывает путь к той или иной папке, а только имя этой папки. Зададим переменной окружения $fs путь к папке корневой файловой системы (rootfs). Для этого перейдем в рабочую папку //SliTaz/// и наберем:
# export fs=$PWD/rootfs
А для проверки выполним команду:
# echo $fs
=====ncurses-5.6 — утилиты и библиотеки для терминала=====
ncurses ([[http://dickey.his.com/ncurses/|dickey.his.com/ncurses/]]) содержит функции для отображения текста различными способами на экране терминала Linux, а также предоставляет файл terminfo. Библиотеки ncurses используют, среди прочего, retawq, nano и некоторые игры. Установим библиотеки в папку ///lib//, а всё остальное — в ///usr/bin//, и выполним команду strip для уменьшения размера исполняемых файлов:
# cd src
# wget ftp://invisible-island.net/ncurses/ncurses-5.6.tar.gz
# tar xzf ncurses-5.6.tar.gz
# cd ncurses-5.6
# ./configure --prefix=/usr \
--libdir=/lib --sysconfdir=/etc \
--infodir=/usr/share/info --mandir=/usr/share/man \
--with-shared --without-debug --without-ada
# make
# make DESTDIR=$PWD/_pkg install
# strip -v _pkg/lib/*
# strip -v _pkg/usr/bin/*
Скопируем библиотеку libncurses и некоторые приложения в будущую систему SliTaz. В конце скрипта инициализации rcS используется утилита reset, которая убирает логотип Linux при загрузке системы. При желании, вы можете скопировать сопутствующие утилиты (tic, tac, toe и т.д.). Будьте осторожны и не удалите ссылку на BusyBox:
# cp -a _pkg/lib/libncurses.so* $fs/lib
# cp -ia _pkg/usr/bin/{clear,ncurses5-config,tset,reset} \
$fs/usr/bin
Скопируем файлы terminfo, нам понадобятся всего несколько таких файлов. Если вам понадобится больше, вы можете их тоже добавить:
# mkdir -v $fs/usr/share/terminfo
# mkdir -v $fs/usr/share/terminfo/{a,l,r,v,x}
# cp _pkg/usr/share/terminfo/a/ansi \
$fs/usr/share/terminfo/a
# cp _pkg/usr/share/terminfo/l/linux \
$fs/usr/share/terminfo/l
# cp _pkg/usr/share/terminfo/r/rxvt \
$fs/usr/share/terminfo/r
# cp _pkg/usr/share/terminfo/x/{xterm,xterm-color,xterm-new,xterm-vt220} \
$fs/usr/share/terminfo/x
# cp _pkg/usr/share/terminfo/v/{vt100,vt102*} \
$fs/usr/share/terminfo/v
Скопируем файлы tabset:
# cp -a _pkg/usr/share/tabset $fs/usr/share
=====clex-3.16 — файловый менеджер=====
CLEX ([[http://www.clex.sk/|www.clex.sk]]) — это маленький файловый менеджер (160 Кб), использующий ncurses. Файл конфигурации — //~/clexrc//, а файл //~/.clexbm// содержит закладки:
# cd ..
# wget http://www.clex.sk/download/clex-3.16.tar.gz
# tar xzf clex-3.16.tar.gz
# cd clex-3.16
# ./configure --prefix=/usr --infodir=/usr/share/info \
--mandir=/usr/share/man
# make
# make DESTDIR=$PWD/_pkg install
# strip -v _pkg/usr/bin/clex
Установим бинарник clex в rootfs SliTaz:
# cp _pkg/usr/bin/clex $fs/usr/bin
===Библиотеки===
Выполнив команду ''ldd'' на clex, мы увидим его зависимости:
libncurses.so.5 => /lib/libncurses.so.5 (0x40025000)
libc.so.6 => /lib/libc.so.6 (0x40064000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
=====nano-2.0.6 — мощный текстовый редактор=====
GNU nano ([[http://www.nano-editor.org/|www.nano-editor.org]]) представляет собой хорошо известный, быстрый и эффективный текстовый редактор для Linux, поддерживающий подсветку синтакиса. В SliTaz он является текстовым редактором по умолчанию:
# cd ..
# wget http://www.nano-editor.org/dist/v2.0/nano-2.0.6.tar.gz
# tar xzf nano-2.0.6.tar.gz
# cd nano-2.0.6
# ./configure --enable-all --enable-extra --prefix=/usr \
--infodir=/usr/share/info --mandir=/usr/share/man \
--sysconfdir=/etc
# make
# make DESTDIR=$PWD/_pkg install
# strip -v _pkg/usr/bin/nano
Скопируем исполняемый файл nano и ссылку rnano в SliTaz:
# cp -a _pkg/usr/bin/* $fs/usr/bin
Скопируем файлы настроек в //_pkg/usr/share/nano// нашей rootfs:
# cp -a _pkg/usr/share/nano $fs/usr/share
===Библиотеки===
Выполнив команду ''ldd'' на nano, получим его зависимости:
libncurses.so.5 => /lib/libncurses.so.5 (0x40025000)
libc.so.6 => /lib/libc.so.6 (0x40064000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
===Локализация===
Чтобы добавить в nano перевод на другие языки, скопируем файлы с расширением .mo (они были созданы при установке nano) из папки ///usr/share/locale/(fr,en,de,es,...)/LC_MESSAGES// в папку rootfs. Пример для русского языка:
# cp -a _pkg/usr/share/locale/ru/LC_MESSAGES $fs/usr/share/locale/ru
===Настраиваем nano===
Настроить nano можно через файл ///etc/nanorc// или //~/.nanorc// для каждого пользователя системы. Именно в этих файлах вы можете определить цветовую гамму nano, которую он будет брать из файлов в папке ///usr/share/nano//. Хороший пример такого файла вы найдете в архиве nano и в [[ru:cookbook:slitaz-tools|SliTaz tools]].
Скопируем файл конфигурации nano из SliTaz tools в папку ///etc// нашей rootfs:
# cd ..
# cp -a slitaz-tools-1.1/etc/nanorc $fs/etc
=====retawq-0.2.6c — консольный веб-браузер=====
retawq ([[http://retawq.sourceforge.net/|retawq.sourceforge.net]]) — маленький консольный веб-браузер. Мы отметим совсем немного полезных опций при его конфигурации. retawq требует файлы terminfo, библиотеки libncurses и libpthread:
# wget http://switch.dl.sourceforge.net/sourceforge/retawq/retawq-0.2.6c.tar.gz
# tar xzf retawq-0.2.6c.tar.gz
# cd retawq-0.2.6c
# ./configure --enable-i18n --enable-local-cgi --path-prefix=/usr \
--path-doc=/usr/share/doc/retawq --path-man=/usr/share/man
# make
# strip -v retawq
Скопируем бинарник в SliTaz:
# cp retawq $fs/usr/bin
===Библиотеки===
libncurses.so.5 => /lib/libncurses.so.5 (0x40025000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40064000)
libc.so.6 => /lib/libc.so.6 (0x40074000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Можно скопировать библиотеку libpthread из вашей основной системы или из микропакета glibc-2.3.6, созданного разработчиками SliTaz:
# cp -a /lib/libpthread* $fs/lib
# strip --strip-unneeded $fs/lib/*
===Локализация===
Скопируем файлы .mo из папки ///i18n// архива retawq в ///usr/share/locale/(fr,en,es,...)/LC_MESSAGES//. Пример для русского языка с переименованием файла в retawq.mo:
# cp -v i18n/ru.mo $fs/usr/share/locale/ru/LC_MESSAGES/retawq.mo
===Настройка retawq===
Для настройки retawq можно использовать папку //~/.retawq//, содержащую файл конфигурации. Также можно сохранить закладки в виде html-файла в корневом каталоге пользователя. В архиве retawq или [[ru:cookbook:slitaz-tools|SliTaz tools]] вы найдете папку //examples///, содержащую файл bookmarks.html с примером списка веб-страниц. Также вы можете скопировать помощь по retawq (папка ///documents//) в ///usr/share/doc/retawq//.
=====htop-6.0.5 — диспетчер задач системы=====
htop ([[http://htop.sourceforge.net/|htop.sourceforge.net]]) отображает системные процессы, используя ncurses.
Вернемся в папку ///src//, где скачаем, распакуем, сконфигурируем, скомплируем и очистим программу (утилитой strip):
# cd ..
# wget http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.6.5.tar.gz
# tar xzf htop-0.6.5.tar.gz
# cd htop-0.6.5
# ./configure --prefix=/usr --mandir=/usr/share/man
# make
# make DESTDIR=$PWD/_pkg install
# strip -v _pkg/usr/bin/htop
Скопируем исполняемый файл htop в SliTaz:
# cp _pkg/usr/bin/htop $fs/usr/bin
Еще можно скопировать значок htop из //_pkg/usr/share/pixmaps//.
===Библиотеки===
libm.so.6 => /lib/libm.so.6 (0xb7f97000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb7f55000)
libc.so.6 => /lib/libc.so.6 (0xb7e20000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fc9000)
=====dialog-1.1.20070409 — shell-скрипты с графическим интерфейсом=====
dialog ([[http://invisible-island.net/dialog/dialog.html|invisible-island.net/dialog/dialog.html]]) — это утилита для создания консольных приложений с графическим интерфейсом:
# cd ..
# wget ftp://invisible-island.net/dialog/dialog.tar.gz
# tar xzf dialog.tar.gz
# cd dialog-1.1-20070409
# ./configure --enable-nls --with-ncurses --prefix=/usr \
--sysconfdir=/etc --mandir=/usr/share/man
# make
# make DESTDIR=$PWD/_pkg install
# strip -v _pkg/usr/bin/dialog
Скопируем в SliTaz бинарник dialog:
# cp _pkg/usr/bin/dialog $fs/usr/bin
===Библиотеки===
libncurses.so.5 => /lib/libncurses.so.5 (0x40027000)
libm.so.6 => /lib/libm.so.6 (0x40066000)
libc.so.6 => /lib/libc.so.6 (0x40089000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
===Локализация===
При желании, вы можете установить файлы локализации:
# cp -a _pkg/usr/share/locale/ru $fs/usr/share/locale
Файлы конфигурации dialog — ///etc/dialogrc// и/или //~/.dialogrc// для каждого пользователя. В исходниках программы вы найдете полноценные примеры скриптов (папка ///sample//).
=====Ninvaders-0.1.1 — клон игры Space Invaders=====
ninvaders ([[http://ninvaders.sourceforge.net/|ninvaders.sourceforge.net]]) — это клон популярной игры Space Invaders (размером 46 Кб). Как обычно, для установки программы перейдем в папку ///src//, выполним все необходимые действия, а затем скопируем исполняемый файл nInvaders в папку ///usr/games//:
# cd ..
# wget http://ovh.dl.sourceforge.net/sourceforge/ninvaders/ninvaders-0.1.1.tar.gz
# tar xzf ninvaders-0.1.1.tar.gz
# cd ninvaders-0.1.1
# make
# strip -v nInvaders
# cp nInvaders $fs/usr/games
=====bastet-0.41 — клон Bastard Tetris=====
Игра «Тетрис» (17 Кб):
# wget http://fph.altervista.org/prog/bastet-0.41.tgz
# tar xzf bastet-0.41.tgz
# cd bastet-0.41
# make
# strip bastet
# cp bastet $fs/usr/games
# mkdir -p $fs/var/games
# touch $fs/var/games/bastet.scores
# chmod 666 $fs/var/games/bastet.scores
=====rhapsody-0.28b — клиент IRC-чата=====
Rhapsody ([[http://rhapsody.sourceforge.net/|rhapsody.sourceforge.net]]) — быстрый и легкий клиент чата с поддержкой протокола IRC. Он имеет меню для управления серверами, каналами и настройками. Программа очень проста в использовании.
# cd ..
# wget http://switch.dl.sourceforge.net/sourceforge/rhapsody/rhapsody_0.28b.tgz
# tar xzf rhapsody_0.28b.tgz
# cd rhapsody-0.28b
# ./configure -i /usr/bin -d /usr/share/doc/rhapsody
# make
# strip -v rhapsody
Установим бинарник и файлы помощи в SliTaz. Изменим права доступа к этим файлам, чтобы их мог прочесть каждый пользователь:
# cp rhapsody $fs/usr/bin
# mkdir $fs/usr/share/doc/rhapsody
# cp -a help $fs/usr/share/doc/rhapsody/help
# chmod 644 $fs/usr/share/doc/rhapsody/help/*
===Библиотеки===
Rhapsody использует следующие библиотеки:
libncurses.so.5 => /lib/libncurses.so.5 (0x40026000)
libc.so.6 => /lib/libc.so.6 (0x40066000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000))
Настроить программу можно через файл //~/.rhapsodyrc// или нажав Ctrl+T для перехода в меню настроек.
=====Собираем initramfs и ISO-образ=====
Для создания нового ISO-образа можно использовать утилиту mktaziso из [[ru:cookbook:slitaz-tools|SliTaz tools]]. Или же можно собрать новый образ initramfs, скопировать его в папку ///boot// корневого каталога CD-ROM (rootcd) и создать новый 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" -input-charset iso8859-1 -boot-info-table rootcd
===Следующая глава===
В следующей главе описывается установка файлов [[locale|локализации]] и i18n (интернационализация).
----
Статью перевел [[http://forum.slitaz.org/index.php/profile/1273/Cyril|Cyril]]