Table of Contents
Приложения и библиотеки ncurses
Установка и настройка библиотек и приложений ncurses.
Введение
В этой главе описываются создание и установка некоторых приложений и библиотек ncurses в систему SliTaz. Данная процедура включает переход в папку /src, скачивание соответствующих исходников в эту папку, их распаковку, изучение файлов README или INSTALL, компиляцию и установку исполняемых файлов. Завершив установку всех файлов, мы создаем новый initramfs, копируем его в корневой каталог CD-ROM и собираем новый ISO-образ. Для последнего действия можно использовать утилиту mktaziso
из состава SliTaz tools.
Назначаем переменную окружения ($fs)
Переменная окружения не указывает путь к той или иной папке, а только имя этой папки. Зададим переменной окружения $fs путь к папке корневой файловой системы (rootfs). Для этого перейдем в рабочую папку SliTaz/ и наберем:
# export fs=$PWD/rootfs
А для проверки выполним команду:
# echo $fs
ncurses-5.6 — утилиты и библиотеки для терминала
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 (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 (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 и в SliTaz tools.
Скопируем файл конфигурации nano из SliTaz tools в папку /etc нашей rootfs:
# cd .. # cp -a slitaz-tools-1.1/etc/nanorc $fs/etc
retawq-0.2.6c — консольный веб-браузер
retawq (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 или SliTaz tools вы найдете папку examples/, содержащую файл bookmarks.html с примером списка веб-страниц. Также вы можете скопировать помощь по retawq (папка /documents) в /usr/share/doc/retawq.
htop-6.0.5 — диспетчер задач системы
htop (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 (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 (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 (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 из 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
Следующая глава
В следующей главе описывается установка файлов локализации и i18n (интернационализация).
Статью перевел Cyril