我想要的是一个快速、可靠的命令来确定我正在运行的 Linux 是基于 Debian 的。以下命令似乎有效。它还返回 Debian 版本:
dpkg -L base-files 2>/dev/null | grep '^/etc/debian_version$' >/dev/null 2>&1 && cat /etc/debian_version
我之前的想法是使用dpkg -S /etc/debian_version
它来查看它是否属于某个包,无论名称如何。但是dpkg -S
很慢。
我只有一个挥之不去的疑问:是否存在我的假设不成立的旧 Debian 衍生发行版?有没有更好的办法?
更好的方法是测试您想要做的事情是可能的,而不是依赖于分布是什么。例如,我的 Ubuntu 盒子声称它是“squeeze/sid”。如果您想通过 dpkg 安装某些东西,请检查 dpkg 是否在您期望它可执行的位置。如果要修改网络设置?检查 /etc/networking/interfaces 是否存在。检查 update-rc.d 等工具。
您还应该使用 /etc/lsb-release 而不是 /etc/debian_version。
我不相信你可以做出这样的假设。
请参见: