Como forçar um local de arquivo em equivs-build

3

Eu tenho alguns arquivos que gostaria de instalar usando .deb arquivos criados usando equivs-build . O que não consigo entender é a sintaxe necessária no arquivo .equivs .

Este é o layout do meu arquivo:

myapp.equivs
myapp/
  files/
    script.sh

O que eu quero dizer ao equivs-build é instalar o arquivo script.sh em /usr/share/myapp/script.sh . Fiz alguns testes, mas nenhuma das seguintes sintaxes para Files parece funcionar como pretendido.

Teste 1

Files: ./myapp/files/script.sh /usr/share/myapp/script.sh

Resultado: arquivo instalado em /usr/share/myapp/script.sh/myapp/files/script.sh .

Teste 2

Files: ./demo/files/script.sh /usr/share/myapp/

Resultado: arquivo instalado em /usr/share/myapp/myapp/files/script.sh .

Teste 3

Files: ./demo/files/script.sh /usr/share/myapp

Resultado: arquivo instalado em /usr/share/myapp/myapp/files/script.sh .

Como posso instruir o equivs-build para instalar um arquivo em um local arbitrário?

    
por gioele 10.06.2013 / 18:20

1 resposta

2

Eu tenho o mesmo problema. Eu acho que equivs foi construído para criar pacotes muito simples. Não pacotes com uma estrutura de diretório de origem mais profunda.

Como solução alternativa, "consertei" o script perl de equivs-build da seguinte forma:

/usr/bin/equivs-build (em torno da linha 70):

die "Cannot parse Files line: '$_'\n" unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
#$install_files{"$2/$1"} = $1;
$install_files{"$2"} = $1;    # do not append source path to target path

Agora você especifica caminhos completos de origem e de destino com nome de arquivo no arquivo de controle. Ou seja,

Files: opt/sounds/test.wav /opt/sounds/test.wav
 opt/sounds/test4.wav /opt/sounds/default.wav

Por esse método, você pode usar uma estrutura de diretórios de origem profunda arbitrária. Como benefício, você também pode especificar um nome de arquivo de destino diferente, se necessário.

Espero que ajude.

    
por 21.08.2013 / 15:15

Tags