Construyendo paquetes debian

Construyendo paquetes debian

He estado en el durante unos días y creo que ya es hora de recibir consejos un poco más experimentados.

Estoy trabajando para empaquetar una aplicación Perl; todos sus archivos deben colocarse en el /var/www/<packagename>directorio del sistema.

Hasta ahora he podido crear el paquete, pero no coloca mis archivos en este directorio y no he leído ninguna forma concisa de cómo hacerlo.

En este momento mi paquete se compila correctamente, aparte de las advertencias lintianas, pero principalmente son que estoy usando los archivos de plantilla de dh_make, que actualizaré una vez que consiga que esto funcione correctamente.

Básicamente, ahora tengo esto como mi estructura:

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

He estado construyendo con

dpkg-buildpackage -us -uc

(No firmar por ahora, lo hará una vez que se haya compilado correctamente) y hacerlo desde el directorio del paquete. Y esto genera mi .deb, .changes, .orig.tar.gzy.dsc

Cualquier ayuda sería apreciada. Nuevamente, el principal problema que tengo aquí es que quiero colocar los archivos/directorios de la aplicación /var/www/<packagename>durante la instalación.

Respuesta1

Los paquetes de Debian no deben instalar archivos en /var/www. Este no es uno de los directorios /var del Estándar de jerarquía de archivos y está bajo el control del administrador local. Los paquetes no deben asumir que es la raíz del documento de un servidor web; Es muy común que los usuarios cambien la raíz del documento predeterminada y los paquetes no deben asumir que los usuarios mantendrán ninguna configuración en particular.

Los paquetes que quieran que los archivos estén disponibles a través de un servidor web instalado deberían incluir instrucciones para el administrador local en un archivo README.Debian e idealmente incluir fragmentos de configuración para servidores web comunes como Apache.

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

phpldapadmin, una popular herramienta de administración de ldap basada en PHP, viene con un archivo que se incluirá en /etc/apache2/conf.d/ con dos opciones:

# 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>

Siguiendo este ejemplo, instalaría los archivos que desea mostrar en /var/www/yourpackage en /usr/share/yourpackage/htdocs y editaríasuincluyó apache conf en consecuencia. Luego guarde el fragmento de configuración de Apache incluido en /usr/share/doc/yourpackage/examples/ o instálelo directamente en /etc con el paquete. Agregue instrucciones en README.Debian (en el mismo directorio de documentos) para que los usuarios vinculen /etc/yourapp.conf o /etc/yourapp/apache.conf a /etc/apache2/conf.d/yourapp.conf y reinicien Apache.

Respuesta2

Terminé usando la información que se encuentra en esto:https://stackoverflow.com/questions/3214319/necesito-mi-archivo-de-rules-debian-para-simplemente-copiar-archivos-a-su-destinoEntonces pregunta. Si bien esto esnola forma correcta de colocar archivos en el archivo /var/www si su paquete se va a utilizar para uso externo; esto funciona para mí ya que es un paquete usado internamente.

Por favor miracomentario de overprescribedCon respecto a esto, ya que tiene información muy detallada, simplemente no fue aceptado porque no respondía la pregunta real y simplemente decía que no debería hacer eso y una forma de evitarlo.

información relacionada