Como instalar um único pacote no Debian sid?

8

Tomemos o ibus-sunpinyin, por exemplo, que não existe na liberação do aperto. Não vou mudar o sistema inteiro para o ramo sid, então, quero fazer o download do pacote único do repositório sid e instalá-lo como:

# 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
fonte
Para baixar um único pacote: você pode apt-get download ...(para o apt-get 0.8.11+), ou aptitude download .... No entanto, também não consegui sudo dpkg -i ibus-sunpinyin-x.x.x.debdevido às dependências sid.
Xie Jìléi

Respostas:

1

Você também pode tentar fazer o download dos pacotes de origem do repositório sid e construí-los no seu sistema squeeze. Você pode ter problemas se houver muitas dependências ou se o pacote depender de uma versão de uma biblioteca que não esteja disponível no squeeze.

Se isso funcionar, você não precisará manter outra distribuição em uma pasta separada, como faria com a abordagem de inicialização.

Neil
fonte
11
apt-pinning é a maneira correta de fazer isso, TBH. jaqque.sbih.org/kplug/apt-pinning.html
Rob
9

O que você REALMENTE deseja é aprender sobre o apt-pinning. http://jaqque.sbih.org/kplug/apt-pinning.html

Roubar
fonte
Você precisa disso se o pacote que você deseja não possui backport. Caso contrário, eu apostaria que os backports geralmente funcionam melhor.
d -_- b
11
Sim. Backports são uma aposta muito mais segura. Apt-fixando nem sempre funciona e às vezes vai puxar muito mais do que você quer (ninguém vai querer ajuda se você puxar libc6 de sid!)
Rob
4

Este pacote está disponível nos Backports da Debian , o que facilitará sua vida. Geralmente, são pacotes retirados de testing ou unstable (sid) e "backported" para a versão estável atual.

Adicione esta linha ao seu sources.list

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

então corra:

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

Uma maneira de contornar isso é usar cdebootstrappara instalar um sistema sid básico e depois chrootexecutar o programa que você precisa dentro do novo sistema.

cdebootstrapinstala um novo sistema debian a partir da distribuição que você desejar em um diretório. Em seguida, chrootpermite executar programas nessa outra distribuição sem precisar reinicializar ou qualquer coisa.

Você também pode usar mount --bindpara permitir que o sistema chroot acesse sua pasta pessoal, / proc, etc.

De dentro do sistema chroot, o apt-get será instalado a partir do repositório sid.

Para uma explicação mais detalhada, consulte https://wiki.ubuntu.com/DebootstrapChroot .

Neil
fonte