К сожалению, встроенного механизма для распространения и установки дополнительного софта в
OS Inferno нет. Если вы написали модуль для
Limbo или полноценное приложение, и хотите им поделиться, то вариантов его распространения немного:
- просто выложить ваши файлы на любом сайте, и предоставить пользователям вручную устанавливать их в свою систему куда и как угодно
- использовать такие же mkfile/mkconfig файлы какие используются стандартными модулями и приложениями в
/appl/
Как вы понимаете, первый вариант — это, фактически, не вариант. :) Это возврат назад, в пещеры. Второй вариант используется, например, для всего софта в
репозитории mjl. Но и у этого подхода есть неприятные ограничения, вызванные тем, что ваши файлы в результате просто копируются в системные каталоги
/dis/
,
/module/
, etc. (точно так же, как стандартные модули и приложения из
/appl/
):
- если используется *nix как host OS, и Inferno установлена общесистемно root-ом или менеджером пакетов вашего дистрибутива, то для установки дополнительных модулей/приложений потребуются права root (либо
sudo mk
в host OS, либо sudo emu
и нативный mk
)
- глобальная установка неудобна, если хочется для своего приложения использовать модифицированную версию этих модулей/приложений
- глобальная установка неудобна, если разным приложениям нужны разные версии одного и того же модуля (mjl решает эту проблему традиционным для *nix способом добавляя номер major версии к имени модуля, что не очень элегантно и приводит к именам вроде «util0.m»)
- деинсталляция превращается в нетривиальную операцию, что в конечном итоге приводит к замусориванию системных каталогов
- имена модулей/приложений разных разработчиков могут конфликтовать (впрочем, эта проблема есть и в *nix/win, и её можно обойти используя подкаталоги в
/dis/
и /module/
с именем разработчика или его сайта)
Я хочу предложить альтернативный подход, разработанный по мотивам DJB'шного
slashpackage.
Update: этот подход был недавно принят разработчиками инферно, так что его уже можно считать не альтернативным, а официальным. :)