21
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

homebrewでreadline7

Last updated at Posted at 2019-02-02

[2019/06/15追記]
現在はreadline8への対応が進んでおり、tigreadline8で動作するようになりました。
awkは依然対応されていないようです(そもそも更新される予定があるのか不安になってきた)
自分はgawk(GNU実装のawk)に移行しました


tipmona monya/mona tipkotone

readlineとは

readlineは、行編集用のライブラリでbashやvimなど、様々なところで使われています。

現在homebrewで入るreadlineはv8.0.0

現在、homebrewを使うとインストールできるのはバージョン8.0.0です。
しかしながら、 まだversion7系統を使っているプログラムがいくつかあるのです。

例:

  • awk
    - tig

これらを使うためには、readlineは7系を使わないといけません

readlineの7系を使う

実はhomebrewではバージョン切り替えが可能なので、readlineの7系(最新だと7.0.5)を使うことができます。

パターン1: 昔のCellarが残っている

昔readlineがまだ7系だった頃にreadlineをインストールしていて、brew cleanupをしていなければ以下のようにしてバージョンを切り替えることができます。

# brew switch <formula名> <バージョン>
$ brew switch readline 7.0.5

brew info readlineをした時、以下のように使用可能なバージョンが表示されます(自分は後述の方法で7.0.5入れたので7.0.5が入っています)

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/7.0.5 (46 files, 1.5MB) # <-- この行
  Built from source on 2019-02-02 at 18:34:08
/usr/local/Cellar/readline/8.0.0 (48 files, 1.5MB)
  Poured from bottle on 2019-01-13 at 23:06:35

パターン2: homebrew cleanupしてしまった

Homebrew cleanupをしてしまい、Cellarが残っていない場合はどうしようもありません...諦めまし
なんてわけはもちろんないです。
readlineのformulaを古いのを使えばいいんです。
ということで、古い(7.0.5用の)formulaを本体から抜き出してきてここに置いてあります: Cj-bc/homebrew-cj-bc/readline.rb

普通にtapしても良いですが、自分は他のformulaも同じレポジトリに置いているので割と混同するので以下のように直接インストールするのをお勧めします(もちろん自分で取ってきても良いと思います。)

$ brew unlink readline # 8.0.0 のリンクを外しておく。必要かはわからないですが自分は外しました。
$ brew install cj-bc/cj-bc/readline

こうすることで、7.0.5が使えるようになります。

ちなみに私は: homebrewに勝手にcleanupされました

21
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?