Программа написана на чистом C. Нет никаких зависимостей.
Заходим на официальный сайт: figlet.org. Там есть ссылка на архив с исходниками: ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz. Скачать его можно с помощью wget:
wget ftp://ftp.figlet.org/pub/figlet/program/unix/figlet-2.2.5.tar.gz
Распаковываем архив:
tar -xzvf figlet-2.2.5.tar.gz
cd figlet-2.2.5 # и переходим в появившуюся папку
Теперь нам нужно собрать проект с помощью команды make:
make
После выполнения этой команды у нас появились четыре бинарника: figlet, chkfont, figlist, showfigfonts. То есть по сути собрались четыре утилиты. figlet – это основная утилита, а остальные – вспомогательные. Что происходит под капотом во время собрки. Файл Makefile содержит правила, как из файлов .c (или .cpp) собрать объектные файлы .o. То есть, например, файл figlet.c превращается в figlet.o. Так же собираются и другие модули: например, inflate.c → inflate.o. Затем происходит линковка: объектные файлы .o соединяется в исполняемый файл figlet. Это уже готовая программа, но она лежит в текущей папке.
Программа собралась. Запустим бинарник и попробуем вывести слово "Hello":
./figlet Hello
# figlet: standard: Unable to open font file
В ответ я получаю ошибку о том, что не удалось найти файл со шрифтом. Это произошло, потому что наша программа ещё не установлена в систему и если в системе нет нужных ей шрифтов, то программа не может запуститься. Шрифты находятся в текущем каталоге в папке fonts. Нам нужно либо указать путь к папке со шрифтами, либо путь к конкретному шрифту.
# Либо указываем путь к папке:
./figlet -d fonts Hello
# Либо путь к конкретному шрифту:
./figlet -f fonts/standard.flf Hello
Вот таким образом программу можно запускать сразу же, без установки в систему.
Далее нам нужно установить программу в систему. Для этого выполняем команду:
sudo make install
Эта команда копирует все необходимые для работы программы файлы по сценарию, указанному в Makefile. После её выполнения наши четыре бинарника скопировались в папку /usr/local/bin/. Шрифты скопировались в /usr/local/share/figlet/. А man-страницы – в /usr/local/man/man6/. Там 4 файла – по одному на каждую из четырёх утилит. Посмотреть файл документации можно вот так:
man 6 figlet
man 6 chkfont
man 6 figlist
man 6 showfigfonts
# Или запустить файлы напрямую:
man /usr/local/man/man6/figlet.6
man /usr/local/man/man6/chkfont.6
man /usr/local/man/man6/figlist.6
man /usr/local/man/man6/showfigfonts.6
Если бы мы не хотели засорять систему, можно было бы поставить программу в домашний каталог таким вот образом:
make PREFIX=$HOME/.local install
Это установило бы программу в домашний каталог в ~/.local/bin/figlet/.
Теперь программа установлена и мы можем запускать её:
figlet Hello
Проверить шрифт:
chkfont fonts/standard.flf
Список шрифтов:
figlist
Проверить как отображают одну надпись разные шрифты:
showfigfonts Hello
# Можно также явно указать папку со шрифтами:
showfigfonts -d fonts Hello
Удаление программы происходит вручную, т.к. никакого uninstall-скрипта тут нет.
Всю информацию о том, куда происходила установка, можно узнать из Makefile и затем всё удалить:
# Удаляем бинарники:
sudo rm /usr/local/bin/figlet \
/usr/local/bin/chkfont \
/usr/local/bin/figlist \
/usr/local/bin/showfigfonts
# Удаляем шрифты:
sudo rm -r /usr/local/share/figlet
# Удаляем man-странички:
sudo rm /usr/local/man/man6/figlet.6
sudo rm /usr/local/man/man6/chkfont.6
sudo rm /usr/local/man/man6/showfigfonts.6
sudo rm /usr/local/man/man6/figlist.6