equivs-build / apt-get: como preservar o diretório

2

Estou construindo alguns pacotes para um repositório privado usando equivs-build . Os arquivos estão instalando ok usando apt-get install , mas quando eu vou removê-los, eles estão tentando excluir toda a estrutura de pastas para a qual estão instalados.

No arquivo equivs eu tenho a linha:

Files: <file to copy> /usr/local/sbin/

Quando executo apt-get remove , há mensagens sobre

'.. directory /usr/local not empty so not removed.'

A pasta /usr/local/sbin foi removida.

Existe alguma maneira de evitar isso?

    
por ethrbunny 30.07.2013 / 18:50

2 respostas

2

Existem algumas referências a isso em Stackoverflow no contexto do uso de dpkg , que é a ferramenta subjacente por trás de apt-get : 1 , 2 e 3 . E toda vez que as mesmas considerações surgem:

  1. É apenas um aviso e o pacote foi de fato removido com seu diretório conforme solicitado
  2. Em termos de melhores práticas , não se deve usar / usr / local para pacotes por causa de Política Debian (o que lintian diz sobre o pacote?) e respeitar o Padrão de hierarquia do sistema de arquivos
  3. Algumas pessoas experimentam um comportamento diferente com a mesma operação de remoção quando o destino está em outro lugar, por exemplo, / bin VS. / usr / local / bin e até / opt
  4. os scripts preinst, prerm, postinst e postrm podem conter tecnicamente coisas que alteram o comportamento durante a instalação / remoção - mas novamente é o comportamento do dpkg em / usr / local uma exceção ou a regra (a remoção de diretórios superiores vazios, não limitados a um nível) - e o design é afetado pela propriedade do pacote e pasta ou apenas pelo pacote que está em / usr / local?

Finalmente, pode haver alternativas que envolvem uma melhor estruturação da tarefa à medida que ela se expande no tempo ... por exemplo, criando um repositório de pacotes . Em última análise, equivs-build tem que ser usado de uma forma que não < a href="https://unix.stackexchange.com/questions/86176/equivs-enhance-or-update-an-existing-package-without-uninstalling"> conflito com o design do sistema de gerenciamento de pacotes .

    
por 05.08.2013 / 09:40
1

A sua linha Files parece ter sido digitada ou você está sem os dois pontos ( : ) depois da palavra Files ?

Como neste exemplo, o arquivo de controle equivs:

### Commented entries have reasonable defaults.
### Uncomment to edit them.
Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: main-package
Version: 0.0.1
Maintainer: Your Name <[email protected]>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
Files: /home/myuser/main-package.conf /etc/main-package.conf
Description: <short description; defaults to some wise words>
 long description and info

Referências

por 05.08.2013 / 04:30