Crea PKGBUILD da .deb


11

Ho un .debpacchetto debian che contiene essenzialmente i binari del software come una /usr/share/bincartella in un datafile compresso e un altro file compresso metadati contenente i checksum degli altri file.

Il mio obiettivo è quello di creare un PKGBUILDpacchetto .deb per installare correttamente su archlinux.

Qual è il modo corretto di farlo?

È sufficiente copiare il contenuto di quella /usr/share/bindirectory nell'ambiente pkg /usr/share/binfakeroot usando la build()funzione? La cartella verrà copiata nella /usr/share/binposizione reale quando il pacchetto compilato è effettivamente installato?


6
In sostanza, sì (tranne utilizzare la funzione pacchetto). Cerca in AUR altri pacchetti che terminano con -bine usa lo stesso approccio ...
jasonwryan,

Risposte:


9

Sì, funzionerà allo stesso modo degli altri PKGBUILD con origini binarie: estrailo e copia i file. L'unica cosa che deve essere menzionato è che deb-archivio è composto da 3 altri file - debian-binary, control.tar.gz, data.tar.gz. makepkg estrarrà solo l'archivio di primo livello e quindi dovrai estrarlo manualmente data.tar.gz.

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

package() {
    # copy files
}

In alternativa, è possibile posizionare deb-archive nell'array noextract e quindi estrarre solo manualmente data.tar.gz:

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

makepkgcambia la directory corrente in $srcdirprima di eseguire le funzioni, quindi non è più necessario includerla ...
jasonwryan,

@jasonwryan, diversi sviluppatori hanno affermato che non esiste alcuna garanzia che ciò rimanga vero. Per motivi di longevità, può avere senso lasciare cd "${srcdir}"in piedi la linea abituale .
HalosGhost,

1
@HalosGhost Non l'avevo sentito. Secondo la stessa logica, non vi è alcuna garanzia che diventerà falso ... :)
jasonwryan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.