Youtube + Buddy Poke x Iceweasel + Flash no Debian Etch

Cansado de tentar instalar o flashplayer 10 original da Adobe e fazê-lo se entender com o Iceweasel para ver seus vídeos no Youtube ou utilizar o Buddy Poke do orkut sem travamentos ou lentidão? Então esse artigo é para você!

[ Hits: 21.118 ]

Por: Hugo Alvarez em 16/02/2009


Debug



O problema

Nesta página você vai encontrar informações muito mais pessoais sobre como realizei o debug para descobrir o que havia de errado entre o Flash 10 e os sistemas da família Debian do que explicações científicas sobre o porque o Flash 10 é executado perfeitamente quando na GLIBC 2.4 ou superiores e nas versões mais antigas não.

Essa informação não era o foco do meu trabalho e somente os desenvolvedores devem saber, por esse motivo sequer pesquisei a respeito, meu objetivo era colocar o Flash 10 da Adobe para rodar perfeitamente no Debian.

O início de tudo

Ainda no ano passado, um problema de sistema na minha máquina do trabalho impedia a perfeita inicialização, não tendo tempo para corrigir tal problema, peguei um segundo HD e coloquei na máquina deixando o meu HD original como slave para acessar os dados, foi então que me deparei com o problema na instalação do Flash 10, que também deixei para posterior resolução.

Observando que em casa meu sistema funcionava bem, estava instalada a versão 9 do flash, algumas funcionalidades não eram atendidas como trocar minhas roupas no buddy-poke mas o youtube funcionava perfeitamente, logo o problema não era tão grave, exceto se eu abrisse 10 janelas com algum flash de uma vez, nesse caso o crash era certo.

Procurei uma receita de bolo rápida mas tudo que testei não funcionava legal na minha máquina do trabalho (dual-core) que precisava desesperadamente do flash. Decidi então por a mão na massa.

Comecei baixando e instalando uma versão da Adobe do flash 9 que encontrei no google, até aqui o youtube começou a funcionar, mas com as mesmas limitações já conhecidas sobre as novas funcionalidades do Flash 10, por não estarem presentes.

Então a idéia foi substituir a libflashplayer.so instalada e funcionando do flash 9 pela libflashplayer.so do flash 10 do site da Adobe, imediatamente o Iceweasel desapareceu, mandei ele abrir restaurando a sessão e observei que a janela do vídeo do youtube ficou completamente branca, mas sem a mensagem do youtube informando que o flash não está instalado, somente uma janela branca.

Restaurei a libflashplayer.so do 9 e imediatamente voltou a funcionar, copiei novamente a versão 10 e novamente observei o mesmo problema, logo tratava-se de um problema na biblioteca libflashplayer.so sem dúvida, então fui verificar:

(Versão 9 dentro de /usr/lib/iceweasel, funcional)

ti03:/usr/lib/iceweasel/plugins# ldd libflashplayer.so
        linux-gate.so.1 =>  (0xffffe000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb77aa000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7798000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb76ac000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb769e000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0xb764f000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb75e5000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb75b9000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb72cf000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7295000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7203000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb71de000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb70ad000)
        /lib/ld-linux.so.2 (0x80000000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb70a9000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb70a4000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb709b000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb7083000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb706f000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb704f000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7038000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb6fb7000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6faf000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6f75000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6f5b000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6f58000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6ef5000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb6eec000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6ee4000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6ee1000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6ed9000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6ed5000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6ecc000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6ec7000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6e9c000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6e79000)

ldd libflashplayer.so (quando instalada a versão 10 em /usr/lib/iceweasel/)

ti03:/usr/lib/iceweasel/plugins# ldd libflashplayer.so
./libflashplayer.so: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./libflashplayer.so)
        linux-gate.so.1 =>  (0xffffe000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7448000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7436000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb734a000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb733c000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0xb72ed000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7283000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7257000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb6f6d000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb6eec000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6ed2000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb6ebc000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6eb4000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6e79000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6e17000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6ddd000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6dda000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6dd6000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb6d44000)
        libnss3.so => not found
        libsmime3.so => not found
        libssl3.so => not found
        libplds4.so => not found
        libplc4.so => not found
        libnspr4.so => not found
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6d1d000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6d12000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb6be1000)
        /lib/ld-linux.so.2 (0x80000000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb6bde000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6bd8000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb6bcf000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb6bb7000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb6ba3000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6b83000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6b7a000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6b77000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6b6f000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6b6c000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6b63000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6b5e000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6b32000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6b0f000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb6b06000)

Nesse momento detectei que tratava-se da incompatibilidade entre GLIBC e Flash, então decidi atualizar a minha GLIBC, após procurar nos repositórios Debian e descobrir que não havia uma versão stable empacotada da GLIBC acima de 2.3.6 para Etch, optei por assumir os riscos e migrar para o pacote 2.7 testing, com o pensamento de que provavelmente essa versão já está bem evoluída, já que existem versões mais novas ainda, como a 2.9.

Com o pacote da GLIB em mãos, tentei o upgrade de versões, porém sem sucesso, pois, eram requeridas atualizações para o locales e tzdata, além de todas as dependências da libc6. Para contornar tal problema, configurei meu apt.conf para o mirror de onde eu tirei o pacote devel da GLIBC.

Tentei novamente a atualização, dessa vez surgindo um botão details com as alterações de sistema que seriam realizadas caso eu continuasse e notei que meu Synaptic tinha novas atualizações, quando vi ele querendo atualizar 437 pacotes, ou seja, ele estava querendo substituir praticamente todos os pacotes do meu Etch, minha máquina deixaria de ser um Etch stable para virar um Lenny, como eu só queria a GLIBC não realizei nenhuma atualização nesse momento.

Prossegui com a instalação e após finalizada vi que a libflashplayer.so não apresentava mais o erro com o ldd, recoloquei as configurações originais no apt.conf e realizei um novo upgrade, ele removeu os pacotes que perderam a funcionalidade com a troca de GLIBC e fui realizar os testes, finalmente com sucesso.

Como comentei durante a etapa de instalação, as transparências ainda não são perfeitas como no Windows, mas não cheguei a pesquisar se existe alguma ligação entre a transparência e essas libs não encontradas:

        libnss3.so => not found
        libsmime3.so => not found
        libssl3.so => not found
        libplds4.so => not found
        libplc4.so => not found
        libnspr4.so => not found

Não realizei nenhum teste de verificação entre as libs não encontradas e a transparência, mas isso é mais simples, basta um colega que tenha uma distro com GLIBC acima de 2.4 nativa postar um screenshot de um site com transparência no imageshack e fazer a verificação da libflashplayer.so com o ldd , assim podemos comparar as saídas.

Espero ter sido útil e ter posto fim aos problemas do Flash vs Iceweasel, era muito chato ouvir os Win-users falando mal do Linux só porque a Adobe não dá o devido suporte ao player que disponibilizaram, sequer um README com os requerimentos de sistema, ou pelo menos eu não encontrei essa informação no site deles.

Dedico esta solução aos meus amigos do TI, da 4Linux e à comunidade Debian.

Obrigado a todos e Viva o Linux!

Página anterior    

Páginas do artigo
   1. Instalação e testes
   2. Debug
Outros artigos deste autor

Instalando um firewall mínimo em Debian

Travando qualquer máquina Linux

Samba + Windows XP (perfil móvel)

Leitura recomendada

Amadeus: Ambiente Virtual de Aprendizagem - Instalação e Configuração

FreeBSD + Asterisk

Modem Huawei E226 Claro 3G

Internet no Linux através de celular HTC TYTN II

Certificado Digital e diversos ambientes Java no GNU/Linux

  
Comentários
[1] Comentário enviado por silasvivaolinux em 18/02/2009 - 15:12h

Kkk

Buddy Poke é Phoda!

[2] Comentário enviado por albfneto em 19/02/2009 - 12:47h

Legal.
será assim tb no gentoo e no sabayon, vou testar pq. com 64 bits a perda do plugin é muito comum, some de repente!

[3] Comentário enviado por femars em 20/02/2009 - 08:48h

java 5 não é muito antigo? vista que estamos já no 6 u12? poderia instalar o mais atual?

[4] Comentário enviado por nicolo em 20/02/2009 - 12:02h

O artigo tá legal, rico em experiencia e aprendizado.
O YouTube e o flash são programas populares.
Essa instalação, venhamos e convenhamos, não se parece com o windows.
Fico pensando ... se continuar precisando tudo isso para operar programas
populares.... se o linux tem algum futuro, fora do laboratório, digo fora dos nichos de profissionais de informática.

[5] Comentário enviado por hugoalvarez em 20/02/2009 - 13:26h

[1] hehehe Buddy Poke mta gente odeia mas vai falar que nunca um cliente (principalmente do sexo feminino) reclamou o seu não funcionamento no Linux. Quem usa o linux no desktop com ctza deve querer os flashs do orkut e youtube funcionando ;)

[2] Deve servir na Gentoo sim, bom o teste para saber se atende ou não é bem simples basta colocar o plguin do flash no lugar correto e testá-lo com o ldd, se ele reclamar da versão da GLIB é só atualizar e resolver o problema.

[3] É antigo sim, essa versão que eu utilizei já está empacotada no mirror do etch e funciona perfeitamente, pelo menos nas aplicações que eu utilizo aqui e algumas comuns do tipo IRPF ele funciona bem, mas caso queira pode instalar sim a última versão direto do site da Sun.

[4] De fato a instalação não é tão simples para usuários comuns, ter q fazer tudo isso para rodar um plugin de flash não é muito agradável, mas quem quiser pode optar por uma distro como a Lenny que já vem com uma GLIB de versão compatível com o flash e não terá que fazer nd disso, eu testei recentemente a Lenny mas ainda não achei madura o suficiente por isso ainda vou de Etch por algum tempo, pra quem não quiser sair do etch pro Lenny essa é a solução.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts