[Slackware Current] Slackpkg+ e blacklist SBo-git
Inviato: mar 11 feb 2020, 0:21
Torno ancora sulla gestione software sulla Current, considerando una circostanza che potrebbe verificarsi su un sistema con parco software misto fatto di pacchetti ufficiali e compilati con sbopkg (il discorso si estende anche ai pacchetti compilati in proprio che abbiamo poi blacklistato in slackpkg).
Dunque:
- sbopkg impostato sul repo di Ponce SBo-git va ad installare il programma “pippo-1.2.3-x86_64-1_SBo”.
- poniamo che quella versione di pippo sia compatibile con la slack 14.2 e non sia presente nel relativo repo ufficiale, 14.2 appunto.
- Pat aggiunge pippo al repo della Current e magari ne aggiunge una versione più recente “pippo-4.5.6-x86_64-1”.
- all’aggiornamento del sistema si vorrebbe che i pachetti _SBo in generale non venissero sovrascritti da versioni più vecchie presenti sul repo ufficiale (cosa improbabile sulla current) così si mettono i pacchetti targati _SBo in blacklist e slackpkg+ non li considera.
- però si vorrebbe installare pippo del repo ufficiale current nel caso in cui la versione introdotta da Pat sia più recente di quella compilabile da SBo-git
Avreste qualche idea per ottenere questo risultato in modo automatico con slackpkg+ ?
Un modo potrebbe essere quello di ottenere una lista dei pacchetti aggiunti nel Changelog della Current e confrontare ognuno di essi con la lista di pacchetti _SBo installati sul sistema: se il pacchetto “current” è più recente di quello SBo, allora si toglie dalla blacklist, altrimenti si lascia bloccato.
Oppure si annotano i pacchetti _SBo installati, poi si aggiorna tutto il software ufficiale (togliendo quindi _SBo dalla blacklist) e infine si genera la “coda” dei pacchetti SBo da ricompilare in toto prendendo la lista dei pacchetti SBo che erano installati (quelli annotati prima) e si va a confrontare la versione di ognuno di essi con quella installata, e si aggiungono alla coda SBo solo se hanno versione più recente ripetto a quella installata.
Un’altra idea sarebbe quella di vagliare a mano le versioni dei paccheti SBo installati. Slackpkg+ mette a disposizione la funzionalità “greylist”:
- si mette in greylist “_SBo”
- si lancia slackpkg install-new ecc ecc e lui propone la lista di pacchetti da installare lasciando deselezionati quelli che andrebbero a sovrascrivere i pacchetti SBo
- a quel punto si scorre la lista dei pacchetit che slackpkg andrebbe ad installare e si valuta se ve n’è qualcuno che ha versione superiore ad un eventuale corrispondente installato da SBo.
- Se sì si seleziona e si sovrascrive il vecchio pippo-1_SBo col nuovo pippo-1, altrimenti si lascia deselezionato
- Se si è deciso di instalare quello ufficiale, bisogna poi cancellare pippo dalla coda di SBo, altrimenti quando poi si reinstalla il parco software SBo con sbopkg si torna al vecchio pippo.
Qualche commento / suggerimento?
Mi sto facendo problemi per nulla perché in pratica è un caso che si può presentare solo marginalmente?
Grazie in anticipo!
Dunque:
- sbopkg impostato sul repo di Ponce SBo-git va ad installare il programma “pippo-1.2.3-x86_64-1_SBo”.
- poniamo che quella versione di pippo sia compatibile con la slack 14.2 e non sia presente nel relativo repo ufficiale, 14.2 appunto.
- Pat aggiunge pippo al repo della Current e magari ne aggiunge una versione più recente “pippo-4.5.6-x86_64-1”.
- all’aggiornamento del sistema si vorrebbe che i pachetti _SBo in generale non venissero sovrascritti da versioni più vecchie presenti sul repo ufficiale (cosa improbabile sulla current) così si mettono i pacchetti targati _SBo in blacklist e slackpkg+ non li considera.
- però si vorrebbe installare pippo del repo ufficiale current nel caso in cui la versione introdotta da Pat sia più recente di quella compilabile da SBo-git
Avreste qualche idea per ottenere questo risultato in modo automatico con slackpkg+ ?
Un modo potrebbe essere quello di ottenere una lista dei pacchetti aggiunti nel Changelog della Current e confrontare ognuno di essi con la lista di pacchetti _SBo installati sul sistema: se il pacchetto “current” è più recente di quello SBo, allora si toglie dalla blacklist, altrimenti si lascia bloccato.
Oppure si annotano i pacchetti _SBo installati, poi si aggiorna tutto il software ufficiale (togliendo quindi _SBo dalla blacklist) e infine si genera la “coda” dei pacchetti SBo da ricompilare in toto prendendo la lista dei pacchetti SBo che erano installati (quelli annotati prima) e si va a confrontare la versione di ognuno di essi con quella installata, e si aggiungono alla coda SBo solo se hanno versione più recente ripetto a quella installata.
Un’altra idea sarebbe quella di vagliare a mano le versioni dei paccheti SBo installati. Slackpkg+ mette a disposizione la funzionalità “greylist”:
- si mette in greylist “_SBo”
- si lancia slackpkg install-new ecc ecc e lui propone la lista di pacchetti da installare lasciando deselezionati quelli che andrebbero a sovrascrivere i pacchetti SBo
- a quel punto si scorre la lista dei pacchetit che slackpkg andrebbe ad installare e si valuta se ve n’è qualcuno che ha versione superiore ad un eventuale corrispondente installato da SBo.
- Se sì si seleziona e si sovrascrive il vecchio pippo-1_SBo col nuovo pippo-1, altrimenti si lascia deselezionato
- Se si è deciso di instalare quello ufficiale, bisogna poi cancellare pippo dalla coda di SBo, altrimenti quando poi si reinstalla il parco software SBo con sbopkg si torna al vecchio pippo.
Qualche commento / suggerimento?
Mi sto facendo problemi per nulla perché in pratica è un caso che si può presentare solo marginalmente?
Grazie in anticipo!