Guide sul pinning

Discussioni relative alla Gestione del wiki Guide@Debianizzati.Org

Re: Guide sul pinning

Messaggioda wtf » 06/05/2015, 16:04

Per me va bene (tradotto: fai pure hal ;)).
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 06/05/2015, 16:25

Lascio un link alla pagina precedente, dove iniziano le proposte di modifica: viewtopic.php?f=25&t=48541&start=15#p192419

Se non ci saranno obiezioni, modificherò la pagina verso fine settimana, se non me ne dimentico ancora. ;D
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda HAL 9000 » 09/05/2015, 15:16

Le modifiche sono quasi concluse, ripristinando repository e chiarendo il funzionamento del pinning con dipendenze e con il meccanismo di risoluzione dei conflitti di aptitude.

Mi è venuto però un dubbio mentre le apportavo, se cioè utilizzare un file /etc/apt/apt.conf.d/30defaultrelease o qualcosa del genere in luogo di /etc/apt/apt.conf non crei più problemi che altro.
Penso in particolare, per chiarezza, che andrebbe specificato di rimuovere dal file /etc/apt/apt.conf l'eventuale presenza di "Default-Release" in ogni esempio, qualora fosse già stato creato. Quindi ho continuato a usare /etc/apt/apt.conf, anche se utilizza la sola configurazione "APT::Default-Release".

Al momento si utilizza un file preferences personalizzato con miopinning in un esempio, e il solito file /etc/apt/preferences negli altri, ma potrebbe valere lo stesso discorso.
Forse sarebbe meglio usare solo /etc/apt/preferences, visto che è quello usato in tutte le guide e forse è già stato usato? In fondo c'è già indicazione nella guida di questa possibilità.

Ho rinunciato anche all'esempio del pinning per sezioni (main, contrib e non-free). Per quanto interessante, temo diverrebbe troppo complicato all'aumentare del numero di release, e sarebbe efficace soltanto con selezioni di singoli pacchetti (dato che servirebbe una pin-priority negativa per contrib e non-free, per bloccarne l'installazione) e ciò impedirebbe gli aggiornamenti automatici, senza contare il problema delle dipendenze.

Inizialmente volevo anche un esempio unstable+experimental, per indicare che non serve pinning, ma penso si possa invece unire l'esempio testing+unstable con quello testing+unstable+experimental, per riportare la pagina sotto 32 kB. Ma esiste davvero questo limite sulla dimensione delle pagine nel 2015?
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 09/05/2015, 16:42

Penso che effettivamente sia molto più semplice usare /etc/apt/apt.conf e /etc/apt/preferences, tanto chi ha un minimo di esperienza e/o interesse sa che può usare file di configurazione differenti.
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 10:37

Fatto anche questo. Resta l'ultimo dubbio sull'esempio "backports obbligati".
Per esempio specificare un pinning a libreoffice* non è sufficiente a installare libreoffice da lì, anche se impedisce l'installazione normale, per via delle dipendenze che non iniziano con il prefisso "libreoffice".

Se nessuno ha niente in contrario, si può segnalare concluso anche il task relativo.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 10/05/2015, 16:15

Resta l'ultimo dubbio sull'esempio "backports obbligati".
Per esempio specificare un pinning a libreoffice* non è sufficiente a installare libreoffice da lì, anche se impedisce l'installazione normale, per via delle dipendenze che non iniziano con il prefisso "libreoffice".


Mmmmmhhh, se non ricordo male il punto di backports è proprio quello di mettere a disposizione pacchetti aggiornati, ma che abbiano le stesse dipendenze di stable.
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 16:25

Sono permesse anche dipendenze dai backports. E se ci sono più dipendenze che si devono scaricare dai backports e non iniziano con il prefisso libreoffice, se c'è solo una regola per libreoffice* la loro priorità sarebbe inferiore all'eventuale versione presente in stable, e il risultato sarebbe che fallirebbe l'installazione.

Per fare un esempio: appena installato libreoffice dai backports tra le dipendenze mancanti c'era anche python3-uno (da jessie-backports), nonostante fosse installata la versione dai repository principali di Jessie.
Mi chiedevo appunto se avesse senso suggerire l'uso di backports obbligatori con l'uso di libreoffice*, visto che l'unico modo sarebbe garantire priorità maggiore o uguale a tutto il repository, pratica che però è sconsigliata dai Debian Developer.

Forse sarebbe meglio invece specificare perché non impostare il pinning, in questo caso. Forse garantisce giusto di ricevere un avviso durante l'aggiornamento, quando arriva una nuova versione nei backports.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 10/05/2015, 17:48

Hai ragione, conviene solo indicare di installare libreoffice usando l'opzione -t (specificando anche che per aggiornarlo è necessario ridare lo stesso comando).

EDIT:
Credo di aver trovato la soluzione, ovvero basta creare un file preferences specificando le seguenti priorità:
Codice: Seleziona tutto
Package: *
Pin: release a=stable
Pin-Priority: 991

Package: libreoffice*
Pin: release n=jessie-backports
Pin-Priority: 992

Package: *
Pin: release n=jessie-backports
Pin-Priority: 990

Ho verificato anche che il comando aptitude full-upgrade non installa nulla da backports.
Per essere più precisi i seguenti valori di PIN sono validi:
  • * backports, PIN = x > 899
  • * stable, PIN = x + 1
  • Libreoffice* backports, PIN = x + 2
Ho modificato il file preferences della guida, però andrebbe corretto anche il paragrafo delle osservazioni (che lascio fare a te se ottieni anche tu lo stesso risultato che ho ottenuto io).
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 19:25

Ho disinstallato tutto libreoffice e riprovato da capo, ma niente. :(

Codice: Seleziona tutto
$ dpkg --audit
(nessun output)
$ aptitude search \?broken
(nessun output)


Codice: Seleziona tutto
$ apt-get install libreoffice --simulate
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libreoffice : Depends: python3-uno (>= 4.4.0~beta2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.


(Anche come root non cambia niente.)

Ho trovato però l'inghippo, forse: se aggiungo Default-Release in apt.conf come segue:
Codice: Seleziona tutto
APT::Default-Release "jessie";

funziona:

Codice: Seleziona tutto
$ apt-get install libreoffice --simulate
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  coinor-libcbc3 coinor-libcgl1 coinor-libclp1 coinor-libcoinmp1
  coinor-libcoinutils3 coinor-libosi1 libcdr-0.1-1 libetonyek-0.1-1
  libfreehand-0.1-1 libmspub-0.1-1 liborcus-0.8-0 libpagemaker-0.0-0
  libreoffice-avmedia-backend-gstreamer libreoffice-base libreoffice-base-core
  libreoffice-base-drivers libreoffice-calc libreoffice-common
  libreoffice-core libreoffice-draw libreoffice-impress
  libreoffice-java-common libreoffice-math libreoffice-report-builder-bin
  libreoffice-style-galaxy libreoffice-writer libvisio-0.1-1 python3-uno
Suggested packages:
  (CUT)
Recommended packages:
  (CUT)
The following NEW packages will be installed:
  coinor-libcbc3 coinor-libcgl1 coinor-libclp1 coinor-libcoinmp1
  coinor-libcoinutils3 coinor-libosi1 libcdr-0.1-1 libetonyek-0.1-1
  libfreehand-0.1-1 libmspub-0.1-1 liborcus-0.8-0 libpagemaker-0.0-0
  libreoffice libreoffice-avmedia-backend-gstreamer libreoffice-base
  libreoffice-base-core libreoffice-base-drivers libreoffice-calc
  libreoffice-common libreoffice-core libreoffice-draw libreoffice-impress
  libreoffice-java-common libreoffice-math libreoffice-report-builder-bin
  libreoffice-style-galaxy libreoffice-writer libvisio-0.1-1 python3-uno
0 upgraded, 29 newly installed, 0 to remove and 12 not upgraded.
(CUT)
Inst python3-uno (1:4.4.2-1~bpo8+1 Debian Backports:jessie-backports [i386])
Inst libreoffice (1:4.4.2-1~bpo8+1 Debian Backports:jessie-backports [i386])
(CUT)
Conf python3-uno (1:4.4.2-1~bpo8+1 Debian Backports:jessie-backports [i386])
Conf libreoffice (1:4.4.2-1~bpo8+1 Debian Backports:jessie-backports [i386])


Ma perché ignora la regola che dà una priorità di 991 ai pacchetti di "jessie". In effetti non mi aspettavo nemmeno che si comportasse in questo modo, anche per priorità superiori a 990. :|

Infatti, se provo a installare qualcos'altro, come 0ad:
Codice: Seleziona tutto
$ apt-get install 0ad --simulate
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  0ad-data 0ad-data-common
The following packages will be REMOVED:
  libmozjs-24-0*
The following packages will be upgraded:
  0ad 0ad-data 0ad-data-common
3 upgraded, 0 newly installed, 1 to remove and 9 not upgraded.
Inst 0ad [0.0.17-1] (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [i386]) []
Inst 0ad-data-common [0.0.17-1] (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [all]) []
Inst 0ad-data [0.0.17-1] (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [all])
Purg libmozjs-24-0 [24.2.0-2]
Conf 0ad-data (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [all])
Conf 0ad-data-common (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [all])
Conf 0ad (0.0.18-1~bpo8+1 Debian Backports:jessie-backports [i386])


È in sostanza equivalente a scrivere, senza Default-Release:
Codice: Seleziona tutto
Package: *
Pin: release n=jessie-backports
Pin-Priority: 500

che è quello che si voleva evitare (e mettendola a 990 con Default-Release).
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 10/05/2015, 19:32

Allora improvvisamente anche io non riesco più a risolvere come scritto nel post precedente, tuttavia per motivi differenti dal tuo. Non so perché, ma improvvisamente ha cominciato ad ignorarmi il pin su pacchetti specifici, ad esempio digitando:
Codice: Seleziona tutto
aptitude versions libreoffice-core

Ottengo:
Codice: Seleziona tutto
p   1:4.3.3-2           stable              991
p   1:4.3.3-2+deb8u1    stable              991
p   1:4.4.2-1~bpo8+1    jessie-backports    990

Quindi in teoria a me dovrebbe ancora andare, se solo mi prendesse il pin del pacchetto specifico ...
Chiaramente anche io ho eliminato la dichiarazione default-release dal file apt.conf
Ultima modifica di wtf il 10/05/2015, 19:36, modificato 1 volta in totale.
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 19:36

Quello è un problema di aptitude, che credo riporti soltanto il pinning per release (solo quelli con * e basta). Prova "apt-cache policy". ;)
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 10/05/2015, 19:37

E invece no, infatti l'output di apt-cache policy è coerentemente:
Codice: Seleziona tutto
libreoffice-core:
  Installato: (nessuno)
  Candidato:  1:4.3.3-2+deb8u1
  Tabella versione:
     1:4.4.2-1~bpo8+1 0
        990 http://ftp.it.debian.org/debian/ jessie-backports/main amd64 Packages
     1:4.3.3-2+deb8u1 0
        991 http://security.debian.org/ stable/updates/main amd64 Packages
     1:4.3.3-2 0
        991 http://ftp.it.debian.org/debian/ stable/main amd64 Packages
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 19:41

La parte che mi sembra sbagliata è la riga "Candidato", che mi aspettavo avrebbe riportato la versione 4.4.2-1 di "jessie-backports", mentre le altre priorità penso facciano (correttamente) riferimento al repository e non al pacchetto.

Qual è esattamente la tua configurazione, tra impostazione Default-Release e file preferences?
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

Re: Guide sul pinning

Messaggioda wtf » 10/05/2015, 19:45

Guarda sono allibito, adesso è cambiato ... in:
Codice: Seleziona tutto
  Installato: (nessuno)
  Candidato:  1:4.4.2-1~bpo8+1
  Gancio del pacchetto: 1:4.4.2-1~bpo8+1
  Tabella versione:
     1:4.4.2-1~bpo8+1 992
        990 http://ftp.it.debian.org/debian/ jessie-backports/main amd64 Packages
     1:4.3.3-2+deb8u1 992
        991 http://security.debian.org/ stable/updates/main amd64 Packages
     1:4.3.3-2 992
        991 http://ftp.it.debian.org/debian/ stable/main amd64 Packages

E mi ha aggiunto la riga 3 "gancio del pacchetto".

apt.conf
Codice: Seleziona tutto
APT
{
        Cache-Limit 32000000;
        Install-Recommends "false";
        Get
        {
                AllowUnauthenticated 0;
                AutomaticRemove "true";
                Fix-Broken "true";
                Purge "true";
                Show-Upgraded "true";
        }
}
Acquire::http::Proxy "http://localhost:3142/";
Aptitude
{
        Autoclean-After-Update "true";
        Auto-Fix-Broken "true";
        Purge-Unused "true";
}


preferences
Codice: Seleziona tutto
Package: *
Pin: release n=jessie-backports
Pin-Priority: 990

Package: *
Pin: release a=stable
Pin-Priority: 991

Package: libreoffice*
Pin: release n=jessie-backports
Pin-Priority: 992


Boh, si vede che prima ho sbagliato qualcosa nel fare le prove.
Cose da sapere:
Avatar utente
wtf
Global Moderator
Global Moderator
 
Messaggi: 717
Iscritto il: 12/04/2011, 10:58
Località: Brianza

Re: Guide sul pinning

Messaggioda HAL 9000 » 10/05/2015, 20:01

Vuol dire che ha trovato il pinning relativo a libreoffice*, mentre prima non lo vedeva? Pensavo lo leggesse ogni volta. ???

Comunque resta il problema iniziale. Sono possibili solo queste configurazioni:

  • pinning a singolo pacchetto >= alla priorità del repository principale, significa che verrà installato solo in assenza di dipendenze da soddisfare dallo stesso ramo; altrimenti se si prova a installare verrà visualizzato un messaggio d'errore e basterà ripetere l'operazione con "-t jessie-backports" o far risolvere i conflitti ad aptitude (facendo attenzione a quel che viene proposto);
  • pinning a più pacchetti >= alla priorità del repository principale, significa che verrà installato il pacchetto solo se tutte le sue dipendenze hanno la stessa priorità; ma se esiste una dipendenza rimasta da soddisfare che non è stata elencata (e in testing, e di conseguenza in backports, le dipendenze possono cambiare nel corso del tempo) verrà visualizzato un messaggio d'errore e basterà ripetere l'operazione con "-t jessie-backports" o far risolvere i conflitti ad aptitude (facendo attenzione a quel che viene proposto);
  • pinning al repository backports = alla priorità del repository principale, significa che tutto verrà installato da questi repository ogni volta che è possibile. È sconsigliato dai Debian Developer, che infatti di default li hanno disabilitati, quindi eviterei;
  • nessuna impostazione di pinning (ergo: priorità < priorità del repository principale): per installare bisogna usare l'opzione "-t jessie-backports", poi si aggiorna da solo (salvo aggiunta nuove dipendenze), in qual caso va ripetuto il comando di installazione con "-t jessie-backports".

Credo che l'ultima sia l'unica sensata, dato che non ci sono alternative, se non la 3. Il pinning con libreoffice* funzionerà più spesso che quello a libreoffice, ma alla fine temo soffra degli stessi problemi.
Ricordarsi di modificare il primo messaggio della discussione per aggiungere [RISOLTO] prima del titolo, quando conclusa.

Wiki: APT e Repository, Comandi utili, Collabora.
Manuali di Debian 9 "Stretch" (amd64): installazione, aggiornamento da Debian 8.
Avatar utente
HAL 9000
wiki member
wiki member
 
Messaggi: 1483
Iscritto il: 10/08/2009, 10:01

PrecedenteProssimo

Torna a Guide@Debianizzati.Org

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti