[RISOLTO] Come impedire l'aggiornamento di un pacchetto?

Sezione dedicata alle problematiche sull'uso dei tool di installazione e gestione di pacchetti, in una distribuzione Debian-based.

[RISOLTO] Come impedire l'aggiornamento di un pacchetto?

Messaggioda Chryses » 15/08/2019, 13:50

Ciao

Come posso evitare di avere un pacchetto e le sue dipendenze fra gli aggiornamenti proposti?
Mi spiego meglio.
Con stretch utilizzavo questo repository per mono:
Codice: Seleziona tutto
deb https://download.mono-project.com/repo/debian stretch/snapshots/5.14.0.177 main

Ora, con l'aggiornamento a buster, sembra che questa riga non venga neppure presa in considerazione, per installare quindi mono 5.14 su buster ho rimosso completamente mono dal sistema e ho utilizzato
Codice: Seleziona tutto
apt install mono-complete -t stretch

ora però dopo un apt update mi ritrovo con 160 pacchetti da aggiornare, mono-complete e dipendenze.
Momentaneamente ho messo in hold il pacchetto mono-complete per evitare che si aggiorni, ma ovviamente il sistema mostra sempre questi 160 pacchetti da installare.

Come si può evitare di avere questi pacchetti tra le proposte di aggiornamento?
Devo modificare il source list di mono per far si che consideri il pacchetto installato come ultimo disponibile oppure c'è ul altro modo? Perchè mi sembra di capire che il mono che mi vuole installare il gestore di pacchetti sia quello che arriva dalla repository di debian, non di mono
Codice: Seleziona tutto
# root @ Qnap in ~ [14:46:52]
$ apt-cache policy mono-complete
mono-complete:
  Installed: 5.14.0.177-0xamarin3+debian9b1
  Candidate: 5.18.0.240+dfsg-3
  Version table:
     5.18.0.240+dfsg-3 500
        500 http://deb.debian.org/debian stable/main amd64 Packages
 *** 5.14.0.177-0xamarin3+debian9b1 100
        100 /var/lib/dpkg/status
Ultima modifica di Chryses il 17/08/2019, 14:08, modificato 1 volta in totale.
Chryses
Jr. Member
Jr. Member
 
Messaggi: 88
Iscritto il: 29/09/2018, 12:55

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Aki » 15/08/2019, 14:22

Usa la tecnica del pinning [0]. L’argomento è anche trattato nelle guide del forum.

[0] https://wiki.debian.org/it/AptPreferences
Aki
Global Moderator
Global Moderator
 
Messaggi: 8812
Iscritto il: 27/12/2007, 16:59

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Chryses » 15/08/2019, 15:26

Ci sto provando ma senza successo, ho creato
Codice: Seleziona tutto
/etc/apt/preferences.d/mono-5.14.0.177-pin-1001.pref

che dovrebbe essere il "nuovo" metodo per il pinning
e da qui ho provato:
Codice: Seleziona tutto
Package: *mono*
Pin: version 5.14.0.177
Pin-Priority: 1001

oppure
Codice: Seleziona tutto
Package: *mono*
Pin: release o=Debian,n=stretch
Pin-Priority: 1001

oppure
Codice: Seleziona tutto
Package: mono-complete
Pin: version 5.14.0.177
Pin-Priority: 1001

Ho provato le stesse impostazioni anche con il file
Codice: Seleziona tutto
/etc/apt/preferences

Che dovrebbe essere il vecchio metodo di pinning

Ma ogni volta apt update mi restituisce 160 pacchetti da aggiornare, dove sbaglio?
Chryses
Jr. Member
Jr. Member
 
Messaggi: 88
Iscritto il: 29/09/2018, 12:55

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Selky » 16/08/2019, 0:15

Ciao
prova ad installare la versione di mono che desideri poi crei il file preferences in etc/apt (preferisco così ma fai come vuoi)
e metti questo;
Codice: Seleziona tutto
## blocco mono alla versione che voglio
Package: mono*
Pin: release o=Debian
Pin-Priority: -1


Questo è un modo per bloccare tutti i pacchetti relativi a una applicazione (in questo caso mono) provenienti dal repository Debian, qualsiasi release si tratti.
Non utilizzando "mono", tra l'altro prelevato dall'esterno, e non sapendo quali e quante dipendenze richieda non so se funzionerà su Buster e se la versione che desideri girerà come si deve.
In caso positivo, assicurati che la versione che prelevi dall'altro sito non si aggiorni.
Selky
wiki member
wiki member
 
Messaggi: 1437
Iscritto il: 30/12/2011, 1:00

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Chryses » 16/08/2019, 13:47

Ciao, grazie per la dritta.

Ho risolto, sempre con il pinning, ma in maniera diversa, non avevo visto la tua risposta.
Riporto qui anche perchè non so se è corretto, funziona è vero, ma magari è sbagliato e rischio di incorrere in altri problemi.

Ho creato
Codice: Seleziona tutto
/etc/apt/preferences.d/mono-5.14.0.177-pin-1001.pref

Che contiene
Codice: Seleziona tutto
Package: *mono*
Pin: release n=stretch,v=9.0
Pin-Priority: 1001

e ovviamente la sorgente
Codice: Seleziona tutto
/etc/apt/sources.list.d/mono-official-stable.list

contiene
Codice: Seleziona tutto
#snap di stretch
deb https://download.mono-project.com/repo/debian stretch/snapshots/5.14.0.177 main
#deb https://download.mono-project.com/repo/debian stable-buster main


Dato che mono è presente anche nei repository di buster, ho lasciato il repository ufficiale di mono, vincolato al vecchio snapshot e così facendo mono e dipendenze, libmono* etc etc non vengono più riportati dopo apt update

E' corretto anche così oppure si può fare di meglio? Non vorrei creare futuri problemi
Chryses
Jr. Member
Jr. Member
 
Messaggi: 88
Iscritto il: 29/09/2018, 12:55

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Selky » 17/08/2019, 10:51

Tuo primo intervento:
Chryses ha scritto:
Codice: Seleziona tutto
# root @ Qnap in ~ [14:46:52]
$ apt-cache policy mono-complete
mono-complete:
  Installed: 5.14.0.177-0xamarin3+debian9b1
  Candidate: 5.18.0.240+dfsg-3
  Version table:
     5.18.0.240+dfsg-3 500
        500 http://deb.debian.org/debian stable/main amd64 Packages
 *** 5.14.0.177-0xamarin3+debian9b1 100
        100 /var/lib/dpkg/status

Come puoi notare la priorità maggiore c'è l'ha la versione di Debian Buster: 500 contro i 100 del sito esterno.

Tramite il file "InRelease" di mono esterno (non Debian) prendi l'origine (devi dire al tuo sistema che vuoi prelevare quel pacchetto da altro luogo) e la inserisci nel file preferences, Questo dovrebbe bastare. In caso contrario aggiungi anche una priorità maggiore.
Queste sono le info che ho trovato nel file citato ma è meglio che verifichi sul tuo sistema perché io non ce l'ho installato:
Codice: Seleziona tutto
Origin: XamarinStretch
Label: Xamarin-Stable-Stretch
Suite: stretch/snapshots/5.14.0.177
Codename: stretch
Version: 9.0
Date: Thu, 04 Oct 2018 15:07:27 UTC
Architectures: amd64 i386 armel armhf arm64 ppc64el
Components: main
Description: Packages of the latest Mono releases from Xamarin (Debian Stretch)


Maggiori informazioni le trovi qua:
http://guide.debianizzati.org/index.php ... 26_pinning
Selky
wiki member
wiki member
 
Messaggi: 1437
Iscritto il: 30/12/2011, 1:00

Re: Come impedire l'aggiornamento di un pacchetto?

Messaggioda Chryses » 17/08/2019, 14:08

Perfetto, grazie
Chryses
Jr. Member
Jr. Member
 
Messaggi: 88
Iscritto il: 29/09/2018, 12:55


Torna a Apt-get and friends

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti