Come installare un singolo pacchetto da Debian sid?


8

Prendi ad esempio ibus-sunpinyin, che non esiste nel rilascio di compressione. Non ho intenzione di passare l'intero sistema al ramo sid, quindi, voglio scaricare il singolo pacchetto dal repository sid e installarlo come:

# 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

Per scaricare un singolo pacchetto: è possibile apt-get download ...(per apt-get 0.8.11+), oppure aptitude download .... Tuttavia, non sono riuscito a sudo dpkg -i ibus-sunpinyin-x.x.x.debcausa delle dipendenze secondarie.
Xiè Jìléi,

Risposte:


1

Puoi anche provare a scaricare i pacchetti sorgente dal repository sid e crearli sul tuo sistema di compressione. Potrebbero verificarsi problemi se ci sono molte dipendenze o se il pacchetto dipende da una versione di una libreria che non è disponibile in squeeze.

Se funziona, non è necessario mantenere un'altra distribuzione in una cartella separata, come si farebbe con l'approccio con bootstrap.


1
apt-pinning è il modo corretto per farlo, TBH. jaqque.sbih.org/kplug/apt-pinning.html
Rob

9

Ciò che DAVVERO vuoi è conoscere l'ap-pining. http://jaqque.sbih.org/kplug/apt-pinning.html


Questo è necessario se il pacchetto desiderato non ha backport. Altrimenti scommetterei che i backport funzionino meglio.
d -_- b

1
Si. I backport sono una scommessa molto più sicura. L'ap-pinning non funzionerà sempre e talvolta tirerà molto più di quanto tu voglia (nessuno vorrà aiutarti se togli libc6 da sid!)
Rob

4

Questo pacchetto è disponibile in Debian Backports , il che renderà la tua vita molto più semplice. Questi sono generalmente pacchetti estratti da testing o unstable (sid) e "backported" alla versione stabile corrente.

Aggiungi questa linea al tuo sources.list

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

quindi eseguire:

apt-get update && apt-get -t squeeze-backports install ibus-sunpinyin

0

Un modo per aggirare il problema è utilizzare cdebootstrapper installare un sistema Sid di base, quindi utilizzare chrootper eseguire il programma necessario all'interno del nuovo sistema.

cdebootstrapinstalla un nuovo sistema debian dalla distribuzione che desideri in una directory. Quindi, chrootconsente di eseguire programmi in quell'altra distribuzione senza riavviare o altro.

Puoi anche usare mount --bindper consentire al sistema chroot di accedere alla tua cartella home, / proc, ecc.

Dall'interno del sistema chrooted, apt-get verrà installato dal repository sid.

Per una spiegazione più dettagliata, consultare https://wiki.ubuntu.com/DebootstrapChroot .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.