MAGAZINE
ルーターマガジン
Chromeの自動アップデート停止と、バージョン指定インストールの方法@Mac環境
こんにちは。アドクロールチームに所属しておりますエンジニアのinoueです。
日々の業務として、広告情報分析のためのクローラー開発・保守に取り組んでいます。
ルーター社では、seleniumというWebアプリケーションをテストするためのポータブルフレームワークを用いて、クローラー開発する機会が多くあります。
クローラー開発・保守の中でGoogleChromeの自動アップデートによりローカルのMacにてエラーが発生していたので、今回Macで
- GoogleChromeの自動アップデートを防ぐ方法
- GoogleChromeの再インストール方法
また
- GoogleChromeバージョンに合わしたseleniumでのクロールに必要なchromedriverのインストール方法
をご紹介します。
Rubyでのselenium環境のセッティングについては、弊社のこちらの過去の記事を参照してください。
なぜGoogleChromeをアップデートしたくないのか?
seleniumを使用する際に、chromedriverとGoogleChromeのバージョンを合わせる必要があり、合わせていないとクロール時にエラーが発生するからです。
なぜGoogleChromeがアップデートされるのか?
GoogleのGoogleChromeヘルプによると
最新のセキュリティ アップデートでユーザーを保護するために、Google Chrome は、新しいバージョンが利用可能になったときに自動更新できるようになっています。こうした更新では、ブラウザのデザインが変更されることもあります。
と書いてあります。つまり、ユーザー保護のため自動アップデートされているようです。
どのようにGoogleChromeがアップデートされるのか?
同じくGoogleのGoogleChromeヘルプによると
アップデートは通常、パソコンでブラウザを閉じて次に開くまでの間にバックグラウンドで行われます。ブラウザをしばらく開いたままにしていると、保留中のアップデートがあることが示される可能性があります。
と書いてあります。マルウェアではないですが、バッググラウンドで勝手にGoogleChromeがアップデートされるようです。
まずは自動でアップデートされる処理を変更したいと思います。
GoogleChromeの自動アップデートを防ぐ方法
海外記事の What is GoogleSoftwareUpdate.app on my Mac?を参照し、方法を紹介します。
Googleアプリ更新の時間確認
まずはdefault
コマンドというシステムやアプリを確認・変更するコマンドを使用し、googleアプリの設定を確認します。
以下のコマンドをターミナルで入力してください;
defaults read com.google.Keystone.Agent.plist
するとインストールしたGoogleアプリと期間により以下のように出力されます。
{
ActivesInfo = {
"com.google.Chrome" = {
LastActiveDate = "2017-12-06 14:28:43 +0000";
LastActivePingDate = "2017-12-08 08:00:01 +0000";
LastRollCallPingDate = "2018-01-08 08:00:00 +0000";
"ping_freshness" = "185764A0-9BC7-4A8D-AEDC-xxxxxxxxxxxx";
};
"com.google.Keystone" = {
LastActiveDate = "2018-01-19 06:50:23 +0000";
LastActivePingDate = "2018-01-08 08:00:00 +0000";
LastRollCallPingDate = "2018-01-08 08:00:00 +0000";
"ping_freshness" = "75D4020E-0E22-4BBA-9749-xxxxxxxxxxxx";
};
};
ReportingAttributes = {
};
checkInterval = 18000;
"firstRun-1.2.2.554" = "2015-12-20 07:08:17 +0000";
"firstRun-1.2.3.738" = "2015-12-20 07:09:12 +0000";
"firstRun-1.2.4.919" = "2016-03-07 01:38:45 +0000";
"firstRun-1.2.5.1190" = "2016-07-16 08:31:35 +0000";
"firstRun-1.2.6.1370" = "2016-09-24 02:32:46 +0000";
"firstRun-1.2.7.43" = "2017-02-16 07:45:43 +0000";
"firstRun-1.2.8.57" = "2017-05-16 03:13:00 +0000";
"firstRun-1.2.8.82" = "2017-08-17 01:28:13 +0000";
"firstRun-user-1.2.9.98" = "2017-11-08 10:56:30 +0000";
"lastCheck-1.2.3.738" = "2016-02-28 10:08:31 +0000";
"lastCheck-1.2.4.919" = "2016-07-06 06:24:37 +0000";
"lastCheck-1.2.5.1190" = "2016-08-27 10:22:35 +0000";
"lastCheck-1.2.6.1370" = "2017-01-14 09:12:26 +0000";
"lastCheck-1.2.7.43" = "2017-04-07 09:56:14 +0000";
"lastCheck-1.2.8.57" = "2017-07-25 06:51:51 +0000";
"lastCheck-1.2.8.82" = "2017-10-08 03:44:58 +0000";
"lastCheck-user-1.2.9.98" = "2018-01-09 07:51:29 +0000";
lastCheckStartDate = "2018-01-19 06:50:23 +0000";
lastServerCheckDate = "2017-11-08 10:56:04 +0000";
}
ここでのcheckInterval = 18000;
はGoogleがアップデートを何秒ごとに行うかの値であり、今回は5時間(3600秒×5)を示しています。
この値を変更するには、以下のように再びdefault
コマンドを使用します。
defaults write com.google.Keystone.Agent checkInterval 604800
ここでは確認の時間単位を7日間に設定しています。この値を0にした場合、Googleにデータが送られることはありません。
Googleアプリ更新の停止
Googleソフトのアップデートは~/Library/Google/
にあるため削除します。
sudo rm -R ~/Library/Google/GoogleSoftwareUpdate/
また、ここで削除しても、Google側で自動的にファイルを生成してしまうため、ダミーファイルを作成し、書き込まれないようにするため権限を444で設定します。
sudo touch ~/Library/Google/GoogleSoftwareUpdate
sudo chmod 444 ~/Library/Google/GoogleSoftwareUpdate
次にGoogleソフトアップデートに関わるファイルを削除してします。
sudo rm ~/Library/LaunchAgents/com.google.keystone.agent.plist
sudo rm -R ~/Library/Caches/com.google.Keystone*
sudo rm ~/Library/Preferences/com.google.Keystone.Agent.plist
GoogleChromeを立ち上げ、URLでchrome://help
を入力し、以下のように更新に失敗していれば自動アップデートを停止できています。
GoogleChromeのアンインストール方法
MacでGoogleChromeをアンインストールするには、Finderのアプリケーションを開きGoogleChromeをゴミ箱に入れ削除します。バージョンを指定したGoogleChromeのインストール方法
GoogleChromeをアンインストール後、バージョンを指定したGoogleChromeをGoogle Chrome Older Versions Download (Windows, Linux & Mac)からインストールします。今回はバージョン75を選択し、ダウンロードし、展開します。
これらの作業は、GoogleChromeをアンインストール後を想定しているのでSafariなどでGoogleChromeアプリをダウンロードしてください。 GoogleChromeを立ち上げ、URLにchrome://help
を入力し、バージョンがダウンロードしたバージョンであれば、自動アップデートなしでのアプリインストールに成功しています。
chromedriverのセッティング方法
GoogleChromeのバージョンに合わせたchromedriverをインストールします。先ほど、バージョン75をインストールしたので、バージョン75のchromedriverをChromeDriver – WebDriver for Chromeからダウンロードします。以下のコマンドを入力すると 64ビットのchromedriverが確認できます。
$ls ~/Downloads/
chromedriver_mac64.zip
解凍しすると、
unzip chromedriver_mac64.zip
chromedriverが確認できます。
chromedriver
次に通っているパスを確認します。
$echo $PATH
/usr/local/bin
通っているパスにchromedriverを移動させます。
mv ~/Downloads/chromedriver /usr/local/bin
chromedriverのパスを確認し、 パスが通っているディレクトリに確認できました。
$which chromedriver
/usr/local/bin/chromedriver
最後に、chromedriverのバージョンを確認します。 今回はバージョン75をダウンロードしたので、75が表示されていることが確認できます。
$chromedriver -v
ChromeDriver 75.0.3770.140
さいごに
自動アップデートしないGoogleChromeの環境構築ご紹介させていただきました。良いスクレイピングライフを!
CONTACT
お問い合わせ・ご依頼はこちらから