ごんぢくじょう -- `invalid 'depends_on macos' value: ":lion"`って何だよっ!
世の中,自分のあずかり知らぬところで,全ては動いているんだな,て話.
夜中,訳あって*1強行に踏み切ったOSクリーンインストール.
そこからの環境構築作業の中で,2つのエラーに泣かされることに.
いずれもHomebrew
まわり.
駆け逃げして寝ちゃおうと思っていた中での出来事だっただけに,何気に憔悴させられ,
今後また同じような目にあったら嫌すぎると言うことで,手続きのメモを残しておこうと.
エラーの結果,採った処置の流れ.
先述の通り2つあって,ひとつは,Homebrew-Cask
で使うCask
を変更する,ということをします.:
% # % # MacVim Kaoriyaをインストール % # % brew tap woowee/mycask % brew install my-macvim-kaoriya
MacVim-Kaoriyaのインストールのために導入させて頂いてきたcaskを,delphinus/homebrew-macvim-kaoriyaから,自前のものに切り替えました.
もうひとつ.:
% # % # Python3のバージョンを3.6.4にする % # % cd "$(brew --repository)/Library/Taps/homebrew/homebrew-core/Formula/" % git fetch --unshallow % brew log python --oneline | grep 3.6.4 % git checkout 6e3f70c43a python.rb % brew edit python3 % # ← *** ここで,開いたpythonのformulaを変更し,保存.*** % brew uninstall --force python % HOMEBREW_NO_AUTO_UPDATE=1 brew install --ignore-dependencies python % git reset HEAD % git checkout .
ポイントは,brew edit
の手続きのところで,
python3のformulaに手を加える,ということをしています.
エラーの原因となっている,古いコンパイラの記述を削除するのだそうです.
以下,2つのエラーについての詳細.
Error: Cask 'macvim-kaoriya' definition is invalid: invalid 'depends_on macos' value: ":lion"
MacVim-Kaoriya
のbrew cask install
で遭遇したエラー.
MacVim-Kaoriya
のインストールはご覧の通りHomebrew-Cask
によって,[delphinus/homebrew-macvim-kaoriya][10]
を有り難く利用させて頂くことによって実現してきました.
ところがここでエラーが発生していると.:
% brew cask install macvim-kaoriya Error: Cask 'macvim-kaoriya' definition is invalid: invalid 'depends_on macos' value: ":lion"
つい先日までは,こんなエラーなかったのに...
本来ならばcaskの記述をどうにかすればいいのでしょうが,そんな気力はなく笑,特に追いかけることもせずに,さくっと,随分昔に自前で用意していたMacVim-Kaoriya
のcaskを使う,で切り替えることに.
brew cask edit my-macvim-kaoriya
でcaskファイル開いて,
一応,shasum -a 256 ~/Downloads/MacVim-KaoriYa-20180324.dmg
*3でsha256
に定義するハッシュ値とurl
くらいを更新して保存.
再度,brew cask install
.
ちなみに,brew cask install my-macvim-kaoriya
となっています.
Homebrewは10.8
,OS X Mountain Lion
以前はサポートしない,ってなったから.らしい
and removal of support for OS X Mountain Lion (10.8) and older.
via. 2.0.0 — Homebrew
これが背景らしいです.
2019年の02月02日って,つい最近じゃん.
ちなみに,Caskの作り方
» homebrew-cask_adding_a_cask.md at master · Homebrew/homebrew-cask · GitHub
メモ.
手前味噌ですがこんなのもあったりします.😇
Error: Calling 'fails_with :clang' with 'build' < 600 is disabled! There is no replacement.
2つ目のエラー.
こちらは,python
のバージョンを3.6.4に下げるために行っている手続きの中での話です.:
% brew uninstall --force python Uninstalling python... (3,907 files, 60.4MB) Error: Calling 'fails_with :clang' with 'build' < 600 is disabled! There is no replacement. Please report this to the homebrew/core tap: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/python.rb:52 If reporting this issue please do so at (not Homebrew/brew or Homebrew/core): https://github.com/Homebrew/homebrew-core/issues
brew uninstall
しているだけなのに...
今まで,と言いますか,こちらもごく最近やったことある作業で,
その時は何の問題もなかったのですが.
ゲンナリ.
そしたら,このようなレポートに出くわしました.:
バグだそう.
brew edit python3
で,formulaの当該部分を書き換える
上述issueのコミットログを覗いてみますと.
» python3{5,6,7}: remove checkes for old compilers. · sashkab/homebrew-python@ef70e0b · GitHub
どうやら,下記引用の箇所が良くないらしい.:
fails_with :clang do build 425 cause "https://bugs.python.org/issue24844" end
自分のマシンで使われているformulaも覗いてみると,確かにその記述があります.
先に引用したエラーメッセージ文にもあるよう,52行目辺り.
と言うことで自分も倣って,当該箇所4行を削除し,保存.
そして再びbrew uninstall --force python
.
上手く行く様子.
と言うか,これも最近の話じゃん...
今回,分かったこと
brew update-reset
とbrew up
キッカケはこちら.:
Please run
brew update-reset
, thenbrew up
, it should fix the issues. If not, feel free to give use additional information below.
brew update-reset
ってなもんあるんだ,と.
ちなみに,ここにも書いてありました.
最近追加された感じかしら?
brew update-reset resets all repositories and taps to their upstream versions. This is useful when debugging git issues.
via. 2.0.0 — Homebrew
でもbrew up
って何なんでしょう?
3.6.4のrepo
brew log python
の結果.
commit 6e3f70c43a0cdd02280a1cfc78693ce1bc7eb5e4 Author: BrewTestBot <brew-test-bot@googlegroups.com> Date: Thu Mar 22 15:27:00 2018 +0000 python: update 3.6.4_4 bottle.
したがって,こうなるみたいです.:
https://raw.githubusercontent.com/Homebrew/homebrew-core/6e3f70c43a0cdd02280a1cfc78693ce1bc7eb5e4/Formula/python.rb
にしても,これはひとつひとつ,地味に探さなくてはならないのでしょうか...
要調査.
brew --repository
--repository [user/repo]
Display where Homebrew’s .git directory is located.If user/repo are provided, display where tap user/repo’s directory is located.
今更ですが,整理.
ということで,疲れましたよ.
はい,おしまい.