Versão libc6 errada no Debian Squeeze - posso voltar atrás?

1

Tentando fazer algumas gemas de ruby funcionarem, descobri que precisava instalar o pacote dev ruby, que aparentemente requeria o dev libc6. Quando tentei instalá-lo (usando o squeeze aprovado apt-sources), descobri que o último libc6-dev estava fora de sincronia com a minha versão atual da libc. Acontece que a versão do libc6 que eu deveria estar usando (de acordo com o apt) deveria ser libc6 2.11.3-2. Eu estou no libc6 2.13-7. Em algum momento, um usuário deve ter usado uma fonte upstream para fazer algo e pegou uma nova libc6.

A minha pergunta é a seguinte: se eu quiser voltar às versões aprovadas para o meu sistema operacional, eu precisarei desinstalar o libc6 e todos os seus programas dependentes e então reinstalá-los via apt-get, ou existe uma maneira melhor? fazer isso?

Eu também descobri que o último libc6-dev é incompatível com a versão atual do gcc que eu tenho (4.4), então seguir em frente não é uma opção a menos que eu faça isso também.

EDITAR: A solução que acabamos usando foi usar o aptitude para baixar os arquivos .deb, e então usar o dpkg para instalá-los.

Por exemplo, navegue para / var / cache / apt / archives (apenas para mantê-los no mesmo lugar que o apt-get os coloca)

execute o seguinte:

aptitude download libc6 -t squeeze
dpkg --force-depends -i <name of package>.deb

Isso resolveu esse problema, mas obviamente causou outro conjunto de problemas de dependência. Cada um pode ser resolvido da mesma maneira.

aptitude download libc-bin -t squeeze
dpkg --force-depends -i <name of package>.deb
    
por NateDSaint 02.04.2012 / 20:39

2 respostas

2

De acordo com o repositório de pacotes da Debian , o Squeeze usa 2.11.3-2 versão do libc6.So se você tem uma versão mais nova instalada, você provavelmente está acompanhando Wheezy, Sid, algum outro repositório não oficial ou instalou o libc6 manualmente. Verifique seu /etc/apt/sources.list e /etc/apt/sources.list.d/*

De qualquer forma, você pode instalar a versão desejada usando Synaptic Package Manager . Abra, localize o pacote, selecione Pacote - > Forçar versão no menu. Lá você pode escolher entre as versões disponíveis em suas fontes configuradas.

Editar:

O APT tem comando de console para isso, apt-get install <package>=<version> Além disso, você também pode especificar a versão do Debian que você quer usar (tem a ver com pinagem automática), desde que esteja nas suas fontes, com apt-get -t squeeze install <package> (ou stable em vez de squeeze ) e você também pode usar =<version> aqui. Execute todos os comandos como root. Depois de revertê-lo neste caso experimental para stable, as dependências podem causar uma bagunça, então você pode ter que fazer um downgrade manual de pacotes que o libc6 também depende, e possivelmente seus dependentes.

Você também pode fazer tudo manualmente sem verificação de dependência (não recomendado se você não tiver certeza do que fazer caso algo ocorra) baixando primeiro o pacote com apt-get download libc6 , em seguida, vá para /var/cache/apt/archives/ onde o APT armazena pacotes baixados e emita dpkg --force-downgrade -i <full_package_name>.deb como root. Ao digitar o nome do pacote baixado, digite libc6 e use o preenchimento automático de tabulação para facilitar.

    
por 02.04.2012 / 22:47
1

classificando sources.list - > baixar o pacote e fazer o downgrade da força funcionou para mim! depois disso tudo que eu tive que fazer foi

apt-get -f install 

& &

apt-get autoremove

    
por 06.09.2017 / 14:07