[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Мои п[р]оделки в виде 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: