需要从不同的 Dists 获取 Linux Dist name

Need to get Linux Dist name from different Dists

想要编写一个用于多个 linux 发行版的脚本。 还想添加检查命令,如果不存在则安装一些软件包。因此,需要一个解决方案来检查 Dist 名称(如 Debian 或 RedHat)以为此 Dist 执行正确的命令。 我已经尝试过“lsb_release”,但这是否适用于所有后续版本? : Debian / Ubuntu | Red Hat / Fedora / Suse / Cent OS" 如果是,知道我在哪里可以从上面的所有 Dists 获得 lsb_release 输出吗?

在 Debian 中我从 lsb_release -a 2>/dev/null | grep Distributor:

Distributor ID: Debian

在 Rasberry,我明白了:

Distributor ID: Raspbian

但是其他发行版呢?

似乎所有现代 linux 发行版都有 /etc/os-release ID=distribution 的文件(不幸的是没有 Raspberry 可以测试)。

是的,lsb_release 应该在安装所需的包后打印分发信息。

e,g:

在基于 debian 的发行版上:

apt-get install lsb-release

在基于 RHEL 的发行版上:

yum install redhat-lsb-core

yum install redhat-lsb

替代方法:您可以通过以下方式获取分布信息:

基于 debian 的 disto

cat /proc/version
cat /etc/issue
cat /etc/issue.net
cat /etc/lsb-release
cat /etc/os-release

在基于 RHEL 的发行版上:

cat /proc/version
cat /etc/centos-release
cat /etc/lsb-release
cat /etc/redhat-release
cat /etc/system-release