Crie PKGBUILD a partir de .deb


11

Eu tenho um .debpacote debian que contém essencialmente os binários do software como uma /usr/share/binpasta em um dataarquivo compactado e outro arquivo compactado de metadados que contém as somas de verificação dos outros arquivos.

Meu objetivo é criar um PKGBUILDpacote .deb para instalar corretamente no archlinux.

Qual é a maneira correta de fazer isso?

É suficiente copiar o conteúdo desse /usr/share/bindiretório no pkg /usr/share/binambiente fakeroot usando a build()função? A pasta será copiada para o /usr/share/binlocal verdadeiro quando o pacote compilado estiver realmente instalado?


6
Essencialmente, sim (exceto usar a função de pacote). Olhe no AUR para outros pacotes terminando com -bine usar a mesma abordagem ...
jasonwryan

Respostas:


9

Sim, funcionará da mesma maneira que outros PKGBUILDs com fontes binárias - extraia e copie arquivos. A única coisa que deve ser mencionado é que deb-arquivo é composto por 3 outros arquivos - debian-binary, control.tar.gz, data.tar.gz. O makepkg extrairá apenas o arquivo de primeiro nível e você deverá extrair manualmente data.tar.gz.

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

Como alternativa, você pode colocar o deb-archive na matriz noextract e extrair manualmente apenas data.tar.gz:

$ ar p source.deb data.tar.gz | tar zx

makepkgmuda o diretório atual para $srcdirantes de executar funções, assim você não precisa incluir mais isso ...
jasonwryan

@jasonwryan, vários desenvolvedores afirmaram que não há garantia de que isso permanecerá verdadeiro. Por uma questão de longevidade, pode fazer sentido deixar a cd "${srcdir}"linha habitual no lugar.
precisa saber é o seguinte

1
@HalosGhost eu não tinha ouvido isso. Pela mesma lógica, não há nenhuma garantia de que ele vai se tornar falsa ... :)
jasonwryan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.