我试图找到一种方法来确定适用于大多数(或理想情况下)所有现代发行版的Linux发行版名称和版本。我注意到其中/etc/os-release
包含我尝试的发行版(CentOS,Debian)所需的信息,但是依靠它的存在有多安全?诸如此类的命令uname -a
实际上并没有包含相同的信息,并且lsb_release
例如在最少的CentOS上显然不存在。
有没有一种快速找到确切发行版本的方法/etc/os-release
?此外,在/etc/os-release
保证包含NAME
,VERSION
和PRETTY_NAME
字段?
1
Ubuntu,Debian,Arch当然可以。无论如何,我会以这种方式忽略检测发行版。上一次我需要区分发行版时,我正在检查是否存在特定的软件包管理器(即pacman-> Arch,apt-get&no pacman-> Ubuntu或Debian)。这是一个棘手的任务,我也想知道是否有更好的解决方案。
—
ddnomad
@xDaizu我在远程主机上运行脚本以获取有关它们的各种信息。
—
w128
@ w128在这种情况下,您是否不能检查“功能”(/ etc / os-release)是否存在(如果不存在,则回退到其他方法),而不是依靠它起作用的静态可变列表?
—
xDaizu
如果我可以保证问题中提出的简单解决方案在我需要支持的几个主要发行版中都是可靠的,那么@xDaizu可能会涉及“其他方法”,这可能会涉及多余的工作,因此可以证明是不可行的。在这种情况下。
—
w128