1. BAT : A cat clone

batコマンドはcatコマンドを高機能にしたようなものだと私は認識しています。

@github.com

fzfやripgrepをインストールするときにpreviewツールとしてbatがおすすめされています。

fzf, ripgrep, batをセットとして私の環境に導入することにしています。

batをUbuntuにインストールするときに少しだけ戸惑ったので苦労した内容を共有します。

2. Ubuntu20.04にインストール時のERROR

ubuntu20.04にインストールしたときにエラーが発生しました。

terminal input
sudo apt-get install bat
terminal output
dpkg: error processing archive /tmp/apt-dpkg-install-o5RqQ7/12-bat_0.12.1-1build1_amd64.deb (--unpack):
 trying to overwrite '/usr/.crates2.json', which is also in package ripgrep 11.0.2-1build1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /tmp/apt-dpkg-install-o5RqQ7/12-bat_0.12.1-1build1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

これはripgrepをインストールしているとbatインストール時に.crates2.jsonが上書きできないというエラーです。

batをインストールしてからripgrepをインストールしようとしても同様のエラーが発生します。

そしてこれはUbuntu20.04で発生するエラーです。Ubuntu22.04では改修済みのようでエラーは発生しません。

エラーの情報はこちらです。

3. Ubuntu22.04でインストールしてもコマンド名が異なる。

batは別のアプリと名前が重複しているようでUbuntuでaptを使用してインストール時にはbatcatというコマンド名に変わってしまっています。

terminal input 1
bat --version
termianl output 1
bash: bat: command not found
terminal input 2
batcat --version
termianl output 2
bat 0.12.1

aliesを設定する方法もあるようですがそれはそれで面倒です。

fzf, ripgre, batをセットで使用するのは定番のようですがインストールにここまで苦労するとは思いませんでした。

4. debファイルをダウンロードしてインストールする

解決方法としてdebファイルをダウンロードしてインストールします。

terminal input
wget https://github.com/sharkdp/bat/releases/download/v0.20.0/bat_0.20.0_amd64.deb
apt install ./bat_0.20.0_amd64.deb
bat --version
termianl output
bat 0.20.0 (0655ecf)

エラーもなくbatをインストールすることができました。

5. まとめ

batのインストール方法を試して整理しました。

想像以上に苦労しました。環境設定は思わぬところで時間を取られるので沼です。

今回は以上です。