1

Побыл на несколько дней и подумал, что пора бы мне получить более опытный совет.

Я работаю над упаковкой приложения perl - все файлы должны быть помещены в каталог /var/www/<packagename> в системе.

До сих пор я был в состоянии собрать пакет - но он не помещает мои файлы в этот каталог, и я не читал кратких способов, как это сделать.

Прямо сейчас мой пакет собирается должным образом - кроме предупреждений lintian, но они в основном состоят в том, что я использую файлы шаблонов из dh_make, которые я обновлю, как только получу, чтобы это работало должным образом.

По сути, сейчас у меня есть это как моя структура:

ls:

packagedirectory-1.0
 - debian directory with control/copyright/rules/ ...
 - directory belonings to app
 - directory belonging to app
 - files belonging to app
package)1.0-1.tar.gz

Я строил с

dpkg-buildpackage -us -uc

(Не подписывая пока, сделаем это после правильной сборки) и сделаем это из каталога пакета. И это выводит мои .deb , .changes , .orig.tar.gz и .dsc

Любая помощь будет оценена. Опять же, основная проблема, с которой я столкнулся, заключается в том, что я хочу поместить файлы / каталоги приложений в /var/www/<packagename> после установки.

2 ответа2

2

Я закончил тем, что использовал информацию, найденную в этом: https://stackoverflow.com/questions/3214319/i-need-my-debian-rules-file-to-simply-copy-files-to-its-target SO вопрос. Хотя это не правильный способ помещать файлы в файл /var /www, если ваш пакет будет использоваться для внешнего использования - это работает для меня, так как это пакет для внутреннего использования.

Пожалуйста, ознакомьтесь с переписанным комментарием по этому поводу, так как он содержит очень подробную информацию, он просто не был принят, так как не ответил на реальный вопрос и просто сказал, что я не должен этого делать и как обойти это.

2

Пакеты Debian не должны устанавливать файлы в /var /www. Это не один из каталогов /var в стандарте иерархии файлов, который находится под контролем локального администратора. Пакеты не должны предполагать, что это корень документа для веб-сервера; пользователи очень часто меняют корневой каталог документов по умолчанию, и пакеты не должны предполагать, что пользователи сохранят какой-либо конкретный параметр.

Пакеты, которые хотят сделать файлы доступными через установленный веб-сервер, должны вместо этого поместить инструкции для локального администратора в файл README.Debian и в идеале включать фрагменты конфигурации для общих веб-серверов, таких как Apache.

http://lintian.debian.org/tags/dir-or-file-in-var-www.html

phpldapadmin - популярный инструмент администрирования ldap на основе php - поставляется с файлом для включения в /etc/apache2/conf.d/ с двумя вариантами:

# Option 1: Define /phpldapadmin alias, this is the default
<IfModule mod_alias.c>
    Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
</IfModule>

# OR Option 2: You can also use phpLDAPadmin as a VirtualHost
<VirtualHost *:*>
 ServerName ldap.example.com
 ServerAdmin root@example.com
 DocumentRoot /usr/share/phpldapadmin/htdocs
 ErrorLog logs/ldap.example.com-error.log
 CustomLog logs/ldap.example.com-access.log common
</VirtualHost>

#Then define the directory options like default index, access control etc.
<Directory /usr/share/phpldapadmin/htdocs/>
 DirectoryIndex ...
 ...
</Directory>

Следуя этому примеру, вы установите файлы, которые вы хотите отобразить, в /var /www /yourpackage в /usr /share /yourpackage /htdocs и соответственно отредактируете свой включенный apache conf. Затем сохраните включенный фрагмент apache conf в /usr /share /doc /yourpackage /examples / или установите его прямо в / etc вместе с пакетом. Добавьте инструкции в README.Debian (в том же каталоге документов), чтобы пользователи связывали /etc/yourapp.conf или /etc/yourapp/apache.conf с /etc/apache2/conf.d/yourapp.conf и перезапускали Apache.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .