Introdução
Trago uma solução que pode ser útil para o pessoal que utiliza o
Debian Etch no desktop e todas as versões familiares que atualmente tem seus navegadores
Iceweasel travando ao executar flash. Eu particularmente não abro mão desse SO para navegar na internet e ouvir música, mas já estava aborrecido com o fato do
Youtube e
Buddy-poke não funcionarem mesmo que eu tentasse todas as soluções disponíveis na internet.
Então decidi estudar o problema, vou separar a solução e o debug, então vamos à solução.
Preparativos
Baixe os seguintes arquivos:
Flash player 10
Baixe direto do
site da Adobe.
Glibc versão 2.7 (ou superior, caso queiram assumir o risco)
http://http.us.debian.org/debian/pool/main/g/glibc/libc6-prof_2.7-18_i386.deb
Essa versão de GLIBC está nos mirrors de testing Lenny ou Etch-r7, conforme a declaração no README.
"See http://www.debian.org/ for information about Debian
GNU/Linux.
Four Debian releases are available on the main site:
Debian 4.0r7, or etch. Access this release through dists/stable.
Debian 4.0r7 was released Monday, 09 February 2009.
Testing, or lenny. Access this release through dists/testing. The
current tested development snapshot is named lenny. Packages which
have been tested in unstable and passed automated tests propogate to
this release."
Mirrors apt que eu normalmente utilizo, caso queira pode modificar os seus no arquivo
/etc/apt/sources.list para ficarem iguais.
deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib
deb http://ftp.debian.org/debian/ etch main contrib non-free
Caso faça qualquer alteração no seu, execute:
# aptitude update
Desinstale todas as demais aplicações que você já tentou instalar para executar flash sem sucesso.
Instale uma versão da runtime do JAVA, eu utilizo a versão 5:
# aptitude install sun-java5-jre (avance no contrato e perguntas)
Atualize seu sistema deixando-o sem qualquer pendência:
# aptitude upgrade
Instalação
Descompacte o tarball do Flash 10 e vá para a pasta:
# tar xvzf install_flash_player_10_linux.tar.gz
# cd install_flash_player_10_linux
Agora verifique se sua distribuição possui a GLIBC 2.4 ou superior, ela é requerida pelo Flash, porém a Adobe não informa essa necessidade, por isso todos os processos de instalação do Flash 10 pelo script funcionam normalmente, mas na hora de executar o flash não funciona, mais detalhes na página de debug.
# ldd libflashplayer.so
Caso o seu sistema tenha a GLIBC padrão, versão 2.3.6 no Etch, o seguinte erro será mostrado na lista de dependências:
h1:/home/hugo/Desktop/install_flash_player_10_linux# ldd libflashplayer.so
./libflashplayer.so: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./libflashplayer.so)
A minha máquina de casa, como está instalada a muito tempo, é a release 1, notem que o diretório do Iceweasel é o /usr/lib/mozilla, na minha máquina do trabalho, onde fiz o Flash 10 funcionar pela primeira vez, é a release 3 e o diretório do Iceweasel é o /usr/lib/iceweasel, então fique atento às diferenças entre versões.
Caso seu sistema suporte a lib do Flash 10, o ldd não vai reportar nenhum erro, para isso obrigatoriamente é necessário ter uma versão de GLIBC 2.4 ou superior, não empacotada como stable para Etch, ou seja, todos os sistemas Debian Etch ou antecessores não funcionam nem nunca irão funcionar sem essa atualização.
Optei por utilizar a GLIBC 2.7 do Lenny, pode ser encontrada na seguinte estrutura de diretórios do packages oficial, >> Debian >> Packages >> lenny (testing) >> libdevel >> libc6-prof, do
http://packages.debian.org.
Procedimentos para atualização:
Muito cuidado com a manipulação do apt nesse momento, vamos substituir os mirrors e em nenhuma hipótese você deve executar um "aptitude upgrade" ou atualizações do Synaptic, pois só queremos atualizar a GLIBC e suas dependências e não transformar o Etch Stable num Lenny testing.
Edite o
/etc/apt/apt.conf e insira as seguintes modificações:
deb http://security.debian.org/ etch/updates main contrib
deb http://ftp.de.debian.org/debian lenny main
Não é necessário alterar o security:
# aptitude update
Após o update você vai notar que seu sistema tem milhares de pacotes a serem atualizados, nesse momento um "aptitude upgrade" ou aceitar as atualizações sugeridas pelo Synaptic será fatal para o sistema,
não faça isso em nenhuma hipótese.
Atualizando a GLIBC
Clique com o botão direito do mouse no pacote libc6-prof_2.7-18_i386.deb e selecione "Open with GDebi installer", digite a senha de root, observe que haverá um botão details informando que todas as dependências da GLIBC serão atualizadas e alguns pacotes serão removidos.
Uma janela aparecerá em ambiente gráfico informando a atualização, clique em avançar e clique novamente em avançar quando o sistema pedir para reinicializar os serviços, após esta etapa está finalizada a atualização, pode refazer seu apt.conf original removendo entrada do Lenny a executando novamente o aptitude update.
Agora verifique a saída do ldd, nenhum erro será reportado.
# ldd libflashplayer.so (dentro da pasta do flash 10 que será instalado ou mostrando o path completo)
Agora execute o instalador do flash e informe no caminho padrão o local para instalação do flash, dentro da pasta do Flash, execute:
# ./flashplayer-installer
Caminho padrão:
/usr/lib/iceweasel (Pelo que notei na release 3) ou /usr/lib/mozilla (na release 1)
Responda não quando ele perguntar se você deseja fazer outra instalação e está finalizada a instalação do Flash 10.
Atualize o sistema novamente, alguns pacotes incompatíveis serão removidos, na máquina do trabalho e em casa eu ainda não senti falta de nenhuma aplicação e houve uma leve melhora no desempenho, mas após uma atualização de GLIBC talvez você note alguma diferença.
# aptitude upgrade
Está finalizada esta etapa.
Testes finais
Antes de executar o teste de fogo, garanta que o sistema conheça as novas bibliotecas e verifique se não existe nenhuma versão antiga de libflashplayer.so no sistema que possa gerar algum conflito:
# ldconfig
# find / -name libflashplayer.so
Caso só esteja presente a lib dentro de /usr/lib/mozilla/plugins ou /usr/lib/iceweasel/plugins, prossiga, caso você não tenha nenhuma versão anterior instalada, prossiga, caso tenha alguma lib antiga observe a diferença de aproximadamente 200k entre a versão 9 e 10 (essa é a maior), deixe somente a libflashplayer.so 10, caso exista alguma libflashplayer.so 9 dentro de qualquer diretório home copie a nova libflashplayer.so para ele, exemplos:
/home/nomedeusuairo/.mozilla/plugins, copie a nova lib para ela, entre na pasta de instalação do flash 10 e execute:
# cp libflashplayer.so /home/nomedeusuairo/.mozilla/plugins
Reinicialize o Iceweasel e vamos aos testes, abra o
Youtube e escolha um vídeo de sua preferência, ao carregar o vídeo clique com o botão do mouse para verificar a versão do flash, deve aparecer 10, enquanto deixa o som rolando vá até o orkut em uma nova janela e comprimente um amigo ou troque de roupa no buddy poke ;), abra uma terceira janela e vá até o site da Adobe, você vai notar que as transparências melhoraram, mas ainda não são perfeitas, se tudo rodou perfeitamente sem nenhuma lentidão em seu PC ou crashs obscuros do Iceweasel, pode curtir que está pronto!
Vamos ao debug.