[CentOS/Ubuntu/Macに]ag(the silver searcher)をインストール


この記事を書いた理由

※本記事はこちらのQiita記事を筆者本人が転載したものです。

ファイルの中身を検索できるコマンドと言えば『grep』ですが、そのgrepを高速化した『grab』や『ack』、『ag』等が登場し移行する人が出てきています。

今回はその中で特に早いと噂[1]agを、VirtualBox/Vagrantで仮想構築したCentOS8上にGitHubのドキュメントに沿って下記のコマンドでインストールしようとしました。しかし...

-- yumでも結果は同じ
$ sudo dnf update
$ sudo dnf install the_silver_searcher
-- 下記のエラーが出てインストール出来ない
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 0:04:22 ago on Wed Nov 18 17:23:56 2020.
No match for argument: the_silver_searcher
Error: Unable to find a match: the_silver_searcher

しかし上記のようにエラーが出てインストール出来なかったので上手く行く方法を下記していきます。
ついでにMacやUbuntuでも同じことをやっていきます。

各種OSにインストール

CentOS8

  • バージョン確認
$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
  • インストール
-- README.mdのdependenciesに下記二つ記載あり
$ sudo dnf -y groupinstall "Development Tools"
$ sudo dnf -y install pcre-devel xz-devel zlib-devel
$ cd /usr/local/src
$ sudo git clone https://github.com/ggreer/the_silver_searcher.git
$ cd the_silver_searcher/
$ sudo ./build.sh
$ sudo make install
-- agが入っていることを確認
$ which ag
/usr/local/bin/ag

Ubuntu

  • バージョン確認
$ cat /etc/os-release
-- 一部省略
VERSION="20.04.1 LTS (Focal Fossa)"
  • インストール
$ apt update
$ sudo apt install silversearcher-ag
-- agが入っていることを確認
$ which ag
/usr/bin/ag

※Ubuntuは仮想環境ではなくLENOVO ideapad 330Sに直インスコしたのを使っています。

MacOS

  • バージョン確認
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H15
  • インストール
$ sudo brew install the_silver_searcher
-- agが入っていることを確認 
$ which ag
/usr/local/bin/ag

※Homebrewが未インストールならこのリンク先記事を参考にインストールしてください。

今後、時間を見つけてagの使い方やgrepとの比較について軽く記事を書く予定です。:rocket:
本日は以上です。

参考記事

脚注
  1. 筆者の感覚値としても圧倒的に早いしgrepより速いackより3〜5倍高速との情報もある。ただこれに異議を唱える人もおり筆者も数値的な検証はしていないのでここで明言はできません。ごめんね。 ↩︎