インストールしたe2fsprogsのバージョンを取得する正式な方法はありますか?

インストールしたe2fsprogsのバージョンを取得する正式な方法はありますか?

Linuxtopiaのカーネル構成書以下の提案:

システムのe2fsprogsバージョンを確認するには、次のコマンドを実行します。
$ tune2fs

ところがこれがちょっと流行だと思います。

e2fsprogsのバージョンをチェックする標準的な方法はありますか、それともこれはすでに最適ですか?

答え1

tune2fsバージョンを印刷して何もしないときに終了する数少ないe2fsprogsプログラムの1つであり(他のプログラムはdumpe2fsandですresize2fs)、長い間(おそらく最初から)e2fsprogsの一部でした。したがって、インストールされているe2fsprogsのバージョンを確認する信頼できる方法です。

私が知っている限り、その文書にはインストールされているe2fsprogsのバージョンを確認する方法についての「公式」の説明はありません。

答え2

これは一般的なアプローチです。 1つの潜在的な問題は、バイナリがすでに存在しているが、/sbinすべてのユーザーがバイナリを実行できるわけではないということです。

私は(一部)を使用できるいくつかのプロジェクトを確認しました。e2fsprogsたとえば、gpartedせいぜい彼らは実際にautoconfの存在にのみ興味があり、autoconfまたはそのバージョンをlibuuid検出しません。e2fsprogs

ライブラリlibext2fsは関数をエクスポートするext2fs_get_library_version()ので、これを強く実行します。

/* gcc -lext2fs -o gete2ver gete2ver.c */
#include <stdio.h>
#include <ext2fs/ext2fs.h>

int main(int argc, char *argv[])
{
    const char *e2ver, *e2date;
    int ver;

    ver=ext2fs_get_library_version(&e2ver,&e2date);
    printf("version=%04i %s %s\n",ver,e2ver,e2date);
    return 0;
}

その他のオプション:

  1. e2fsprogs利用可能なライブラリセットが付属していますpkg-config

    pkg-config --modversion ext2fs

    pkg-config --modversion e2p

    (ただし、一部のディストリビューションでは、デフォルトでインストールされている「開発者」資料が不足している場合があります。)

  2. 翻訳されたメッセージカタログメタデータが含まれています。空の "" msgidから:

    LANG=fr_FR gettext e2fsprogs ""

    (ただし、特定の言語がインストールされるという保証はありません。)

答え3

これはちょっとファンキーに見えますね。を使用することを覚えたくない場合は、インストールしたパッケージをtune2fs確認できます。e2fsprogs

ソースからインストールした場合は、おそらくソースコードを簡単に調べることができます。 (ニュース/変更ログファイルのzip名またはバージョン番号)

ディストリビューションからインストールする場合は、これを行うのに役立ついくつかのコマンドがあります。これはすべて展開設定方法によって異なります。

# Debian / Ubuntu
dpkg -l e2fsprogs

# alternatively
sudo which mkfs.ext4
dpkg -S /sbin/mkfs.ext4

# Fedora
rpm -q e2fsprogs

# alternatively
which mkfs.ext4
rpm -q --whatprovides /usr/sbin/mkfs.ext4

# ...

関連情報