有什么方法可以找出使用哪个Linux发行版?

我想向用户展示一下我的程序中的特定操作的帮助:

请input“apt-get install foobar”来安装foobarfunction。

有什么要做,或者我必须把它留给用户,并提供从红帽,Suse,Debian / Ubuntu,Mandriva,Slackware,Gentoo的dozendselect….

猫/ etc / lsb-release

root@pierr-desktop:~# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.10 DISTRIB_CODENAME=intrepid DISTRIB_DESCRIPTION="Ubuntu 8.10" 

lsb_release -a可能会帮助debian和apparented。

不,没有通用的方法来找出你正在运行的Linux发行版。

有一个lsb_release命令,它在Linux标准基础规范中指定。 但是很显然,这个命令只存在于符合LSB标准的发行版中,许多更小或专用的发行版符合LSB标准。 (例如,我在FritzBox路由器上运行的发行版不是。)

如果你假设一个LSB​​兼容的发行版,那么为什么不简单地把你的应用程序打包成一个LSB包 ? 这样在所有符合LSB标准的发行版上都是一样的。

你可以给

 cat /etc/issue 

也是一个尝试

鉴于Linux可以从一个系统开始并变成另一个系统,您可能无法准确地分辨出当前是哪个系统。 某些发行版提供LSB工具,如果它们符合LSB,那么可能会有所帮助。

一些发行版提供了一个文件/ etc / dist-release。 例如,我有一个空的文件/ etc / arch-release。

你也可以执行:

 uname -a 

可能表明了内核的分发版本,但这可能是一个长镜头。 我的Arch Linux内核没有提到Arch,但我相信我的Gentoo安装表明“Gentoo Linux”。

一些工具可以指示分发,比如apt-get,rpm,emerge,但是通常也可以在其他分发版本上安装这些工具。

你可以为大多数知名的发行版(Redhat,Fedora,Gentoo,Suse,Debian,Ubuntu)做这些,它们有特殊的文件来识别发行版和版本。 即/etc/debian_version

但是,列出所有的软件包和东西,如果你真的想用户友好,这将是一个乏味的任务

尝试与猫:

 猫/ proc /版本 

但与uname也许更好:

  uname -a