Como atualizar a libc (glibc) no kali linux (baseado no debian)?

0

Eu recebo o seguinte erro quando tento executar o armitage e, além disso, recebo erros quando tento instalar determinados pacotes ou quando executo determinado software.

root@Xeno:~# armitage
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/xawt/libmawt.so: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version 'GLIBC_2.16' not found (required by /usr/lib/i386-linux-gnu/libkrb5.so.3)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
    at java.lang.Runtime.load0(Runtime.java:795)
    at java.lang.System.load(System.java:1062)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1088)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1657)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1686)
    at java.awt.Component.<clinit>(Component.java:595)
    at armitage.ArmitageMain.main(ArmitageMain.java:199)

Log de erro de quando tentei adicionar o repositório necessário para notepadqq:

root@Xeno:~# sudo add-apt-repository ppa:notepadqq-team/notepadqq
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 8, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties
  File "/usr/lib/python2.7/dist-packages/softwareproperties/SoftwareProperties.py", line 53, in <module>
    from ppa import AddPPASigningKeyThread, expand_ppa_line
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 27, in <module>
    import pycurl
ImportError: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version 'GLIBC_2.16' not found (required by /usr/lib/i386-linux-gnu/libkrb5.so.3)

Aqui está um exemplo de como tentar instalar um pacote (libc, com problemas de atualização):

root@Xeno:~# sudo apt-get install libc6
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libc-dev-bin : Depends: libc6 (< 2.14)
 libc6-dev : Depends: libc6 (= 2.13-38+deb7u8)
 libc6-i686 : PreDepends: libc6 (= 2.13-38+deb7u8)
 locales : Depends: libc-bin (> 2.19) but 2.13-38+deb7u8 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Aqui está minha versão da libc: root @ Xeno: ~ # dpkg-query -l libc6

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version       Architecture  Description
+++-=================-=============-=============-=======================================
ii  libc6:i386        2.13-38+deb7u i386          Embedded GNU C Library: Shared librarie

Agora, o principal é que quero que o armitage seja executado novamente e quero que os pacotes possam ser instalados novamente. Eu acredito strongmente que atualizar a versão libc (glibc) (para a versão [...] 2.16 '[...]' GLIBC_2.16 não encontrada [...] ') é a resposta, mas não consigo encontrar uma maneira de fazer isto. Como posso fazer isso?

P.S. Eu sei que tenho entradas dublicate no arquivo sources.list, mas isso não deve ser um problema.

Eu tentei executar o apt-get dist-upgrate como sugerido por Gilles e ele retornou o seguinte log:

root@Xeno:~# apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libkrb5-3 : Depends: libc6 (>= 2.16)
 libtirpc1 : Depends: libc6 (>= 2.16)
 locales : Depends: libc-bin (> 2.19) but 2.13-38+deb7u8 is installed
E: Unmet dependencies. Try using -f.

Conteúdo do arquivo Sources.list:

 ## Regular repositories
    deb http://http.kali.org/kali kali main non-free contrib
    deb http://security.kali.org/kali-security kali/updates main contrib non-free
    deb http://http.kali.org/ /kali main contrib non-free
    deb http://http.kali.org/kali debian-wheezy main contrib non-free
    ##deb http://http.kali.org/kali kali-dev main contrib non-free
    ##deb http://http.kali.org/kali kali-dev main/debian-installer
    deb http://http.kali.org/kali kali main contrib non-free
    deb http://http.kali.org/kali kali main/debian-installer
    ## Source repositories
    deb-src http://http.kali.org/kali kali main non-free contrib
    deb-src http://security.kali.org/kali-security kali/updates main contrib non-free
    ##deb-src http://http.kali.org/kali kali-dev main contrib non-free
    deb-src http://http.kali.org/kali kali main contrib non-free
    
por XenoWad 20.08.2015 / 09:43

1 resposta

1

O upgrade da libc não é recomendado. Você acabará atualizando muitos outros pacotes. Isso é o que a mensagem sobre dependências não atendidas está lhe dizendo: se você atualizar a libc, você precisa atualizar um monte de outros pacotes.

O motivo pelo qual esses outros pacotes não estão sendo atualizados é porque você esqueceu de executar apt-get update ou porque tem preferências em /etc/apt/preferences ou /etc/apt/preferenced.d/* que tornam alguns pacotes mais novos instaláveis apenas por solicitação explícita.

O que você deve fazer é apenas atualizar toda a distribuição. O Kali Linux atualmente possui o Glibc 2.19. Verifique se suas fontes são razoáveis, execute apt-get update , execute apt-get dist-upgrade e vá passear enquanto os pacotes estão sendo baixados e descompactados.

    
por 20.08.2015 / 23:30