você está aqui: Home  → Arquivo de Mensagens Workshop Gratuito: Os Segredos do Shell, com o Prof. Julio Neves

Baixar ultima versão Chromium automaticamente

Colaboração: André Marques Saunite

Data de Publicação: 20 de julho de 2012

Eu uso Debian Testing, mas normalmente a versão Chrome que existe nos repositórios não é a mais atual, e eu achei que era muito tempo perdido ficar sempre compilando as versões mais novas, e foi então que eu encontrei esse site onde são gerados snapshots de cada versão do Chrome, para Linux i386, x86_64, Mac, Windows e até Arm:

http://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html

É só escolher a versão, baixar, descompactar, e pronto, um chromium totalmente livre e usável!

Mas por que ter todo o trabalho de baixar, descompactar, copiar os plugins que não vem por default (como o do flash), quando eu posso ter um script para fazer tudo isso?

Foi por isso que eu escrevi o script abaixo, o uso é bem simples:

Para baixar e instalar a versão mais recente do Chromium: getChrome install

Para somente baixar a versão mais nova: getChrome download

Para baixar uma versão especifica: getChrome download < versão desejada>

Para baixar e instalar uma versão especifica: getChrome install < versão desejada>

Para somente mostrar qual é versão mais atual: getChrome print

Caso você já tenha baixado o arquivo .zip, pode instalar com o script: getChrome install < arquivo .zip>

E para tudo isso funcionar perfeitamente, você só precisa configurar algumas variáveis no script antes de utilizar:

WORKDIR="${HOME}/Downloads/" # O diretório para onde vão ser baixados os .zip
CHROMIUMINSTALLDIR="/opt/" # Diretório onde o Chromium será instalado (a pasta chrome-linux vai ser criada nesse diretório
ARCH=Linux_x64 # A arquitetura do Chromium, tem que ser exatamente igual ao da lista existente em http://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html 
USEROWNER="andre" # Usuario que será dono do diretório do Chromium
GROUPOWNER="andre" # Grupo que será dono do diretório do Chromium
FLASHDIR="/opt/flashplayer/" # diretório onde está o plugin do flash (libflashplayer.so)

E aqui segue o script (Download direto do script)

#!/bin/bash 

WORKDIR="${HOME}/Downloads/"
CHROMIUMINSTALLDIR="/opt/"
ARCH=Linux_x64
ALREADYEXISTS="false"
USEROWNER="andre"
GROUPOWNER="andre"
FLASHDIR="/opt/flashplayer/"
LASTVERSION="nolastversionyet";

# Index at:
# http://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html

downloadSpecific () {
       if [ -d $WORKDIR ] ; then
               cd $WORKDIR
               if [ -z $1 ]; then 
                       echo "No input specified for 'downloadSpecific' function! Aborting!"; 
                       exit 9;
               fi

               LASTVERSION=$1
               if [ ! -e chrome-linux_${LASTVERSION}.zip ] ; then 
                       wget http://commondatastorage.googleapis.com/chromium-browser-snapshots/${ARCH}/${LASTVERSION}/chrome-linux.zip -O ${WORKDIR}/chrome-linux.zip;
                       if [ ! -s chrome-linux.zip ]; then 
                               echo "File has no contents! Apparently the file doesn't exist in the repository, please double check in ";
                               echo "http://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?path=${ARCH}/ to be "
                               echo "sure the release exist!!!";
                               rm chrome-linux.zip;
                               exit 8;
                       fi
                       mv chrome-linux.zip chrome-linux_${LASTVERSION}.zip
                       echo "Chromium version ${LASTVERSION} saved as chrome-linux_${LASTVERSION}.zip"
                       export DOWNLOADEDFILE="chrome-linux_${LASTVERSION}.zip";
               else 
                       ALREADYEXISTS="true";
               fi
       else 
               echo "Directory \"$WORKDIR\" not found";
               exit 10;
       fi
       if [ -n "${USEROWNER}" ] && [ -n "${GROUPOWNER}" ]; then
               chown -R ${USEROWNER}:${GROUPOWNER} ${WORKDIR}
       fi
}

download () {
       if [ -d $WORKDIR ] ; then
               cd $WORKDIR
               wget -q http://commondatastorage.googleapis.com/chromium-browser-snapshots/${ARCH}/LAST_CHANGE -O ${WORKDIR}/LAST_CHANGE
               LASTVERSION=`cat LAST_CHANGE`;
               if [ ! -e chrome-linux_${LASTVERSION}.zip ] ; then 
                       wget http://commondatastorage.googleapis.com/chromium-browser-snapshots/${ARCH}/${LASTVERSION}/chrome-linux.zip -O ${WORKDIR}/chrome-linux.zip;
                       mv chrome-linux.zip chrome-linux_${LASTVERSION}.zip
                       echo "Chromium version ${LASTVERSION} saved as chrome-linux_${LASTVERSION}.zip"
                       rm LAST_CHANGE;
                       export DOWNLOADEDFILE="chrome-linux_${LASTVERSION}.zip";
               else 
                       ALREADYEXISTS="true";
                       rm LAST_CHANGE;
               fi
       else 
               echo "Directory \"$WORKDIR\" not found";
               exit 1;
       fi
       if [ -n "${USEROWNER}" ] && [ -n "${GROUPOWNER}" ]; then
               chown -R ${USEROWNER}:${GROUPOWNER} ${WORKDIR}
       fi
}

unpackAndInstall () {
       #echo "unpack and install: $1";
       if [ ! -z $1 ];  then 
               export FILETOINSTALL=$1;
       fi

       if [[ ! $FILETOINSTALL =~ ^\/ ]]; then
               FILETOINSTALLBASENAME="`basename $FILETOINSTALL`";
               FILETOINSTALL="${WORKDIR}/${FILETOINSTALLBASENAME}";
               unset $FILETOINSTALLBASENAME;
       fi

       if [ -e ${CHROMIUMINSTALLDIR}/chrome-linux.old ] ; then
               rm -rf ${CHROMIUMINSTALLDIR}/chrome-linux.old 
       fi
       if [ -e ${CHROMIUMINSTALLDIR}/chrome-linux ] ; then
               mv ${CHROMIUMINSTALLDIR}/chrome-linux ${CHROMIUMINSTALLDIR}/chrome-linux.old 
       fi
       cd ${CHROMIUMINSTALLDIR};
       unzip ${FILETOINSTALL};
       chown -R root:users chrome-linux
       chmod -R g+r,o+r chrome-linux
       chmod g+x,o+x chrome-linux
       find chrome-linux -type d -exec chmod g+x,o+x {} \+
       find chrome-linux -writable -exec chmod g+w,o+w {} \+
       find chrome-linux -executable -exec chmod g+x,o+x {} \+
       cd chrome-linux
       mkdir plugins 2> /dev/null
       ln -s ${FLASHDIR}/libflashplayer.so ./plugins/libflashplayer.so
       ln -s /usr/lib/jvm/java-7-sun/jre/lib/amd64/libnpjp2.so ./plugins/libnpjp2.so
       cd - > /dev/null
}

# main()
if [ $# -eq 0 ]; then
       echo "Usage: $0 < print|download|install> [chrome-linux.zip|release number]";
       exit 4;
fi

if  [ $1 != "download" ] && [ $1 != "print" ] && [ $1 != "install" ] && [ $1 != "--help" ] ; then
       echo "Usage: $0 < print|download|install> [chrome-linux.zip|release number]";
       exit 3;
fi

if [ $1 = "print" ] ; then
       wget -q http://commondatastorage.googleapis.com/chromium-browser-snapshots/${ARCH}/LAST_CHANGE -O LAST_CHANGE
       echo "Last version is `cat LAST_CHANGE`";
       rm LAST_CHANGE;
       exit 0;
fi
if [ $1 = "download" ]; then
       if [ ! -z $2 ] && [ ! -e $2 ] ; then 
               if [[ $2 =~ ^[0-9]+$ ]]; then 
                       downloadSpecific $2;
                       if [ $ALREADYEXISTS == "true" ]; then
                               echo "File chrome-linux_${LASTVERSION}.zip Exists, aborting";
                               exit 7;
                       fi 
                       exit 0;
               fi
       fi
       if [ -z $2 ]; then
               download
               if [ $ALREADYEXISTS == "true" ]; then
                       echo "File chrome-linux_${LASTVERSION}.zip Exists, aborting";
                       exit 2;
               fi 
       else 
               echo "$2 is not recognized!";
               echo "Usage: $0 < print|download|install> [chrome-linux.zip|release number]";
       fi

fi
if [ $1 = "install" ]; then
       if [[ $EUID -ne 0 ]]; then
               echo "The install option needs to be run as root!";
               exit 5;
       fi
       if [ ! -z $2 ] && [ -e $2 ] ; then 
               unpackAndInstall $2;
               exit 0;
       elif [ ! -z $2 ] && [ ! -e $2 ] ; then
               if [[ $2 =~ ^[0-9]+$ ]]; then 
                       downloadSpecific $2;
                       if [ $ALREADYEXISTS == "true" ]; then
                               echo "File chrome-linux_${LASTVERSION}.zip Exists, aborting";
                               exit 12;
                       fi 
                       unpackAndInstall ${WORKDIR}/${DOWNLOADEDFILE};
                       exit 0;
               else 
                       echo "Error: File $2 not found";
                       exit 6;
               fi
       fi 
       download;
       if [ $ALREADYEXISTS == "true" ]; then
               echo "File chrome-linux_${LASTVERSION}.zip Exists, aborting";
               exit 11;
       fi 
       cd $WORKDIR;
       unpackAndInstall ${WORKDIR}/${DOWNLOADEDFILE};
fi

if [ $1 = "--help" ]; then
       echo "Usage: $0 < print|download|install> [chrome-linux.zip|release number]";
fi


Veja a relação completa dos artigos de André Marques Saunite