sbopkg - solo build e solo install
Inviato: gio 12 ott 2017, 15:31
sbopkg permette di processare i software scaricandone il necessario per la pacchettizzazione, compilando i sorgenti e creandone il pacchetto, installando il pacchetto scaricato.
Può anche gestire più pacchetti in una sola volta utilizzando le "code" o "queues" che dir si voglia che genericamente sono una lista di pacchetti da processare. In particolare c'è la possibilità di creare delle code per soddisfare le dipendenze di un certo pacchetto, lo si può fare a mano pacchetto per pacchetto (si guardano i vari files info alla riga "REQUIRES="), oppure grazie ad un altro tool chiamato "sqg" si crea la coda da processare automaticamente.
Faccio un esempio così è più facile spiegarmi. Consideriamo mpv il media player.
crea una coda che contiene i seguenti pacchetti:
Ora qui già mi è venuto un grosso dubbio.
Se comando a sbopkg di processare completamente mpv, quindi installando:
Lui trova la coda mpv.sqf e propone di processare quella oppure il solo pacchetto. Scegliendo la coda i pacchetti vengono considerati uno dopo l'altro nell'ordine in cui appaiono nella coda e accade quanto segue:
Osservazione: in questo modo mpv sarà compilato "contro" la versione di ffmpeg appena costruita e installata e contro gli altri pacchetti della coda appena processati.
La situazione cambia se comandiamo a sbopkg di processare la coda parzialmente, costruendo i pacchetti ma senza installarli.
In questo caso il nostro mpv verrà costruito usando la versione di ffmpeg e delle altre dipendenze installata sul sistema...
Non vi pare?
Quindi se si vuole aggiornare mpv mi sembra ben diverso usare la coda col flag "-i" piuttosto che col flag "-b"... Cioè saranno proprio differenti i due pacchetti mpv che ne saltano fuori.... Uno sarà basato su dipendenze più vecchie l'altro su versioni delle stesse più aggiornate.
Quindi domanda 1.
Il mio dubbio è fondato oppure ho capito male come funziona sbopkg?
Altra situazione: mettiamo di aver processato la nostra coda limitandoci a costruire i nostri pacchetti (sbopkg -b mpv) e quindi in /tmp avremo i nostri "tgz".
Se volessi semplicemente installarli in un secondo momento, senza dovermi andare a riguardare la lista della coda per capire quali erano da installare, come dovrei fare?
Nel man di sbopkg, dice che usandolo con l'iterfaccia dialog c'è la possibilità di installare solo il pacchetto che trova:
Invece no: ha rifatto tutto, scaricando nuovamente i sorgenti e compilandoli. Forse la sola installazione funziona solo per pacchetti singoli ma non per la coda intera?
Quindi domanda 2:
Come avrei dovuto fare per non ricompilare tutto (a parte l'ovvio: cat /var/lib/sbopkg/queues/mpv.sqf e installpkg /tmp/{dipendenze.tgz,mpv.tgz})?
Grazie mille a tutti in anticipo!
Può anche gestire più pacchetti in una sola volta utilizzando le "code" o "queues" che dir si voglia che genericamente sono una lista di pacchetti da processare. In particolare c'è la possibilità di creare delle code per soddisfare le dipendenze di un certo pacchetto, lo si può fare a mano pacchetto per pacchetto (si guardano i vari files info alla riga "REQUIRES="), oppure grazie ad un altro tool chiamato "sqg" si crea la coda da processare automaticamente.
Faccio un esempio così è più facile spiegarmi. Consideriamo mpv il media player.
Codice: Seleziona tutto
sqg -p mpv
Codice: Seleziona tutto
cat /var/lib/sbopkg/queues/mpv.sqf
docutils
libass
# %README%: see the ffmpeg README file.
ffmpeg
mpv
Se comando a sbopkg di processare completamente mpv, quindi installando:
Codice: Seleziona tutto
sbopkg -i mpvCodice: Seleziona tutto
1. pacchetto docutils
- scaricato
- costruito
- installato
2. pacchetto libass
- scaricato
- costruito
- installato
3- pacchetto ffmpeg
ecc eccLa situazione cambia se comandiamo a sbopkg di processare la coda parzialmente, costruendo i pacchetti ma senza installarli.
Codice: Seleziona tutto
sbopkg -b mpvNon vi pare?
Quindi se si vuole aggiornare mpv mi sembra ben diverso usare la coda col flag "-i" piuttosto che col flag "-b"... Cioè saranno proprio differenti i due pacchetti mpv che ne saltano fuori.... Uno sarà basato su dipendenze più vecchie l'altro su versioni delle stesse più aggiornate.
Quindi domanda 1.
Il mio dubbio è fondato oppure ho capito male come funziona sbopkg?
Altra situazione: mettiamo di aver processato la nostra coda limitandoci a costruire i nostri pacchetti (sbopkg -b mpv) e quindi in /tmp avremo i nostri "tgz".
Se volessi semplicemente installarli in un secondo momento, senza dovermi andare a riguardare la lista della coda per capire quali erano da installare, come dovrei fare?
Nel man di sbopkg, dice che usandolo con l'iterfaccia dialog c'è la possibilità di installare solo il pacchetto che trova:
Siccome nel mezzogiorno avevo lanciato "sbopkg -b mpv" perchè mpv era in uso... E avevo pensato lancio il build poi installo dopo pranzo... al ritorno ho provato ad usare sbopkg dall'interfaccia dialog: ho caricato la coda di mpv e ho avviato il processo completo, sperando che vedesse i pacchetti coinvolti e presenti in /tmp e che mi proponesse di installare quei precompilati lì...If using the dialog interface, and if sbopkg finds a built package for a particular piece of software in the OUTPUT directory, then sbopkg will automatically add a new menu entry allowing the user to install the package if he chooses.
Invece no: ha rifatto tutto, scaricando nuovamente i sorgenti e compilandoli. Forse la sola installazione funziona solo per pacchetti singoli ma non per la coda intera?
Quindi domanda 2:
Come avrei dovuto fare per non ricompilare tutto (a parte l'ovvio: cat /var/lib/sbopkg/queues/mpv.sqf e installpkg /tmp/{dipendenze.tgz,mpv.tgz})?
Grazie mille a tutti in anticipo!