| tags:tips&tricks mac categories:computing

Chromiumの半自動更新

ここ最近、ウイルスに感染したかのようにサファリが良く落ちます。 ということで、Chromeから余計な機能を抜いたChromiumに変更しました。

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";
# ------------------------------------------------------------------------------

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.