| tags:tips&tricks mac categories:computing
Chromiumの半自動更新
ここ最近、ウイルスに感染したかのようにサファリが良く落ちます。 ということで、Chromeから余計な機能を抜いたChromiumに変更しました。
ただし、Chromiumにはオートアップグレード機能(余計な機能の一つ)は付いていません。自分でビルドしてねというスタンス。定期的にXCodeでビルドして使うのはちょっと、、面倒ならChromeを使ってということなのでしょう。
ちょっと調べてみたところ、最新版をビルドしまくっているサイトがあり、スクリプトを使って最新版に更新できることをMacWorldで見つけました。(スクリプトは少し調整してます。)
※ 普通にサイトよりダウンロードも出来ます。こちらから。ずいぶん控えめなところにダウンロードのリンクがあります。
情報元:http://www.chromium.org/getting-involved/download-chromium
ターミナルにてスクリプトを実行します。(スクリプト名はchromium_update.shにしています。)
gallo% sh ./chromium_update.sh
Setup...
Checking current version...
* your/latest build: 8d391c3ad2f0846e9d1366c5d1de5f1b797d799f / 10a20c605130a26efce0e5640c4a7d56a706f5bf
Downloading and unpacking...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 53.0M 100 53.0M 0 0 1453k 0 0:00:37 0:00:37 --:--:-- 1282k
Installing...
Done. You're now running build 10a20c605130a26efce0e5640c4a7d56a706f5bf
gallo%
ローカルのアプリが最新であれば、
gallo% sh ./chromium_update.sh
Setup...
Checking current version...
* your/latest build: 8d391c3ad2f0846e9d1366c5d1de5f1b797d799f / 8d391c3ad2f0846e9d1366c5d1de5f1b797d799f
* build 8d391c3ad2f0846e9d1366c5d1de5f1b797d799f is the latest one.
gallo%
と、かなり手入らずです。スクリプトは以下。今のところ問題なく安定して動いてます。一日に数回アップデートされているようです。
#!/bin/sh
# Get current build for Chromium on Mac.
#
# @version 2009-05-22
# @author XXXX
# @todo Nothing yet
# http://hints.macworld.com/article.php?story=20090604081030791
# setup ------------------------------------------------------------------------
tempDir="/tmp/`whoami`/chrome-nightly/";
baseURL="http://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac";
baseName="chrome-mac";
baseExt="zip";
appName="Chromium.app";
appDir="/Applications";
version=~/.CURRENT_CHROME;
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
function checkForErrors {
if [ "$?" != "0" ]; then
echo "Unkown error (see above for help)!";
exit 3;
fi
}
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
echo "Setup...";
mkdir -p "$tempDir";
cd "$tempDir";
checkForErrors;
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
echo "Checking current version...";
touch $version
currentVersion=`cat $version`;
latestVersion=`curl -s $baseURL/LAST_CHANGE`;
checkForErrors;
echo " * your/latest build: $currentVersion / $latestVersion";
if [ "$currentVersion" == "$latestVersion" ]; then
echo " * build $currentVersion is the latest one.";
exit 1;
fi
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
echo "Downloading and unpacking...";
chromePID=`ps wwaux|grep -v grep|grep "$appName"|awk '{print $2}'`;
if [ "$chromePID" != "" ];then
echo " * chromium is running. Please stop it first.";
exit 2;
fi
curl -o $baseName.$baseExt "$baseURL/$latestVersion/$baseName.$baseExt";
unzip -qo $baseName.$baseExt;
checkForErrors;
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
echo "Installing...";
cp -r $baseName/$appName $appDir
checkForErrors;
echo $latestVersion > $version;
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
echo "Done. You're now running build $latestVersion";
# ------------------------------------------------------------------------------