dog とは
dog is a command-line DNS client, like dig. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.
リリースバイナリが実行できないことがある
インストール方法として、公式ドキュメント には、リリースバイナリ をそのままダウンロードする方法が挙げられています。
が、僕の環境では*1、実行時に以下のようなエラーが出て実行できません。依存関係によるもので、完全な解決も難しそうです。
$ bin/dog www.yahoo.co.jp bin/dog: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by bin/dog)
直接ビルドしてインストールする
なので、直接ビルドしてインストールしましょう。常にこの方法を採ったほうが最新版を使えていいかもしれません。なお、$ cargo install dog
を実行してインストールすることはできません(パッケージが用意されていない)。
1. リポジトリをクローンする
dog のリポジトリをクローンしましょう。
$ git clone https://github.com/ogham/dog.git
2. リポジトリのディレクトリに移動する
$ cd dog
3. 正しくビルドできるかを確かめる(開発用)
いきなりリリースビルドを行うのではなく、開発用のバイナリをビルド(とテスト)してみましょう。公式ドキュメント にある方法に従えばよいです。
$ cargo build
$ cargo test
正しくビルドおよびテストが出来たならば以下のような表示が得られるはずです。もしビルドに失敗した場合はエラーメッセージを見て対応しましょう。
$ cargo build ... ... Finished dev [unoptimized + debuginfo] target(s) in 32.40s
$ cargo test ... ... test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
なお、開発用にビルドされたバイナリは target/debug/dog
にあります。
4. リリースビルドを行う
開発用ビルドが問題ないならばリリースビルドしましょう。
$ cargo build --release ... ... Finished release [optimized] target(s) in 35.79s
リリースビルドは target/release/dog
にあります。実行してみましょう。
$ target/release/dog --version dog ● command-line DNS client v0.1.0 https://dns.lookup.dog/
5. パスの通ったところに dog を置く
あとはパスの通った任意の場所に、生成された dog ファイルを置きましょう。
*1:Windows 上の WSL2 にインストールした、Ubuntu 20.04