Crear PKGBUILD desde .deb


11

Tengo un .debpaquete de Debian que esencialmente contiene los archivos binarios del software como una /usr/share/bincarpeta en un dataarchivo comprimido , y otro archivo comprimido de metadatos que contiene las sumas de verificación de los otros archivos.

Mi objetivo es crear un PKGBUILDpara instalar dicho paquete .deb correctamente en archlinux.

¿Cuál es la forma correcta de hacer eso?

¿Es suficiente copiar los contenidos de ese /usr/share/bindirectorio en el pkg /usr/share/binentorno fakeroot usando la build()función? ¿La carpeta se copiará en la /usr/share/binubicación verdadera cuando el paquete integrado esté realmente instalado?


66
Esencialmente, sí (excepto usar la función de paquete). Busque en el AUR otros paquetes que terminen en -biny use el mismo enfoque ...
jasonwryan

Respuestas:


9

Sí, funcionará de la misma manera que otros PKGBUILD con fuentes binarias: extráigalo y copie los archivos. La única cosa que debe ser mencionado es que deb-archivo se compone de otros 3 archivos - debian-binary, control.tar.gz, data.tar.gz. makepkg solo extraerá el archivo de primer nivel y luego deberá extraerlo manualmente data.tar.gz.

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

package() {
    # copy files
}

Alternativamente, puede colocar deb-archive en la matriz noextract y luego extraer manualmente solo data.tar.gz:

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

makepkgcambia el directorio actual a $srcdirantes de ejecutar funciones, por lo que ya no es necesario incluirlo ...
jasonwryan

@jasonwryan, varios desarrolladores han declarado que no hay garantía de que tal seguirá siendo cierto. Por el bien de la longevidad, puede tener sentido dejar la cd "${srcdir}"línea habitual en su lugar.
HalosGhost

1
@HalosGhost No había escuchado eso. Por la misma lógica, no hay garantía de que se convierta en falso ... :)
jasonwryan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.