【開発】readlineがbrewによってupgradeされてしまった時の対処方 - 備忘録
brew install cj-bc/cj-bc/readline
あ、忘れてください。このコマンドは魔法のコマンドです。
brew upgradeなどを迂闊に叩いてしまって、環境が壊れてしまった皆さん。こんにちは。 readlineが8系に更新されて喜ばしいことではあるものの、迂闊にアップデートしてしまったが故に環境がぶっ壊れてしまいました。
本来なら、8系に更新するように環境を改善すべきですが、手元ではまだ8系に対応してなかったり、8系へ更新するよりも7系を使った方が問題が起こらないライブラリもいるものです。
会社と自宅のPCで両方このreadline問題を踏み抜き、ターミナルを叩きながら頭が沸騰したので、忘れない内に記事にしておこうと思いました。
何故かは知らないですが、8系にアップデートした瞬間に7系が消えるので元に戻すのも大変なんですよね。
homebrewが便利なのかわからなくなってきました。
いや便利なんですけど、便利すぎて内部実装がよくわからん感じですね。
ソース読めという話ですが…
目次
readlineを8系から7系へダウングレードする
そう、これです。7系を使い続けたい。
まあ awk
とかいるんでね…、使い続けたいんですよ、こっちは。
お酒飲みつつこの記事書いているので、僕は心底辛い気持ちになってます。
readline 7系が残ってる人
brew info readline
して7系がいる人は適当に brew switch
してください。
switchコマンドがわからない?ヘルプ嫁。
残ってない人
❯ brew info readline readline: stable 8.0.0 (bottled) [keg-only] Library for command-line editing https://tiswww.case.edu/php/chet/readline/rltop.html /usr/local/Cellar/readline/8.0.0 (48 files, 1.5MB) Poured from bottle on 2019-03-01 at 22:20:47 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/readline.rb ==> Caveats readline is keg-only, which means it was not symlinked into /usr/local, because macOS provides the BSD libedit library, which shadows libreadline. In order to prevent conflicts when programs look for libreadline we are defaulting this GNU Readline installation to keg-only. For compilers to find readline you may need to set: export LDFLAGS="-L/usr/local/opt/readline/lib" export CPPFLAGS="-I/usr/local/opt/readline/include" For pkg-config to find readline you may need to set: export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig" ==> Analytics install: 417,448 (30 days), 1,146,052 (90 days), 3,645,745 (365 days) install_on_request: 47,232 (30 days), 124,500 (90 days), 351,817 (365 days) build_error: 0 (30 days)
7系とか知らんけど消えてた人、一緒に入れ直しましょう。やり方ね、調べます。俺が。 勝手にclean up しないで欲しいですね、意図しない動きをするな。
❯ brew unlink readline ❯ brew install cj-bc/cj-bc/readline # or ❯ brew install cj-bc/cj-bc/readline ❯ brew unlink readline ❯ brew link --force cj-bc/cj-bc/readline
とりあえず叩いて見てくれ、治る。 そして、とりあえず叩いて壊れても文句言わないでくれ、この記事を読んでる君はきっと、エンジニアかエンジニア志望だろ。
まとめ
環境が治ったのでゴリゴリコード書きます。