Это не так подзапрос как В пункте, хотя соединения в основе, по крайней мере, механизма SQL Oracle и выполнены чрезвычайно быстро.
Каждый раз, когда вам приходится иметь дело с какой-либо проблемой "распределения", вам может быть лучше рассмотреть Распределенную систему контроля версий ( DVCS).
С помощью Git, например, вы можете организовать свои пакеты как подмодули в основном проекте конфигурации emacs, который сам упоминается как подмодуль в вашем собственном проекте.
Таким образом, вы только необходимо время от времени
git submodule update --recursive
, чтобы быть уверенным, что вы получаете самые свежие пакеты, на которые ссылается ваш проект централизованной конфигурации.
Note: the recursive initialization of those submodules is a bit tricky: see this SO question for more.
Я лично использую (и рекомендую) git для хранения файлов emacs. Было бы неплохо посмотреть http://github.com/technomancy/emacs-starter-kit . Это большой набор файлов emacs, используемых многими людьми (более 600 человек смотрят репо). Поскольку они обновляются довольно регулярно, вы получаете новые версии. Также стоит взглянуть на elpa , который предназначен для упрощения управления пакетами материалов emacs.
Вы также можете узнать, как я собираюсь сохранить вместе другие изменения пакетов.
Хотя я в основном согласен с VonC и благодарен за то, что он обратил мое внимание на подмодули git, я бы не рекомендовал их тем, кто знаком с VCS, но переходил на DVCS. Теперь мне очень нравится использовать git, и я настоятельно рекомендую его, но потребовалось много работы, чтобы преодолеть этот мост.
Что касается альтернативных методов решения проблемы программного обеспечения сообщества, я также настоятельно рекомендую ELPA для пакетов, которые не поставляются пользователя Emacs. Обновления необходимо применять вручную, но, по крайней мере, ELPA предоставляет механизм, сообщающий вам о существовании обновлений. И он также предоставляет хорошую основу для добавления пакетов, предоставляемых сообществом, не размещенных в ELPA.
Наконец, вы можете подробнее рассказать о том, как вы организуете свои пакеты на основе платформы. Я стараюсь сохранить всю настройку своей платформы (и каждой машины) во встроенном Emacs lisp, чтобы использовать единый набор файлов поддержки (* .el), контролируемых исходным кодом, на всех основных платформах, с которыми я работаю: Linux (Fedora и Ubuntu) , Mac OS X и Windows (собственные и cygwin).