Wayne Werner Asked: 2019-05-22 15:59:55 +0800 CST2019-05-22 15:59:55 +0800 CST 2019-05-22 15:59:55 +0800 CST 有没有一种规范的方法可以获取您安装的 e2fsprogs 版本? 772 Linuxtopia 的内核配置书推荐以下内容: 要确定系统上的 e2fsprogs 版本,请运行以下命令: $ tune2fs 不过,这似乎有点时髦。 e2fsprogs 是否有一种检查版本的规范方法,或者它是否尽可能好? version e2fsprogs 3 个回答 Voted Stephen Kitt 2019-05-22T22:22:08+08:002019-05-22T22:22:08+08:00 tune2fs是少数 e2fsprogs 程序之一,它打印其版本并在无事可做时退出(其他是dumpe2fsand resize2fs),并且很长一段时间以来它一直是 e2fsprogs 的一部分(可能从一开始)。因此,它是确定 e2fsprogs 已安装版本的可靠方法。 据我所知,在其文档中没有关于如何确定 e2fsprogs 安装版本的“官方”描述。 sourcejedi 2019-05-23T02:50:14+08:002019-05-23T02:50:14+08:00 它看起来确实有点时髦。如果您不喜欢记住使用tune2fs,则可以改为检查e2fsprogs您安装的软件包。 如果您从源代码安装它,您可能很容易检查源代码。(tarball 名称中的版本号,或 NEWS / Changelog 文件)。 如果您从分发包安装它,有一些很好的命令。这完全取决于您的发行版是如何设置的: # 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 # ... Best Answer mr.spuratic 2019-05-23T04:35:04+08:002019-05-23T04:35:04+08:00 这是常见的方式,一个潜在的问题是二进制文件在/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 (但是,一些发行版默认可能没有安装足够的“开发者”材料) 已翻译的消息目录包含空 "" msgid 中的元数据: LANG=fr_FR gettext e2fsprogs "" (但是,不能保证会安装任何特定的语言)
tune2fs
是少数 e2fsprogs 程序之一,它打印其版本并在无事可做时退出(其他是dumpe2fs
andresize2fs
),并且很长一段时间以来它一直是 e2fsprogs 的一部分(可能从一开始)。因此,它是确定 e2fsprogs 已安装版本的可靠方法。据我所知,在其文档中没有关于如何确定 e2fsprogs 安装版本的“官方”描述。
它看起来确实有点时髦。如果您不喜欢记住使用
tune2fs
,则可以改为检查e2fsprogs
您安装的软件包。如果您从源代码安装它,您可能很容易检查源代码。(tarball 名称中的版本号,或 NEWS / Changelog 文件)。
如果您从分发包安装它,有一些很好的命令。这完全取决于您的发行版是如何设置的:
这是常见的方式,一个潜在的问题是二进制文件在
/sbin
其中,并非所有用户都可以运行它们。我检查了几个可能使用(部分)的项目
e2fsprogs
,比如gparted
- 充其量他们真的只关心 的存在libuuid
并且没有任何 autoconf 检测e2fsprogs
或其版本。该
libext2fs
库导出函数ext2fs_get_library_version()
,因此要稳健地执行此操作:其他选项:
e2fsprogs
带有一组库,因此您可以使用pkg-config
,例如pkg-config --modversion ext2fs
pkg-config --modversion e2p
(但是,一些发行版默认可能没有安装足够的“开发者”材料)
已翻译的消息目录包含空 "" msgid 中的元数据:
LANG=fr_FR gettext e2fsprogs ""
(但是,不能保证会安装任何特定的语言)