Olá a todos!
Esta dica baseia-se em um script que baixa, descompacta e constrói um pacote Deb da versão mais recente do
Firefox. Muito útil para usuários do
Debian (em especial, de sua versão Stable).
Mas por que utilizar este script ao invés de instalar o Firefox de outro modo?
Bem, primeiramente, vamos destacar os possíveis meios de instalação do Firefox no Debian:
- Instalar o Firefox por meio do PPA do Mozilla Team;
- Não instalar nada e utilizar o Iceweasel (versão livre do Firefox - N. do A.: o Firefox não é livre, ele possui licença Open Source);
- Baixar, descompactar e instalar o arquivo manualmente.
As respostas:
1- Devido ao ciclo mais rápido de versões, e por causa do
Ubuntu (principal "alvo" do PPA) estar disponibilizando as novas versões do Firefox no repositório oficial, o PPA da versão Stable do Firefox não tem mais sentido em existir. Por isso, ele foi
descontinuado e não recebe atualizações desde 23 de junho de 2011. Sendo que, a última versão do Firefox publicada neste PPA é a 9.
2- O Iceweasel é diferente do Firefox, além de possuir um ciclo mais lento de desenvolvimento. Ou seja, ele é sempre baseado em uma versão antiga do Firefox. Por exemplo, a versão instalada por padrão no Debian Squeeze é baseada no Firefox 3.5.16. Já a do repositório Backports (que oferece pacotes mais recentes), é a de 10.0.6. Um outro problema é a tradução para português (o idioma padrão é o inglês), uma vez que essa funcionalidade deve ser configurada pelo usuário.
3- Baixar e instalar o arquivo compactado tem sido a melhor opção para usuários Debian. Mas, este meio de instalação traz incômodos, já que muitas configurações deve-se fazer "na unha", como:
- Criação de atalhos nos menus;
- "Linkagem" do executável para o PATH;
- O logo do Firefox não se modifica ao trocar um tema de ícones (como o Faenza);
- Para tornar o Firefox o browser padrão do sistema, deve-se fazer uma configuração própria;
- Entre outros.
A dica
Esta dica resume-se a apenas um script.
Este script baixa, descompacta e cria um pacote Deb da versão mais recente do Firefox. E o melhor, você só precisa executá-lo uma vez. Todas as atualizações de versões do Firefox serão totalmente automáticas.
Assim, você estará utilizando o melhor da versão oficial (as rápidas atualizações), com a comodidade de um pacote Deb (atalhos de menus, ícones e scripts de instalação/desinstalação).
Características e observações importantes:
- Ele baixa tanto a versão 32 quanto a 64 bits do Firefox;
- Versão em pt-BR;
- Por questões de segurança e permissões de pastas, o script não pode ser executado como root;
- O Firefox será instalado em /opt;
- Como as atualizações automáticas alteram o conteúdo da pasta /opt, o dpkg acusaria o seguinte erro ao desinstalar o Firefox:
dpkg: aviso: ao remover firefox, o directório '/opt/firefox' não estava vazio, por isso não foi removido.
- Resumindo: Ele remove todos os arquivos de instalação, mas deixa os arquivos novos/modificados. Assim, para desinstalar completamente, você teria que remover a pasta /opt/firefox manualmente.
- Para corrigir este problema, eu incluí um script postrm que se encarregará do serviço ao desinstalar o Firefox pelo APT/dpkg/aptitude/Synaptic.
- Ao completar a instalação, o Firefox será automaticamente setado como browser padrão do X (modo gráfico) com o update alternatives;
- Ele terá um script que "chamará" o executável em /usr/bin;
- Será criado um atalho de menu em /usr/share/applications;
- E, por último, será copiado o ícone do Firefox para usr/share/pixmaps. Deste modo, ao mudar para um tema de ícones que possui um tema para o Firefox (como o Faenza), o ícone do menu do sistema será alterado.
- Testado com a versão 14.0.1 do Firefox e nos sitemas Debian Squeeze 32 bits e Debian Wheezy 64 bits.
Dependências
Para executar este script e instalar o Firefox, deve ser instalado o pacote
curl:
# apt-get install curl
E removido o Iceweasel:
# apt-get purge iceweasel
O script
Segue o conteúdo do script:
#!/bin/bash
# Script de empacotamento do Firefox versão 2.2
# Testado com Firefox 21.0
# Baixa, descompacta e cria um pacote deb da versão mais recente
# Criado por Leandro Nkz < http://brweatherproject.blogspot.com.br >
# Modificado por edps < http://gnutwoall.wordpress.com >
clear
## Verificando se o usuário é root.
if [ `whoami` = "root" ] ; then
echo ""
echo "Erro: Este script deve ser executado apenas como usuário normal."
echo ""
exit 1s
fi
## Checando dependências.
if [ -z `which curl` ] ; then
clear
echo ""
echo "Este script necessita do pacote curl para funcionar.
Instale-o com o comando:
sudo apt-get install curl -y
"
exit 1
fi
if [ -z `which bzip2` ] ; then
clear
echo ""
echo "Este script necessita do pacote bzip2 para funcionar.
Instale-o com o seguinte comando:
sudo apt-get install bzip2 -y
"
exit 1
fi
## Definindo a arquitetura.
echo "Selecione a arquitetura do pacote:
1 = 32 bits
2 = 64 bits
"
echo -n "Resposta: " ; read ARCH
## Baixando pacote tar.bz2.
case $ARCH in
"1")
ARCH="i386"
VERSION=`curl -s "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/pt-BR/" | grep tar.bz2 | head -n1 | cut -f2 -d'-' | cut -f1 -d'"'`
echo ""
echo "Realizando o download da versão 32 bits..."
wget -c -T0 -nv "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/pt-BR/firefox-$VERSION"
;;
"2")
ARCH="amd64"
VERSION=`curl -s "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pt-BR/" | grep tar.bz2 | head -n1 | cut -f2 -d'-' | cut -f1 -d'"'`
echo ""
echo "Realizando o download da versão 64 bits..."
wget -c -T0 -nv "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/pt-BR/firefox-$VERSION"
;;
*)
echo "Escolha 1 ou 2. Instalação abortada" && exit 1
;;
esac
## Criando diretórios.
echo ""
echo "Criando diretórios temporários..."
mkdir -p firefox/{opt,DEBIAN,usr/share/applications,usr/share/pixmaps,usr/bin}
## Extraindo e conferindo o arquivo baixado.
ERRO2(){
clear
echo "Falha ao baixar arquivo tar.bz2.
Verifique a sua conexão com a Internet e tente novamente."
rm -r firefox
exit 1
}
echo ""
echo "Extraindo..."
tar -xjf firefox-$VERSION -C firefox/opt 2>/dev/null || ERRO2
## Definindo versão.
VERSION=`echo $VERSION | sed 's/-//g ; s/.tar.bz2//g'`
## Criando o arquivo control.
echo ""
echo "Criando arquivo de controle..."
touch firefox/DEBIAN/control
echo "Package: firefox
Version: $VERSION
Architecture: $ARCH
Maintainer: Mozilla Foundation
Installed-Size: `du -s firefox/opt/firefox | cut -f1 -d'f' | sed 's/\t//'`
Depends: libglib2.0-0 (>= 2.24.2), libgtk2.0-0 (>= 2.20.1), libpango1.0-0 (>= 1.28.3),libstdc++6 (>= 4.3)
Recommends: libdbus-1-3 (>= 1.2.24), libdbus-glib-1-2 (>= 0.88)
Provides: gnome-www-browser, x-www-browser
Section: web
Priority: optional
Description: Mozilla Firefox
O Firefox oferece segurança e uma navegação web mais fácil. Possui uma interface de usuário familiar,
recursos aprimorados de segurança, incluindo proteção contra roubo de identidade online,
além de ser totalmente personalizável." > firefox/DEBIAN/control
## Criando atalhos de menus.
echo ""
echo "Criando atalhos de menus..."
echo "[Desktop Entry]
Version=$VERSION
Name=Firefox
Comment=Navegue na Internet
GenericName=Web Browser
Exec=/opt/firefox/firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupWMClass=Firefox
StartupNotify=true
X-Ayatana-Desktop-Shortcuts=NewWindow;
[NewWindow Shortcut Group]
Name=Abrir nova janela
Exec=firefox -new-window
TargetEnvironment=Unity" > firefox/usr/share/applications/firefox.desktop
# Tornando executável o lançador de menu.
chmod +x firefox/usr/share/applications/firefox.desktop
## Criação de ícones.
cp firefox/opt/firefox/browser/icons/mozicon128.png firefox/usr/share/pixmaps/firefox.png
## Script pós-instalação.
echo '#!/bin/sh
# postinst script.
set -e
echo "Definindo Firefox como browser padrão..."
update-alternatives --install /usr/bin/firefox firefox /opt/firefox/firefox 45
update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/firefox/firefox 210
update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /opt/firefox/firefox 210
exit 0' > firefox/DEBIAN/postinst
chmod +x firefox/DEBIAN/postinst
## Script pré-remoção.
echo '#!/bin/sh
# prerm script
set -e
echo "Removendo Firefox como browser padrão..."
update-alternatives --remove gnome-www-browser /opt/firefox/firefox
update-alternatives --remove x-www-browser /opt/firefox/firefox
update-alternatives --remove firefox /opt/firefox/firefox
rm -rf /opt/firefox
exit 0' > firefox/DEBIAN/prerm
chmod +x firefox/DEBIAN/prerm
## Construção do pacote .deb.
echo ""
dpkg -b firefox firefox-$VERSION-$ARCH.deb
## Removendo diretórios e arquivos temporários.
rm -rf firefox
# FIM.
echo ""
echo "Criação do pacote deb completa!"
echo ""
echo "Agora, basta instalar o pacote deb criado com o seguinte comando:
sudo dpkg -i firefox-$VERSION-$ARCH.deb
"
exit 0
Copie/cole e salve com o nome de:
firefox.sh
Depois, basta dar permissão de executar:
chmod +x firefox.sh
E executar:
./firefox.sh
A primeira (e única) pergunta questiona qual versão do Firefox você deseja instalar:
- Para 32 bits, tecle 1
- Para 64 bits, tecle 2
Depois, basta esperar que ele irá baixar, descompactar e construir um pacote Deb do Firefox.
Ao terminar, instale o Firefox com:
sudo dpkg -i firefox-custom.deb
Ou, instale através do GDebi installer (modo gráfico).
Atualização do Firefox
Para atualizar, basta selecionar as opções nas preferências do Firefox:
Ou, se preferir, você pode checar por atualizações manualmente, indo em:
Menu Ajuda > Sobre o Firefox:
E aplicar a atualização ao final do download:
Espero que tenham gostado.
Sugestões de melhorias ao script, serão muito bem-vindas.
Esta dica também foi publicada no Mundo GNU:
Abraço!