我想向用户展示一下我的程序中的特定操作的帮助:
请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