Version

有沒有一種規範的方法可以獲取您安裝的 e2fsprogs 版本?

  • May 22, 2019

Linuxtopia 的核心配置書推薦以下內容:

要確定係統上的 e2fsprogs 版本,請執行以下命令:

$ tune2fs

不過,這似乎有點時髦。

e2fsprogs 是否有一種檢查版本的規範方法,或者它是否盡可能好?

這是常見的方式,一個潛在的問題是二進製文件在/sbin其中,並非所有使用者都可以執行它們。

我檢查了幾個可能使用(部分)的項目e2fsprogs,比如gparted- 充其量他們真的只關心 的存在libuuid並且沒有任何 autoconf 檢測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 ""

(但是,不能保證會安裝任何特定的語言)

tune2fs是少數 e2fsprogs 程序之一,它列印其版本並在無事可做時退出(其他是dumpe2fsand resize2fs),並且很長一段時間以來它一直是 e2fsprogs 的一部分(可能從一開始)。因此,它是確定 e2fsprogs 已安裝版本的可靠方法。

據我所知,在其文件中沒有關於如何確定 e2fsprogs 已安裝版本的“官方”描述。

引用自:https://unix.stackexchange.com/questions/520287