Criando pacotes debian

1

Já passei alguns dias e acho que é hora de eu receber um conselho um pouco mais experiente.

Estou trabalhando para empacotar um aplicativo perl - todos os arquivos devem ser colocados no diretório /var/www/<packagename> no sistema.

Até agora, consegui criar o pacote, mas ele não está colocando meus arquivos nesse diretório e não li nenhuma maneira concisa de como fazer isso.

Agora meu pacote é compilado corretamente - além dos avisos lintianos, mas eles são principalmente que eu estou usando os arquivos de modelo do dh_make, que atualizarei assim que eu conseguir que isso funcione corretamente.

Essencialmente agora eu tenho isso como minha estrutura:

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

Estou construindo com

dpkg-buildpackage -us -uc

(Não assinando por enquanto, será feito assim que for construído corretamente) e fazendo isso a partir do diretório de pacotes. E isso gera meus .deb , .changes , .orig.tar.gz e .dsc

Qualquer ajuda seria apreciada. Novamente - o principal problema que estou tendo aqui é que eu quero colocar os arquivos / diretórios do aplicativo em /var/www/<packagename> na instalação.

    
por TJ Biddle 05.07.2012 / 20:34

2 respostas

2

Debian packages should not install files under /var/www. This is not one of the /var directories in the File Hierarchy Standard and is under the control of the local administrator. Packages should not assume that it is the document root for a web server; it is very common for users to change the default document root and packages should not assume that users will keep any particular setting.

Packages that want to make files available via an installed web server should instead put instructions for the local administrator in a README.Debian file and ideally include configuration fragments for common web servers such as Apache.

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

phpldapadmin - uma popular ferramenta de administração de ldap baseada em php - vem com um arquivo a ser incluído em /etc/apache2/conf.d/ com duas opções:

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

Seguindo este exemplo, você instalaria os arquivos que deseja mostrar em / var / www / yourpackage em / usr / share / yourpackage / htdocs e editaria seu o conf apache de acordo. Em seguida, salve o snippet de conf do apache incluído em / usr / share / doc / yourpackage / examples / ou instale-o diretamente em / etc com o pacote. Adicione instruções em README.Debian (no mesmo diretório doc) para que os usuários liguem /etc/yourapp.conf ou /etc/yourapp/apache.conf para /etc/apache2/conf.d/yourapp.conf e reiniciem o Apache. / p>     

por 05.07.2012 / 21:06
2

Acabei usando as informações encontradas: link assim pergunta. Enquanto isso não é a maneira correta de colocar arquivos no arquivo / var / www se o seu pacote for ser usado para uso externo - isso funciona para mim, pois é um pacote usado internamente.

Por favor, consulte comentário sobre o assunto sobre este assunto, pois ele tem informações muito detalhadas, simplesmente não foi aceito, uma vez que não respondeu à pergunta real e apenas disse que eu não deveria fazer isso e uma maneira de contornar isso.

    
por 06.07.2012 / 01:41