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?
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
.