/config.mk |
настройки данной инсталяции Contenido |
/bin |
служебные скрипты (зарезервировано для будущего использования) |
/src |
исходные тексты |
/src/core |
исходные тексты ядра |
/src/projects |
исходные тексты проектов |
/src/projects/afisha2 |
исходные тексты проекта afisha2 (пример) |
/src/plugins |
исходные тексты плагинов |
/src/plugins/session |
исходные тексты плагина session (пример) |
/tmp |
временные файлы |
/tmp/projects |
временные файлы проектов |
/tmp/projects/afisha2 |
временные файлы проекта afisha2 (пример) |
/usr |
рабочий каталог |
/usr/core |
рабочая версия ядра |
/usr/local |
локально установленные программы и модули (из портов Contenido) |
/usr/projects |
рабочие версии проектов |
/usr/projects/afisha2 |
рабочая версия проекта afisha2 (пример) |
/var |
разное |
/var/log |
логи инсталляции |
/var/ports |
служебные каталоги портов Contenido |
/var/projects |
файлы проектов |
/var/projects/afisha2 |
файлы проекта afisha2 (пример) |
/var/projects/afisha2/log |
логи проекта afisha2 (пример) |
/var/projects/afisha2/mason |
кэш масона проекта afisha2 (пример) |
/var/projects/afisha2/run |
pid файлы проекта afisha2 (пример) |
./var/ports/
Этот каталог используется для установки модулей. После make install в ./var/ports/distfiles/ лежат дистрибутивы всех модулей, которые были установлены локально. В ./var/ports/work/ - развернутые дистрибутивы. В ./var/ports/db/ - информация о всех используемых в песочнице модулях, включая версии. Собственно, локальные дистрибутивы после установки только занимают место, поэтому их следует удалить командами make ports_clean и make ports_distclean.
./var/ и ./var/projects/
Данный каталог доступен внутри среды и может быть использован для хранения любых файлов и структур, используемых в инсталляции и во всех проектах инсталляции, в том числе лог-файлов работы скриптов и веб-сервера бэкенда. Путь к ./var/projects/someproject/ всегда доступен через объект $state проекта.
./tmp/
Как нетрудно догадаться – структура внутренних каталогов предназначена для различного рода временных файлов. Путь к ./tmp/projects/someproject/ всегда доступен через объект $state проекта.
./usr/local/
Здесь находится собственно сборка всех модулей песочницы. При установке, независимо от наличия глобально установленных модулей, внутри собирается Apache с встроенным mod_perl и mason-хендлером. Остальные приложения и библиотеки устанавливаются с оглядкой на глобальные установки.
Также, при выборе локальной СУБД (в момент настройки cndinst) в песочнице собирается локальный PostgreSQL.
./usr/core/ ./usr/projects/ ./usr/plugins/
Внутри данных каталогов в результате использования команд make cin, make pin, make plin собираются рабочие версии, соответственно, ядра, проектов и плагинов. Команда make conf собирает там же все рабочие конфиги. Данные каталоги переписываются каждый раз по выполнению соответствующей команды, так что нет смысла вносить поправки внутри них. Более того, существует опасность (и прецеденты, конечно) потери внесенных полезных изменений.
./src/
Внутри данного каталога хранятся все исходные файлы ядра, проектов и подключаемых плагинов. С этими файлами работает программист, эти файлы находятся под управлением subversion, соответственно, внутри данных каталогов находится дополнительный мусор, в виде структур .svn, создаваемых системой контроля версий. Команды make cin pin и plin НЕ переносят в рабочую версию ничего лишнего.
В момент запуска проекта (make cin pin plin conf start) установочный скрипт создает в /usl/ каталоги и файлы с правами 555 и 444, собирает из всех конфигов (ядро + проект) рабочие файлы конфигурации для apache, crontab (и инициирует новую crontab-таблицу), формирует из шаблонов (State.pm.proto) объекты State.pm, запускает локальный apache + mod_perl + mason_handler.pl, который в свою очередь тестирует и поднимает в памяти все объекты и модули и организует соединение с SQL-сервером.
Все, бэкенд выведен на орбиту, полет нормальный.