Linuxtopia 的内核配置书建议如下:
要确定系统上的 e2fsprogs 版本,请运行以下命令:
$ tune2fs
不过,这似乎有点时髦。
e2fsprogs 是否有规范的方法来检查版本,或者是否已经达到最佳状态?
答案1
tune2fs
是少数几个打印其版本并在无事可做时退出的 e2fsprogs 程序之一(其他的是dumpe2fs
和resize2fs
),并且它已经成为 e2fsprogs 的一部分很长一段时间了(可能从一开始)。因此,它是确定 e2fsprogs 安装版本的可靠方法。
据我所知,其文档中没有关于如何确定 e2fsprogs 安装版本的“官方”描述。
答案2
这是常见的方式,一个潜在的问题是二进制文件已经存在/sbin
,但并非所有用户都能够运行它们。
我检查了几个可能会使用(部分)的项目e2fsprogs
,例如gparted
- 充其量他们实际上只关心 的存在libuuid
,并且没有任何 autoconf 检测e2fsprogs
或其版本。
该libext2fs
库导出了 function 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 ""
(但是,不能保证会安装任何特定语言)
答案3
这看起来确实有点时髦。如果您不喜欢记住使用tune2fs
,您可以检查e2fsprogs
您安装的软件包。
如果您从源代码安装它,您可能可以很容易地检查源代码。 (压缩包名称或新闻/更改日志文件中的版本号)。
如果您是从发行包安装的,则有一些不错的命令可以实现此目的。这完全取决于您的发行版的设置方式:
# 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
# ...