CentOS6、CentOS7などのLinux環境でMozilla Firefoxをインストール、アップデートするシェルスクリプト(バッチ処理プログラム) ~自分の好きなバージョンを指定できるポータブル版~

2月 9, 2017Programming,Shell Script

Mozilla Firefoxは2002年9月23日のバージョン0.1から長年にわたってマルチプラットフォームのブラウザとして愛用されてきました。

特に近年ではスマートフォンにも対応し、サポートするOSはWindows、macOS、Linux、Android、iOSなどデスクトップOSからスマートフォンまで幅広く使用することができます。

また、開発初期からブラウザにアドオンを導入できる仕組みを取り入れたり、デスクトップ版のプロキシ設定がOSのシステム設定と独立している、ブックマークメニューが今でも左側に固定できるなど開発者にとって便利な機能を備えています。

さらに最近シェアを急拡大している人気のブラウザGoogle Chromeと比較して、Android版のバージョンサポート期間が長いなどスマートフォンで同じ機種を長く使用しているユーザにも重宝されるブラウザです。

今回はLinuxでもプリインストールされている場合も多いMozilla FirefoxをRPMを使用せずに、自分の好きなバージョンに簡単に変更できるポータブルにインストール・アップデートする方法を備忘録として記載しておきます。

CentOS6、CentOS7などのLinux環境でMozilla Firefoxをインストール、アップデートするシェルスクリプト(バッチ処理プログラム) ~自分の好きなバージョンに変えられるポータブル版~

CentOS6、CentOS7などのLinux環境でMozilla Firefoxをインストール、アップデートするシェルスクリプト(バッチ処理プログラム)

シェルスクリプトの内容はMozilla Firefoxの配布サイトから自分で好きなバージョンのLinux版Firefoxを探し、引数にそのURLを指定することで自動的にインストールするものです。

同シェルスクリプトで前回インストールしたバージョンのFirefoxモジュールは1世代までバックアップされますので、手動で後から戻すことも可能です。

また、インストール時にインストーラー本体も対象バージョンのFirefoxディレクトリ内に保存するため、後からインストールした内容を検証することもできます。

vim firefox_install.sh

#!/bin/bash

#このスクリプトの引数にするFirefoxのダウンロード元URLは下記から探す。
#https://download-installer.cdn.mozilla.net/pub/firefox/releases/

#(例)Mozilla Firefox 45.2 ESRをインストールする場合は下記のURLを引数に指定する。
#https://download-installer.cdn.mozilla.net/pub/firefox/releases/45.2.0esr/linux-x86_64/ja/firefox-45.2.0esr.tar.bz2

#スクリプト実行時に引数が指定されているかを確認。
if [ $# -ne 1 ]; then
  echo "指定された引数は$#個です。" 1>&2
  echo "実行するには1個の引数が必要です。" 1>&2
  exit 1
fi

#引数をURLに指定。
URL=${1}

#URLからFirefoxのインストーラー名を抽出する。
ARR=( `echo $URL | tr -s '/' ' '`)
CNT=`expr ${#ARR[@]} - 1`
FILE_NAME=${ARR[${CNT}]}

#ターゲットとなるFirefoxインストーラー名を表示する。
echo "Target File Name"
echo ${FILE_NAME}

#古い(インストール前の)Firefoxのバージョンを表示する。
echo "OLD Firefox Version"
/usr/bin/firefox -V

#/opt配下にURLからFirefoxインストーラーをダウンロードする。
cd /opt
curl -O ${URL}

#旧バージョンのFirefoxをバックアップしているディレクトリ/opt/firefox_oldを削除する。
rm -rf /opt/firefox_old

#現在のバージョンのFirefoxを/opt/firefox_oldに移動する。
mv /opt/firefox /opt/firefox_old

#ダウンロードしたFirefoxインストーラーを解凍する。
tar xvf ${FILE_NAME}

#新しい(インストール後の)Firefoxのバージョンを表示する。
echo "NEW Firefox Version"
/opt/firefox/firefox -V

#Firefoxの現在の実行スクリプトを移動してバックアップする。
mv /usr/bin/firefox /opt/firefox/firefox.old

#新バージョンのFirefoxの実行スクリプトのシンボリックリンクを/usr/binに配置する。
ln -s /opt/firefox/firefox /usr/bin/firefox

#現在の(実行スクリプト入れ替え後の)Firefoxのバージョンを表示する。
echo "CURRENT Firefox Version"
/usr/bin/firefox -V

#インストールに使用したインストーラーを同バージョンの解凍ディレクトリに保管する
cd /opt
mv ${FILE_NAME} /opt/firefox/


実行例

chmod 755 firefox_install.sh
./firefox_install.sh https://download-installer.cdn.mozilla.net/pub/firefox/releases/45.2.0esr/linux-x86_64/ja/firefox-45.2.0esr.tar.bz2

Reference: Tech Blog citing related sources