Сборка пакетов Debian

Сборка пакетов Debian

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

Я работаю над упаковкой приложения 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>во время установки.

решение1

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

Пакеты, которые хотят сделать файлы доступными через установленный веб-сервер, должны вместо этого поместить инструкции для локального администратора в файл 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 [email protected]
 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 (в том же каталоге doc), чтобы пользователи связывали /etc/yourapp.conf или /etc/yourapp/apache.conf с /etc/apache2/conf.d/yourapp.conf и перезапускали Apache.

решение2

В итоге я воспользовался информацией, найденной здесь:https://stackoverflow.com/questions/3214319/мне-нужно-просто-скопировать-файлы-в-цельТАК вопрос. Пока этонетправильный способ размещения файлов в файле /var/www, если ваш пакет будет использоваться для внешнего использования - для меня это работает, поскольку это пакет для внутреннего использования.

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

Связанный контент