Firefox - Script para empacotamento e instalação ao modo Debian

Publicado por Leandro Nkz em 11/08/2012

[ Hits: 7.334 ]

Blog: http://brweatherproject.blogspot.com/

 


Firefox - Script para empacotamento e instalação ao modo Debian



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:
  1. Instalar o Firefox por meio do PPA do Mozilla Team;
  2. 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);
  3. 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:

Linux: Firefox - Script para empacotamento e instalação ao modo Debian

Ou, se preferir, você pode checar por atualizações manualmente, indo em:
Menu Ajuda > Sobre o Firefox:

Linux: Firefox - Script para empacotamento e instalação ao modo Debian
E aplicar a atualização ao final do download:
Linux: Firefox - Script para empacotamento e instalação ao modo Debian

Linux: Firefox - Script para empacotamento e instalação ao modo Debian

Linux: Firefox - Script para empacotamento e instalação ao modo Debian

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!

Outras dicas deste autor

OraPlus - Simples gerenciador para o banco de dados Oracle

Como inserir o Tux/TuxDebian durante o boot do Debian

Solução para Kernel panic em Dual-boot com Grub2 para Mandriva-Mageia

Habilitando sons do sistema no GNOME 2 do Debian 6

LibreOffice - Corrigindo aspas duplas/simples

Leitura recomendada

Ganhando espaço no Firefox

Teste simulado LPI estilo Show do Milhão

Fluxbox - Iniciando programas automaticamente

AmuleD - Utilizando o Amule como um daemon no Arch Linux

RSS - Boas fontes de notícias para os linuxers

  

Comentários
[1] Comentário enviado por vatrinux em 06/02/2014 - 21:28h

Tá dando um erro aqui!


selecione a arquitetura do pacote:

1 = 32 bits
2 = 64 bits

Resposta: 2

Realizando o download da versão 64 bits...

Criando diretórios temporários...

Extraindo...

Criando arquivo de controle...

Criando atalhos de menus...

dpkg-deb: erro: a interpretar o ficheiro 'firefox/DEBIAN/control' perto da linha 11 pacote 'firefox':
campo de nome 'O' precisa ser seguido de vírgula

Criação do pacote deb completa!

Agora, basta instalar o pacote deb criado com o seguinte comando:

sudo dpkg -i firefox-27.0-amd64.deb

[2] Comentário enviado por leandro em 07/02/2014 - 17:12h


[1] Comentário enviado por juliano_vatre em 06/02/2014 - 21:28h:

Tá dando um erro aqui!


selecione a arquitetura do pacote:

1 = 32 bits
2 = 64 bits

Resposta: 2

Realizando o download da versão 64 bits...

Criando diretórios temporários...

Extraindo...

Criando arquivo de controle...

Criando atalhos de menus...

dpkg-deb: erro: a interpretar o ficheiro 'firefox/DEBIAN/control' perto da linha 11 pacote 'firefox':
campo de nome 'O' precisa ser seguido de vírgula

Criação do pacote deb completa!

Agora, basta instalar o pacote deb criado com o seguinte comando:

sudo dpkg -i firefox-27.0-amd64.deb


Utilize este script: https://dl.dropboxusercontent.com/u/67723624/Downloads/firefox.sh

Deu erro porque a linha "Description: Mozilla Firefox" tem que ser endentada para que o gerador de pacotes deb interprete corretamente.
Mais tarde corrijo o script da dica.

Um abraço e obrigado por avisar.



Contribuir com comentário