Come ha fatto notare ZeroUno, se il pacchetto "pippo-alien" un bel giorno viene aggiunto al repo ufficiale e avremo diciamo "pippo-current". In teoria il vecchio pippo-alien dovrebbe venire rimosso a monte, cioè AlienBob lo toglie dal suo repo e slackpkg+ lo troverà solo sul repo ufficiale di Current.
Se per qualche santo questa pratica non si avesse e convivessero due "pippo", uno sul repo di alien e l'altro sul repo current. Allora dipende dalla tua configurazione di slackpkg+ /etc/slackpkg/slackpkgplus.conf
Facciamo un esempio con la mia configurazione (intanto approfitto di ZeroUno, che se vedesse uno strafalcione mi corregge

):
Codice: Seleziona tutto
$ sed '/^$\|^#/d' /etc/slackpkg/slackpkgplus.conf
--
SLACKPKGPLUS=on
VERBOSE=1
ALLOW32BIT=off
USEBL=1
WGETOPTS="--timeout=20 --tries=2"
SEARCH_CLOG_INPARENT=on
CACHEUPDATE=off
GREYLIST=on
SENSITIVE_SEARCH=on
WW_FILE_SEARCH=on
SHOWORDER=package
DETAILED_INFO=none
STRICTGPG=on
PKGS_PRIORITY=( patches:gcc slackware64:gcc multilib )
TAG_PRIORITY=off
REPOPLUS=( slackpkgplus restricted alienbob )
MIRRORPLUS['alienbob']=http://bear.alienbase.nl/mirrors/people/alien/sbrepos/current/x86_64/
MIRRORPLUS['restricted']=http://bear.alienbase.nl/mirrors/people/alien/restricted_sbrepos/current/x86_64/
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['multilib']=http://bear.alienbase.nl/mirrors/people/alien/multilib/current/
Quello che è da considerare per il nostro discorso è contenuto nelle due righe:
Codice: Seleziona tutto
PKGS_PRIORITY=( patches:gcc slackware64:gcc multilib )
REPOPLUS=( slackpkgplus restricted alienbob )
slackpkg+ come default mette in priorità tutto ciò che è nel repo ufficiale "slackware64".
La variabile PKGS_PRIORITY serve proprio per dare priorità nel mio caso al set di pacchetti 'multilib' a parte il pacchetto gcc, del quale viene lasciata la priorità alla versione del repo ufficiale (forse 'patches', sulla Current non serviva perché credo sia sempre vuoto).
Invece l'ordine dei repo riportati nella variabile REPOPLUS stabilisce una priorità più bassa rispetto al repu ufficiale e definisce la priorità tra i repo terzi riportati.
Nell'esempio sopra l'ordine con cui lavora slackpkg è:
- il pacchetto gcc lo prende dal repo ufficiale (se lo trova in patches prende quello, altrimenti va a cercare in slackware64... sono le directories che trovi se monti una ISO slackware o se navighi sul repo ufficiale, credo che ci siamo capiti...)
- se il pacchetto non è gcc allora cerca prima nel repo 'multilib' e se lo trova lo prende da lì anche se ve n'è un'altra versione nel repo ufficiale
- se non trova il pacchetto in multilib, lo cerca sul repo ufficiale
- se non lo trova lì allora lo cerca nell'ordine nel repo: slackpkgplus, poi in restricted ed infine nel repo 'alienbob'
Quindi nel mio caso, se pippo-alien venisse affiancato da un nuovo pacchetto pippo-current del repo ufficiale, e se Eric non togliesse la sua versione dal repo 'alien', nel mio caso slackpkg+ installerebbe pippo-current, anche se magari prima dell'aggiornamento avevo installato pippo-alien, e da lì in avanti anche nei prossimi aggiornamenti lui passa prima dal repo ufficiale e pesca sempre pippo-current... anche se ipoteticamente Eric portasse il suo pippo-alien ad una versione più recente...
In quel caso se volessi usare pippo-alien dovrei aggiungerlo a PKGS_PRIORITY in modo da dargli priorità più alta rispetto al repo ufficiale:
Codice: Seleziona tutto
PKGS_PRIORITY=( patches:gcc slackware64:gcc alien:pippo multilib )
In soldoni, non c'entra da dove avevi installato il pacchetto prima dell'aggiornamento: "slackpkg upgrade-all" vede che hai pippo e lo aggiorna seguendo la sua regola di priorità, non gli interessa da dove o come lo avevi installato in precedenza.