Domanda Come installare una versione specifica di alcuni pacchetti? [duplicare]


Questa domanda ha già una risposta qui:

Le mie domande sono divise in due parti:

  1. Come sapere la versione del pacchetto installato?
  2. Come installare una versione del pacchetto specifica?

159
2018-03-03 08:57


origine


Si prega di non votare per cancellare questo post. È utile come un cartello. I duplicati servono a guidare gli altri alla giusta domanda e risposta. - terdon♦


risposte:


Come sapere la versione del pacchetto installato?

apt-cache policy <package name>

Il comando precedente mostrerà la versione del pacchetto installato e anche tutte le versioni disponibili nel repository in base alla versione di Ubuntu in cui si sta eseguendo. Non visualizza la versione del pacchetto che era destinata ad un'altra versione di Ubuntu (non la tua).

Esempio:

$ apt-cache policy gparted
gparted:
  Installed: 0.16.1-1
  Candidate: 0.16.1-1
  Version table:
 *** 0.16.1-1 0
        500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages
        100 /var/lib/dpkg/status

Quindi la versione di gparted installata è 0.16.1-1.

Come installare una versione del pacchetto specifica?

sudo apt-get install <package name>=<version>

Esempio:

$ sudo apt-get install gparted=0.16.1-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gparted is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.

226
2018-03-03 09:10



Puoi per favore fornire maggiori dettagli per il secondo comando? Ci sono dei limiti? Ad esempio, qualcuno in 12.04 può installare una versione di un pacchetto disponibile in 13.10? - DK Bose
In aptitude premendo Invio sul nome del pacchetto vengono visualizzate le informazioni sul pacchetto e nella parte inferiore di questa schermata è presente un elenco delle versioni disponibili. - karatedog
L'uso simile di apt-cyg funziona in Cygwin: apt-cyg install package=version? - Danijel
In ogni caso, ho mai provato questo sempre ottieni l'errore The following packages have unmet dependencies:, seguito da un elenco di pacchetti. Qualche modo per farlo risolvere automaticamente? - Hubro
Si prega di notare che molto probabilmente fallirà, perché di solito ci sono solo 1 o 2 versioni del pacchetto che sono disponibili nel repository. Se si desidera una versione diversa da quella attualmente progettata per la propria distribuzione, potrebbe essere necessario scaricarla e installarla sudo dkpg -i <package-file>. Gli errori di dipendenza devono essere risolti scaricando e installando (anche con dkpg) tutti i pacchetti mancanti (questo può richiedere molte iterazioni). In alternativa è possibile scaricare il codice sorgente del programma, compilarlo e installarlo (ciò richiede anche la risoluzione delle dipendenze manuale). - nuoritoveri


Non esiste un modo generale per controllare la versione dei pacchetti installati, ma la maggior parte di essi può essere controllata usando il comando:

command -v 

per esempio per conoscere la versione di apache2:

apache2 -v

Ma questo potrebbe non funzionare con altri pacchetti, quindi la procedura migliore è cercare nel manuale.

man XXX

e cerca l'opzione di mostrare la versione.

Per installare una versione specifica di un pacchetto:

sudo apt-get install package=version

Per esempio:

sudo apt-get install apache2=2.3.35-4ubuntu1

4
2018-03-03 09:03



possiamo anche controllare la versione del pacchetto installato usando dpkg -l nome-pacchetto - Nischay
Dove trovi / rintraccia la meta 2.3.35-4ubuntu1 quando si specifica la versione? - Erutan409
@ Erutan409 Il commento sopra il tuo è come puoi farlo. - user124384
@ Erutan409 - usa apt-cache madison packagename - Visualizzerà tutte le versioni che possono essere viste da qualsiasi repository installato / configurato (inclusi i PPA) - ivanivan