Comment installer un seul paquet depuis Debian Sid?

8

Prenez par exemple ibus-sunpinyin, qui n'existait pas dans la version compressible. Je ne vais pas basculer l'ensemble du système vers la branche sid, donc, je veux télécharger le package unique à partir du référentiel sid et l'installer comme:

# Add the sid repository
sudo mv /tmp/sid.list /etc/apt/sources.list.d/

# Error: can't install because version conflicts of libc6:
#     sudo apt-get install ibus-sunpinyin

# This is ok but it will upgrade a lot of mess from sid branch:
#     sudo apt-get upgrade ibus-sunpinyin

# So, instead of apt-get install/upgrade, let me download & install the single package.
# However, this errored again because of version conflicts of libc6:
#      apt-get install --download-only ibus-sunpinyin

## THEN, WHAT CAN I DO? ##

# Remove the sid repository.
sudo mv /etc/apt/sources.list.d/sid.list /tmp

# Install the single package.
sudo dpkg -i ./ibus-sunpinyin-x.x.x.deb
Xiè Jìléi
la source
Pour télécharger un seul package: vous pouvez apt-get download ...(pour apt-get 0.8.11+), ou aptitude download .... Cependant, je suis également incapable de le faire en sudo dpkg -i ibus-sunpinyin-x.x.x.debraison des dépendances sid.
Xiè Jìléi

Réponses:

1

Vous pouvez également essayer de télécharger les packages source à partir du référentiel Sid et de les créer sur votre système Squeeze. Vous pouvez rencontrer des problèmes s'il existe de nombreuses dépendances ou si le package dépend d'une version d'une bibliothèque qui n'est pas disponible dans Squeeze.

Si cela fonctionne, vous n'avez pas besoin de maintenir une autre distribution dans un dossier séparé, comme vous le feriez avec l'approche amorcée.

Neil
la source
1
l'épinglage apt est la bonne façon de le faire, TBH. jaqque.sbih.org/kplug/apt-pinning.html
Rob
9

Ce que vous voulez VRAIMENT, c'est en savoir plus sur l'épinglage d'apt. http://jaqque.sbih.org/kplug/apt-pinning.html

Rob
la source
Vous en avez besoin si le package que vous voulez n'a pas de backport. Sinon, je parierais que les rétroportages fonctionnent généralement mieux.
d -_- b
1
Ouais. Les rétroportages sont un pari beaucoup plus sûr. L'épinglage d'apt ne fonctionnera pas toujours et tirera parfois beaucoup plus que vous le souhaitez (personne ne voudra vous aider si vous tirez libc6 de Sid!)
Rob
4

Ce paquet est disponible dans Debian Backports , ce qui vous facilitera beaucoup la vie. Il s'agit généralement de packages extraits de testing ou unstable (Sid) et «rétroportés» vers la version stable actuelle.

Ajoutez cette ligne à votre sources.list

deb http://backports.debian.org/debian-backports squeeze-backports main

puis lancez:

apt-get update && apt-get -t squeeze-backports install ibus-sunpinyin
Chad Feller
la source
0

Une façon de contourner ce problème consiste à utiliser cdebootstrappour installer un système sid de base, puis à utiliser chrootpour exécuter le programme dont vous avez besoin dans le nouveau système.

cdebootstrapinstalle un nouveau système Debian à partir de la distribution souhaitée dans un répertoire. Ensuite, chrootvous permet d'exécuter des programmes dans cette autre distribution sans redémarrer ou quoi que ce soit.

Vous pouvez également utiliser mount --bindpour permettre au système chrooté d'accéder à votre dossier de départ, / proc, etc.

A partir du système chrooté, apt-get s'installera à partir du référentiel sid.

Pour une explication plus détaillée, voir https://wiki.ubuntu.com/DebootstrapChroot .

Neil
la source