Мои п[р]оделки в виде Debian репозитория
Я тут (и не только) несколько раз пытался пиарить свои и не только поделки.
И пару раз меня останавливали словами "Товарищь, вот вы тут пиаретесь, а
где же ваш репозиторий? 21-й век на дворе, мы че, собирать руками будем? ;-) "
Это не цитата, то мое прочтение, конечно :-).
В общем, сделал я репозиторий для Debian/lenny/i386. Для других
архитектур и дистрибутивов можно собрать самому, у меня нет возможности
и времени собирать подо все, что движется. На etch точно собирается и
работает. Как я говорил, я не большой поклонник пакетной системы Debian,
поэтому не особенно большой в ней специалист. Так что если найдутся
ошибки в самих пакетах, милости просим, пишите багрепорты. Поливать
грязью тоже можно, если найдется за что, только желательно по делу ;-)
В sources.list нужно прописать такие строки
deb http://mova.org/~cheusov/pub/debian lenny main
deb-src http://mova.org/~cheusov/pub/debian lenny main
NOTE: именно lenny, а не stable. У меня время бежит по-своему.
Программы такие:
1) paexec
Если у вас есть список независимых задач или орграф задач (ребро a->b
означает "задачу b делать после успешного выполнения задачи a"),
выполнение которых нужно распределить на разнородный гетерогенный
кластер машин или процессоров, paexec - ваше всё. Понятия: команда
(исполняемый файл на любом ЯП и любой ОС), узел (машины, процессоры,
чруты и т.п.), транспорт (rsh, ssh, обвязка вокруг chroot и т.п.). В
качестве бесплатного бонуса -- fault tolerance, в смысле, если узел
упал или пропала с ним связь, отданная ему на выполнение задача
спокойно передается другому свободному узлу, когда такой
появится. Периодически узлы могут опрашиваться, а не поднялись ли
они. То есть задачи можно распределять хоть по интернету, в общем
случае по любой ненадежной сети. Результат выполнения задач
собирается на головной машине.
Эту утилиту я использую в своем distbb, bulk builder-е для пакетов
pkgsrc.
Кстати, пример классический UNIX way в чистом виде для тех, кто
интересуется.
Лицензия: MIT
2) runawk
Маленький враппер над интерпретатором AWK, который делает из него
почти нормальный язык программирования :-) , точнее "прикручивает" к
нему "модули", они же "библиотеки". В комплекте другие мелкие фишки,
смотрите документацию и примеры. Также в комплекте 32 готовых для
использования модуля. Особенно интересен power_getopt.awk, ну, просто
красиво. Я думаю, AWK способен на гораздо большее, чем принято
считать. Мной очень широко используется и по работе и для других
поделок, в том же distbb.
Лицензия: MIT
3) bmake + pkgsrc-mk-files
Это не мое. Это NetBSD-шников. Настоятельно рекомендую всем
разработчикам, у которых есть свои маленькие проекты на С или
скриптах, хотя бы посмотреть на это. С помощью этих двух пакетов (их
имеет смысл использовать вместе) разработка Makefile-ов становится не
простой, а ОЧЕНЬ простой. Это вам не autobl%%%, тьфу, automake.
Минусы естественно есть ;-) и относятся они к pkgsrc-mk-files (это
набор библиотек для bmake, упрощающий написание makefile-ов). Примеры
-- runawk и paexec написаны на bmake+pkgsrc-mk-files. Это довольно
простые, но наглядные, примеры. Недостатки и анахронизмы исправлены в
mk-configure, смотрите ниже.
Лицензия: new BSD
4) pipestatus
Я здесь о нем уже говорил. Набор шел функций для проверки статуса
завершения ВСЕХ программ в пайпе. Работает на любом шеле, даже на
говношеле Соляриса, который даже не POSIX.
Лицензия: public domain
5) libmaa - библиотека функций, портированная из testing. Часть
dictd. Нужна для paexec.
Лицензия: LGPL2+
6) mk-configure
А вот и гвоздь программы :-) Легковесная альтернатива autotools.
Заменяет automake, autoconf и libtool. Создание shared object files
поддерживается на разных платформах (в последней версии Linux,
FreeBSD, NetBSD, OpenBSD, MirOS BSD, DragonFlyBSD, Solaris, HP-UX,
Darwin, Interix) и различных компиляторах (gcc, pcc, icc,
sunpro). Планируется поддержка HURD, IRIX, OSF/1, Minix, Haiku,
AIX. Для прочей экзотики планирую сделать поддержку libtool, очень
трудно обеспечить поддержку давно вымерших Ultrix-ов и тому
подобных. Ссылку на статью о мотивации я давал недавно, но повторю.
http://mova.org/~cheusov/pub/lvee-2009/
С этой темой я ездил на конференцию LVEE, ежегодно проходящей в
Беларуси. Милости просим ;-)
Пока еще рано говорить о завершении активной фазы разработки, так что
планов еще гора. Читайте TODO, если кому интересно. Опять же,
любопытным рекомендую хотя бы ознакомиться. И за пределами autotools
есть жизнь ;-) Документация довольно скупая, но полная (README, FAQ,
mk-configure(7) ). Зато есть множество примеров, они же регрессионные
тесты. Из них основные принципы, положенные в основу, должны быть
понятны. FAQ написан в довольно агрессивной манере, написан под
впечатлением от общения с альтовцами :-) Так что какашки можно
бросать.
Лицензия: new BSD
--
Best regards, Aleksey Cheusov.
Reply to: