Installare programmi da Buster o Sid

23 risposte [Ultimo contenuto]
Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Salve a tutti, voglio installare KeePassXC per Debian, l'ho installato dal .deb però preferirei avere una versione installata dai repository ufficiali.
So già che esistono KeePass2 o KeePassX, ma per una serie di ragione su Linux preferisco KeePassXC.
Il problema è che non è presente per la versione stable, ma solo per la testing e la unstable, dato che entrambe sono all'ultima versione è meglio se installo dalla testing dato che dovrebbe essere più affidabile o sbaglio?
Quello che non sono riuscito a capire informandomi online è questo: se aggiungo la stringa "buster" nelle righe del mio source.list per installare questo pacchetto e tenerlo aggiornato, come faccio a dire al sistema che quando vorrò installare altri pacchetti presenti sia nella stable che nella testing lui dovrà sempre prenderli dalla stable e non dalla testing?
Per quanto riguarda l'aggiornamento di pacchetti penso che se sono stati scaricati dalla stable verranno sempre aggiornati con l'ultima versione presente nella stable, giusto?

Ritratto di Claudio
Claudio
(Guru)
Offline
Guru
Iscritto: 05/09/2007
Messaggi: 1085

Guarda, io procedo a mano nel seguente modo.
Innanzitutto devi inserire i repo della distribuzione che ti interessano e aggiornare la lista dei software con
# apt update
Successivamente, se vuoi installare un determinato software (es: firefox) dovrai procedere nel seguente modo
# apt install firefox/testing
per poi andare nel sources.list e commentare la riga precedente.
Il punto è che se non la commenti e dovessi dare un upgrade, ti troveresti la distro aggiornata automaticamente a testing o a sid.
Faccio presente, però, che ci sono dei rischi. Essendo il download automatizzato potrebbero essere scaricate dipendenze non volute che potrebbero inficiare il sistema o una sua parte.
Un sistema più automatizzato c'è ed è il pinning nel quale stabilisci che solo alcuni software devono essere presi da repo diversi rispetto a quelli soliti (ad esempio testing o anche repo esterni). In ogni caso ci vuole un po' di pratica nel gestirlo e, ovviamente, non vengono esclusi i malfunzionamenti di cui sopra.

Notebook Hp Pavilvion dv6 i5 amd64, 4 GB Ram, scheda grafica nVidia Corporation GT216 [GeForce GT 320M] (rev a2)
Notebook Acer Asprire 5755G amd64, 8 GB Ram, scheda grafica nVidia GeForce GT 540M
Debian testing kde

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Grazie mille della risposta, ne approfitto della tua esperienza per capire meglio.
Allora prima di tutto mi consigli di aggiungere la riga e non di modificare quella già presente sulla stable in modo che dopo la possa commentare giusto?
Poi, mi dici di commentarla perché sostanzialmente al prossimo upgrade ogni software di cui c'è una versione più aggiornata nella testing verrebbe aggiornato a testing? Ma così facendo non potrei nemmeno ricercare eventuali aggiornamenti di quell'unico programma o sbaglio?

Partiamo dal presupposto che ho questo programma che mi serve, le possibilità sono 3:
1) Scarico il .deb e lo installo con gdebi (e pensavo che questa fosse la scelta peggiore, motivo per la quale optavo per la 2)
2) Fare come hai detto tu (ma anche qui ho altri dubbi che vorrei approfondire)
3) Usare il pinning (vedendo qualche guida credo di poterlo gestire)
Cosa mi consigli?

Ritratto di Claudio
Claudio
(Guru)
Offline
Guru
Iscritto: 05/09/2007
Messaggi: 1085

ale.a ha scritto:

Grazie mille della risposta, ne approfitto della tua esperienza per capire meglio.
Allora prima di tutto mi consigli di aggiungere la riga e non di modificare quella già presente sulla stable in modo che dopo la possa commentare giusto?
Poi, mi dici di commentarla perché sostanzialmente al prossimo upgrade ogni software di cui c'è una versione più aggiornata nella testing verrebbe aggiornato a testing? Ma così facendo non potrei nemmeno ricercare eventuali aggiornamenti di quell'unico programma o sbaglio?

Sì, hai capito il concetto ma ti manca ancora un passo. Quello che dico io, è questo: nel momento in cui sai che c'è l'aggiornamento di un software entrerai nel sources.list, decommenterai la linea di testin/sid, darai un update, aggiornerai il software nel modo che ti ho spiegato, rientrerai nel sources.list per commentare la riga di testing/sid e darai un nuovo update per aggiornare i repo da testing/sid a stable.
Se non farai questo ultimo passaggio, al successivo upgrade del sistema, tutto passerà a testing/sid.
Io questo tipo di lavoro lo faccio con firefox.

Potresti anche installare un software via deb ma potresti avere delle dipendenza mancanti (la forza di apt è proprio la gestione delle dipendenze) o targ.gz (in quest'ultimo caso potresti non avere l'integrazione con il sistema ma dipende da software a software). Nel primo caso il software potrebbe aggiungere una riga al surces.list o in un altro file di repository in modo da aggiornarsi via apt; nel secondo caso il software potrebbe aggiornarsi da se come in windows (firefox si comporta così).

Qual è la soluzione migliore? Dipende da tante cose tra le quali l'intrusività del software. Se i software sono poco intrusivi e sono tanti, allora ti consiglio il pinning. Potresti usare il pinning se, ad esempio, vuoi senere sempre aggiornati firefox, k3b, thunderbird, vlc, ecc... anche da repo che non sono quelli di debian. Differentemente, se vuoi un'integrazione già pronta con il sistema usa il deb; altrimenti usa il tar.gz.
Il modo che ti ho detto io è un ibrido tra la gestione del deb e quella via pinning perché prevede che tutto il processo di installazione venga gestito dai repository attivati da te a mano. È chiaro, tuttavia, che non ti consiglio di usare il mio metodo nel caso di software intrusivi. Non ti consiglio, quindi, di fare questo con plasma di kde, per esempio, ma con programmi autonomi slegati dai desktop environment

Notebook Hp Pavilvion dv6 i5 amd64, 4 GB Ram, scheda grafica nVidia Corporation GT216 [GeForce GT 320M] (rev a2)
Notebook Acer Asprire 5755G amd64, 8 GB Ram, scheda grafica nVidia GeForce GT 540M
Debian testing kde

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Grazie del supporto, ho capito un bel po' di cose, hai fatto bene a specificare quell'ultimo passaggio, effettivamente mi era sfuggito.

Allora.. Io ho letto sulla wiki ufficiale che quando possibile è meglio evitare installazioni da .deb perché potrebbero portare il sistema in uno stato instabile, Gdebi cerca di risolvere tutte le dipendenze, ma non è detto che ci riesca e quando non lo fa è difficile scoprirlo, quindi anche potendo usare questo programma credo che non sia la scelta migliore.
Avendo letto che è sempre meglio installare dai repo ufficiali presumo che questo valga anche in quei casi bisogni installare da una versione non stable, e credo che tra le due cose quest'ultima sia quella che esponga meno il sistema ad arrivare ad uno stato incoerente.

Detto questo mi sono informato bene sul pinning dalla wiki e mi è sembrato di capire che infondo sia la stessa cosa che fai tu, solo che il tuo procedimento è manuale, il pinning ha solo lo scopo di automatizzarlo, è tutto corretto quello che ho dedotto fino ad ora?
Dato che mi sembra che le opzioni siano quasi equivalenti ho fatto delle prove in virtuale per dare qualche info in più al problema, nello specifico come spiegato in questa wiki QUI ho inserito il repo:

deb http://ftp.us.debian.org/debian testing main

e ho provato il comando

apt-get install keepassxc/testing

In modo che se ci fossero dipendenze insoddisfatte il comando non andasse a buon fine e mi fornisse informazioni sui pacchetti necessari.
I pacchetti richiesti sono solo 3:

  • libqt5gui5
  • libqt5widgets5
  • libqt5x11extras5
Tutti e tre sono installati sul sistema ma per installare keepassxc devono essere aggiornati alle ultime versione presenti in testing, pensi siano dei pacchetti "tranquilli" e che li possa aggiornare tranquillamente oppure aggiornandoli potrei causare problemi agli altri pacchetti che dipendono da loro?
Personalmente credo che purtroppo siano pacchetti tutt'altro che tranquilli, ho simulato l'installazione del primo e richiede l'aggiornamento di altri 17 pacchetti e il download di altri 5, tutti dalla testing, e credo che seguendo questa strada rischio di portare seriamente il sistema ad uno stato instabile avendo un miscuglio di pacchetti di versioni diverse.

EDIT: Mi sono accorto di essermi confuso, il terminale dice che keepassxc ha dipendenze non soddisfatte e che dipende dai tre pacchetti che ho elencato, il punto è che tra parentesi sono presenti le versioni richieste dei pacchetti e quelle ho installate sul sistema sono addirittura versioni più recenti, quindi i pacchetti ci sono nel sistema, perché mi dice che ci sono dipendenze non soddisfatte e affianco ai tre pacchetti aggiunge "...ma non sta per essere installato"?

EDIT2: Continuo a non avere una spiegazione per quello scritto sopra, ho provato comunque ad aggiornare il primo e aggiornandolo ha installato/aggiornato gli altri e una serie di altri pacchetti, ho usato per un po' il sistema in virtuale e non sembrava avesse problemi anche dopo una serie di operazioni, ma continuo a pensare che le modifiche siano troppo invasive, perciò ho rivalutato l'installazione con Gdebi e mi sono reso conto che infondo installa solo altri 6 pacchetti come dipendenze e il programma funziona bene, quindi penso di utilizzare questo fino a che non faranno un porting per la stable di Stretch, cosa ne pensi?

Ritratto di Claudio
Claudio
(Guru)
Offline
Guru
Iscritto: 05/09/2007
Messaggi: 1085

ale.a ha scritto:


deb http://ftp.us.debian.org/debian testing main

e ho provato il comando

apt-get install keepassxc/unstable

Il primo errore che stai facendo è il seguente: non puoi mettere la riga da te scritta nel repository che riguarda testing e poi chiedere al sistema di aggiornare un programma con repo di unstable. Il comdando corretto da dare sarebbe
# apt install keepassxc/testing

Quando installi un software le dipendenze porteranno sempre dietro altre dipendenze. È inevitabile. È ovvio che una forzatura come quella che stiamo facendo noi, farà dire al sistema "ehi, sei sicuro di quello che stai facendo? Lo sai che stai andando oltre un certo livello di profondità?". Quanto è corretto questo avviso è impossibile dirlo a priori. Se vuoi superare questo scoglio ti basterà scrivere:
#apt install nomeProgramma/testing nomeQualeDipendenza/testing
Ad una prima occhiata, e qui declino ogni responsabilità, non mi sembra che keepassxc sia legato particolarmente a quale DE per cui io azzarderei l'instllazione (d'altra parte se non lo fai, non lo saprai mai). Se sei troppo timoroso, fatti una copia di backup del sistema e dei suoi file importati e spero che, in fase di installazione, tu abbia optato per una partizione della home separata.

Per tornare alla prima parte del tuo messaggio, diciamo che effettivamente, come hai detto tu, io faccio una sorta di pinning manuale perché, per il solo firefox, mi sembra davvero eccessivo andarmi a leggere tutta la documentazione sul pinning ed andarla poi ad implementare.
Non è il caso di keepassxc ma sappi che debian, per alcuni software come libreoffice, permette di effettuare degli aggiornamenti a versioni più recenti del software tramite repository appositi chiamati backports. Questa soluzione è la migliore per chi, come te, ha una stable ma vuole che alcuni software siano sempre aggiornati perché non ha impatti negativi sul sistema (infatti è consigliata da debian).

EDIT: è ovvio che ti si consiglia di installare sempre dai repo ufficiali. Ci mancherebbe che ti si dicesse il contrario. È come quando Microsoft ti dice di installare sempre l'Office originale (al di là del costo). Perché te lo dice? Perché è più sicuro e controllato. Ciononostante ci sono un sacco di repository esterni utili come quello che ti consente di avere il java originale all'ultima versione e non l'openjdk, oppure quelli che ti consentono di avere alcuni software che non possono essere inclusi direttamente nei repo debian per motivi di licenza. Io, ad esempio, uso come browser anche Opera per cui faccio riferimento ad un repository esterno. Google stessa ti dice che per utilizzare google chrome e affini devi usare i suoi repo; skype idem. Come vedi il mondo è abbastanza vasto e utilizzare solo i repo debian può portare ad alcune limitazioni

Notebook Hp Pavilvion dv6 i5 amd64, 4 GB Ram, scheda grafica nVidia Corporation GT216 [GeForce GT 320M] (rev a2)
Notebook Acer Asprire 5755G amd64, 8 GB Ram, scheda grafica nVidia GeForce GT 540M
Debian testing kde

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Scusa ma non avendo visto la tua risposta ho editato il messaggio precedente con degli aggiornamenti, per quanto riguardo il comando diverso dal repository è stata una svista nel scriverlo sul forum, ovviamente sul sistema ho scritto correttamente, per quanto riguarda il porting è esattamente quello che sto aspettando ma al momento non ce ne sono.

Per completezza e chiarezza riporto qui sotto l'edit che ho aggiunto al post precedente:
EDIT2: Continuo a non avere una spiegazione per quello scritto sopra, ho provato comunque ad aggiornare il primo e aggiornandolo ha installato/aggiornato gli altri e una serie di altri pacchetti, ho usato per un po' il sistema in virtuale e non sembrava avesse problemi anche dopo una serie di operazioni, ma continuo a pensare che le modifiche siano troppo invasive, perciò ho rivalutato l'installazione con Gdebi e mi sono reso conto che infondo installa solo altri 6 pacchetti come dipendenze e il programma funziona bene, quindi penso di utilizzare questo fino a che non faranno un porting per la stable di Stretch, cosa ne pensi?

E dato che è uscito il discorso ti faccio una domanda sul porting, dato che l'avevo già usato ma non ho capito una cosa, sarebbe come un pinning? Mi spiego, ho aggiunto i repository per i back-ports per installare VirtualBox e non gli ho decommentati, nel caso ci sia un aggiornamento di un mio programma preso dalla stable nei backports, facendo un upgrade c'è il rischio che quel programma venga aggiornato dai backports e non dalla stable come succede quando si inseriscono i repository di testing o unstable?

Ritratto di Claudio
Claudio
(Guru)
Offline
Guru
Iscritto: 05/09/2007
Messaggi: 1085

ale.a ha scritto:


EDIT2: Continuo a non avere una spiegazione per quello scritto sopra, ho provato comunque ad aggiornare il primo e aggiornandolo ha installato/aggiornato gli altri e una serie di altri pacchetti, ho usato per un po' il sistema in virtuale e non sembrava avesse problemi anche dopo una serie di operazioni, ma continuo a pensare che le modifiche siano troppo invasive, perciò ho rivalutato l'installazione con Gdebi e mi sono reso conto che infondo installa solo altri 6 pacchetti come dipendenze e il programma funziona bene, quindi penso di utilizzare questo fino a che non faranno un porting per la stable di Stretch, cosa ne pensi?

Penso che se aspetti un porting ufficiale per stretch stai fresco a meno di non usare repo esterni o altre soluzioni delle quali abbiamo già discusso.
In stresch, UFFICIALMENTE, non può entrare più alcun software e si ragionerà solo con i software esistenti. È questa la politica di debian.

Notebook Hp Pavilvion dv6 i5 amd64, 4 GB Ram, scheda grafica nVidia Corporation GT216 [GeForce GT 320M] (rev a2)
Notebook Acer Asprire 5755G amd64, 8 GB Ram, scheda grafica nVidia GeForce GT 540M
Debian testing kde

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Claudio ha scritto:

In stresch, UFFICIALMENTE, non può entrare più alcun software e si ragionerà solo con i software esistenti. È questa la politica di debian.

Non ho capito questa frase, sulla pagina di github dove viene caricato il .deb non ufficiale di keepassxc, lo sviluppatore ha detto che il primo marzo è stato aggiunto alle versioni testing e unstable ma che continuerà a fornire il pacchetto non ufficiale fino a che non sarà disponibile nei backports, quindi pensavo fosse qualcosa che sarebbe successa comunque fra non molto tempo.

Ritratto di Claudio
Claudio
(Guru)
Offline
Guru
Iscritto: 05/09/2007
Messaggi: 1085

ale.a ha scritto:


Non ho capito questa frase, sulla pagina di github dove viene caricato il .deb non ufficiale di keepassxc, lo sviluppatore ha detto che il primo marzo è stato aggiunto alle versioni testing e unstable ma che continuerà a fornire il pacchetto non ufficiale fino a che non sarà disponibile nei backports, quindi pensavo fosse qualcosa che sarebbe successa comunque fra non molto tempo.

Ma i backports non sono la stable e viceversa. I backports sono una soluzione compatibile con la stable o con testing ma sono sempre dei repo esterni. In stable non ci sono aggiornamenti dei programmi nelle versioni o nella quantità. Vengono fatti solo aggiornamenti di sicurezza dei software presenti

Notebook Hp Pavilvion dv6 i5 amd64, 4 GB Ram, scheda grafica nVidia Corporation GT216 [GeForce GT 320M] (rev a2)
Notebook Acer Asprire 5755G amd64, 8 GB Ram, scheda grafica nVidia GeForce GT 540M
Debian testing kde

Ritratto di ale.a
ale.a
(Geek)
Offline
Geek
Iscritto: 12/03/2017
Messaggi: 77

Appunto, proprio perché i backports sono repo esterni che non fanno parte di Debian, anche se sono comunque ufficiali, non capisco perché non debbano poter aggiungere dei pacchetti.

Anzi informandomi meglio sui backports credo di aver trovato la risposta (ma non ne sono sicuro) alla domanda che ti avevo fatto prima che forse ti era sfuggita, ossia:

ale.a ha scritto:

E dato che è uscito il discorso ti faccio una domanda sul porting, dato che l'avevo già usato ma non ho capito una cosa, sarebbe come un pinning? Mi spiego, ho aggiunto i repository per i back-ports per installare VirtualBox e non gli ho decommentati, nel caso ci sia un aggiornamento di un mio programma preso dalla stable nei backports, facendo un upgrade c'è il rischio che quel programma venga aggiornato dai backports e non dalla stable come succede quando si inseriscono i repository di testing o unstable?

Su questa guida ho letto i campi più importanti estratti dal repository backports per Debian 8:

Origin: Debian Backports
Label: Debian Backports
Suite: stretch-backports
Codename: stretch-backports
Date: (data ultimo aggiornamento)
Valid-Until: (circa una settimana dopo l'ultimo aggiornamento)
NotAutomatic: yes
ButAutomaticUpgrades: yes
Architectures: (tutte le architetture supportate, per esempio amd64 e i386)
Components: main contrib non-free
Description: Backports for the Stretch Distribution
 
... il comportamento di default è determinato dalle due righe NotAutomatic: yes e ButAutomaticUpgrades: yes, che assegnano una Pin-Priority di 100 invece che 500 ai pacchetti di questo repository, salvo uso del pinning. Questo permette di tenerli disabilitati, finché non vengono scelti esplicitamente, ma senza rinunciare all'aggiornamento automatico dei pacchetti già installati da questo repository.

Questo dovrebbe significare che usando un upgrade io possa aggiornare solo i pacchetti installati dai backports, e non altri di cui esiste una versione più recente, la cosa che non capisco però è che c'è scritto che i backports sono disabilitati se non scelti esplicitamente, però quando ho installato VirtualBox mi è bastato dare
sudo apt-get install virtualbox
e non
sudo apt-get install virtualbox/stretch-backports
oppure
sudo apt-get -t stretch-backports install virtualbox

come invece è scritto qui
Come mai?