
HomeBrewアップデート時に”Error: Unexpected method 'appcast' called on Cask adoptopenjdk11.”が出る状況をfixする
以前よりローカル環境にてHomeBrewをアップデートする際にadoptopenjdk11でエラーが出ることは確認していました。
**Error: Unexpected method 'appcast' called on Cask adoptopenjdk11.**
目的とするライブラリのアップデート自体は正常に完了するため放置していましたが、ログにおけるエラー文出力の占める割合が多くなるとやや目障りになるため、対処しました。
発生する原因
解決方法としてはbrew cleanup --prune=all
を実行する手もあるようですが、問題はこれで解決しないケースであり、今回該当しました。対処としては以下の手順を実施します。
brew edit --cask adoptopenjdk11
- Remove or comment out the line containing appcast.
brew install --cask adoptopenjdk11
手順2ですが、今回は9行目(appcast ~
)のコメントアウトとなります。
# PLEASE DO NOT EDIT THIS FILE. EDIT Templates/adoptopenjdk.rb.tmpl
cask "adoptopenjdk11" do
version "11.0.11,9"
sha256 "9a20441ff21c6aa2ebb6287f712e6c647d7b66f55ac23bdfb5e891f25efab1b7"
# github.com/AdoptOpenJDK was verified as official when first introduced to the cask
url "https://github.com/AdoptOpenJDK/openjdk#{version.major}-binaries/releases/download/jdk-11.0.11%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.11_9.pkg",
verified: "https://github.com/AdoptOpenJDK"
# appcast "https://github.com/AdoptOpenJDK/openjdk#{version.major}-binaries/releases/latest"
name "AdoptOpenJDK 11"
desc "AdoptOpenJDK OpenJDK (Java) Development Kit"
homepage "https://adoptopenjdk.net/"
pkg "OpenJDK11U-jdk_x64_mac_hotspot_11.0.11_9.pkg"
postflight do
system_command "/usr/sbin/pkgutil", args: ["--pkg-info", "net.adoptopenjdk.11.jdk"], print_stdout: true
end
uninstall pkgutil: "net.adoptopenjdk.11.jdk"
end
実施時のログは以下の通り。
手順実行前はエラーとなります。
brew install --cask adoptopenjdk11 [~]
==> Auto-updating Homebrew...
Adjust how often this is run with HOMEBREW_AUTO_UPDATE_SECS or disable with
HOMEBREW_NO_AUTO_UPDATE. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Error: Unexpected method 'appcast' called on Cask adoptopenjdk11.
Follow the instructions here:
https://github.com/Homebrew/homebrew-cask#reporting-bugs
Warning: Not upgrading adoptopenjdk11, the latest version is already installed
~ 10s
手順実行後はエラーが消えたことを確認できました。
brew install --cask adoptopenjdk11 [~]
Warning: Not upgrading adoptopenjdk11, the latest version is already installed
他caskでのappcastが気になる場合は、エラーが発生しないインストール済みcaskをbrew list --cask
から確認して、brew edit --cask XXX
を実行し、表示されるrbファイルを確認してみましょう。appcastはlivecheckによるアプリケーションバージョンチェックと同等のものであり、それらのcaskではlivecheckが利用されているはずです。
livecheckやappcastは最新バージョン(latest)を常に追うための仕組みです。brewのバージョンチェックデフォルト動作は安定版(stable)、ヘッド(head)、ホームページ(homepage)を追っていく仕組みで、その後にlivecheckやappcastを利用します。adoptopenjdk11は最初にgithub.com/AdoptOpenJDKの安定版が指定されているため、appcastを無効にしてもダウンロード自体は問題ないということになります。
あとがき
homebrewのエラー出力は大量のpruneログに埋もれがちで、かつ動作に問題がない場合は放置しがちになります。気になる場合は、再実行して確認することをお勧めします。