web-dev-qa-db-fra.com

Comment savoir quels paquets de backport sont disponibles et éviter de perdre des paquets lors d'une mise à niveau manuelle?

J'ai été surpris de constater que depuis Natty 11.04, même lorsque nous avons activé un référentiel de backports, les packages mis à jour ne sont pas installés automatiquement à partir de ce référentiel. Nous devons installer les mises à jour individuelles manuellement, par exemple. via

apt-get install ipython/precise-backports

comme expliqué à buntuBackports - Documentation Ubuntu de la communauté . Je suppose que je n'ai tout simplement pas reçu le mémo ...

Première question: comment savoir quelles sont nos options pour les mises à niveau via des backports? Je suis surpris que, même si je demande un statut, par exemple via

wajig status ipython

cela ne me dit pas qu'une nouvelle version est disponible. Je voudrais une liste de toutes les mises à jour pour les paquets que j'ai déjà installés.

Ensuite, comment puis-je éviter de perdre des paquets existants simplement parce que je mets à niveau via un backport?

Par exemple. L'installation ci-dessus d'ipython me dit:

The following packages will be REMOVED:
   ipython-notebook ipython-qtconsole

Comment puis-je dire que je veux le dernier ipython rétroporté, ainsi que tout autre paquet pour lequel des mises à jour sont disponibles et qui en dépendent, sans les comprendre manuellement ni les installer également?

Je sais que je peux changer l'épinglage pour que je reçoive toutes les mises à jour , mais j'hésite à aller à l'encontre du conseil général. Mais si un utilisateur demande qu'un paquet soit mis à jour, ne serait-il pas naturel de mettre à jour toutes les dépendances, comme vous le feriez d'un ppa?

5
nealmcb

comment pouvons-nous savoir quelles sont nos options pour les mises à niveau via des backports?

Exécutez apt-get avec le commutateur --default-release ou -t:

Sudo apt-get -t precise-backports upgrade

Est identique à apt-get install ipython/precise-backports mais vous n'avez pas à insérer la partie precise-backports.

Je suis surpris que, même si je demande un statut, par exemple via wajig status ipython il ne me dit pas qu'une nouvelle version est disponible.

Pour cela j'utilise apt-cache policy:

apt-cache policy iceweasel
iceweasel:
  Installed: 25.0~a2+20130816004007-1~bpo70+1
  Candidate: 25.0~a2+20130816004007-1~bpo70+1
  Package pin: 25.0~a2+20130816004007-1~bpo70+1
  Version table:
 *** 25.0~a2+20130816004007-1~bpo70+1 1990
       1990 http://mozilla.debian.net/ wheezy-backports/iceweasel-aurora i386 Packages
        100 /var/lib/dpkg/status
     23.0-2 1990
         -1 http://ftp.us.debian.org/debian/ experimental/main i386 Packages
     17.0.8esr-2 1990
        990 http://ftp.utexas.edu/debian/ testing/main i386 Packages
         -1 http://ftp.de.debian.org/debian/ sid/main i386 Packages

Ensuite, comment puis-je éviter de perdre des paquets existants simplement parce que je mets à niveau via un backport?

Si les packages que vous souhaitez mettre à niveau suppriment les dépendances précédentes, vous devez alors décider de mettre à niveau ou de laisser les choses en l'état. Ou vous vous contentez de forcer les choses et de casser votre installation, tout dépend de vous.

Comment puis-je dire que je veux le dernier ipython rétroporté, ainsi que tout autre paquet pour lequel des mises à jour sont disponibles et qui en dépendent, sans les comprendre manuellement ni les installer également?

Comme ci-dessus.

Mais si un utilisateur demande qu'un paquet soit mis à jour, ne serait-il pas naturel de mettre à jour toutes les dépendances, comme vous le feriez d'un ppa?

S'il n'y a pas de candidats à jour, non. Cela se produit souvent sur les distributions de versions glissantes, certains paquets dépendant d’autres qui ne sont pas encore disponibles dans les référentiels, ainsi apt décide de ne pas mettre à jour car il rompt les dépendances.

Pour le cas de ipython que vous mentionnez dans les commentaires:

Suivant la page des dépendances du paquetipython-notebook=0.13.2-1~ubuntu12.04.1 dépend de ipython=0.13.2-1~ubuntu12.04.1, mais si vous essayez de mettre à jour ipython seul, apt prendra vos actions en priorité et les exécutera à tout moment. Coût. Comme vous ne dites qu'aptible à installer ipython à partir de backports, il comprend:

Remplissez seulement cette condition à tout prix

Ainsi, le seul moyen de le faire est de supprimer/rétrograder tout paquet qui obtient des dépendances brisées à cause de cette opération (ipython-notebook) et d’installer ipython à partir des backports. La bonne façon de faire est:

Sudo apt-get -t precise-backports install ipython-notebook ipython

ou

Sudo apt-get -t precise-backports upgrade

Le premier indiquera à apt-get d'installer ipython-notebook et ipython à partir des backports, le second indiquera à apt de mettre à niveau tout paquet installé comportant des mises à niveau dans le référentiel precise-backports.

4
Braiam