
Провел там несколько дней и решил, что пришло время получить более опытный совет.
Я работаю над упаковкой приложения 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.
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что касается этого, то, поскольку в нем действительно содержится очень подробная информация, его просто не приняли, поскольку он не отвечал на сам вопрос, а просто говорил, что я не должен этого делать, и предлагал способ обойти это.