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