
Estou no há alguns dias e acho que já é hora de receber conselhos um pouco mais experientes.
Estou trabalhando para empacotar um aplicativo Perl - todos os arquivos devem ser colocados no /var/www/<packagename>
diretório do sistema.
Até agora consegui construir o pacote - mas ele não está colocando meus arquivos neste diretório e não li nenhuma maneira concisa de como fazer isso.
No momento, meu pacote é compilado corretamente - além dos avisos do lintian, mas eles são principalmente porque estou usando os arquivos de modelo do dh_make, que atualizarei assim que fizer isso funcionar corretamente.
Essencialmente, agora tenho esta 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
Eu tenho construído com
dpkg-buildpackage -us -uc
(Não assinando por enquanto, farei isso depois de compilado corretamente) e fazendo isso a partir do diretório do pacote. E isso gera meus .deb
, .changes
, .orig.tar.gz
e.dsc
Qualquer ajuda seria apreciada. Novamente - o principal problema que estou tendo aqui é que desejo colocar os arquivos/diretórios do aplicativo /var/www/<packagename>
durante a instalação.
Responder1
Os pacotes Debian não devem instalar arquivos em /var/www. Este não é um dos diretórios /var no Padrão de Hierarquia de Arquivos e está sob o controle do administrador local. Os pacotes não devem presumir que é a raiz do documento de um servidor web; é muito comum que os usuários alterem a raiz padrão do documento e os pacotes não devem presumir que os usuários manterão qualquer configuração específica.
Pacotes que desejam disponibilizar arquivos através de um servidor web instalado devem, em vez disso, colocar instruções para o administrador local em um arquivo README.Debian e, idealmente, incluir fragmentos de configuração para servidores web comuns, como o Apache.
phpldapadmin - uma popular ferramenta de administração 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 editariaseuincluiu o apache conf de acordo. Em seguida, salve o snippet de configuração 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 vinculem /etc/yourapp.conf ou /etc/yourapp/apache.conf a /etc/apache2/conf.d/yourapp.conf e reinicie o Apache.
Responder2
Acabei usando as informações encontradas neste:https://stackoverflow.com/questions/3214319/i-need-my-debian-rules-file-to-simply-copy-files-to-its-targetEntão pergunta. Enquanto isso énãoa maneira correta de colocar arquivos no arquivo /var/www se o seu pacote for usado para uso externo - isso funciona para mim, pois é um pacote usado internamente.
Por favor, vejacomentário de overprescribedem relação a isso, pois contém informações muito detalhadas, simplesmente não foi aceito porque não respondeu à pergunta real e apenas disse que eu não deveria fazer isso e uma maneira de contornar isso.