Version
有沒有一種規範的方法可以獲取您安裝的 e2fsprogs 版本?
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; }
其他選項:
e2fsprogs
帶有一組庫,因此您可以使用pkg-config
,例如
pkg-config --modversion ext2fs
pkg-config --modversion e2p
(但是,一些發行版預設可能沒有安裝足夠的“開發者”材料) 2. 已翻譯的消息目錄包含空 "" msgid 中的元數據:
LANG=fr_FR gettext e2fsprogs ""
(但是,不能保證會安裝任何特定的語言)
tune2fs
是少數 e2fsprogs 程序之一,它列印其版本並在無事可做時退出(其他是dumpe2fs
andresize2fs
),並且很長一段時間以來它一直是 e2fsprogs 的一部分(可能從一開始)。因此,它是確定 e2fsprogs 已安裝版本的可靠方法。據我所知,在其文件中沒有關於如何確定 e2fsprogs 已安裝版本的“官方”描述。