我想向用户展示我的程序中特定操作的一些帮助:
请输入“apt-get install foobar”来安装foobar功能。
有什么可以做的,或者我必须将它留给用户并提供来自Red Hat,Suse,Debian / Ubuntu,Mandriva,Slackware,Gentoo的dozend选择....
答案 0 :(得分:6)
cat / 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"
答案 1 :(得分:5)
lsb_release -a可能有助于debian和植物。
答案 2 :(得分:3)
不,没有通用的方法可以找出您正在运行的Linux发行版。
有lsb_release
命令,该命令在Linux标准库规范中指定。但很明显,此命令仅出现在符合LSB的发行版上,而许多较小或专用的发行版不符合 LSB。 (例如,我在FritzBox路由器上运行的发行版不是。)
如果您正在假设符合LSB的发行版,那么为什么不简单地将您的应用程序打包为LSB package?这样,它在所有 LSB兼容的发行版上的工作方式相同。
答案 3 :(得分:2)
你可以给予
cat /etc/issue
尝试一下
答案 4 :(得分:2)
鉴于Linux可以从一个系统开始构建并转换为另一个系统,您可能无法准确地确定它当前是哪个系统。如果符合LSB标准,某些发行版会提供lsb工具,因此可能有所帮助。
某些发行版提供文件/ etc / dist-release。例如,我有一个空的文件/ etc / arch-release。
您也可以执行:
uname -a
可能表示内核的构建分配,但这可能是一个很长的过程。我的Arch linux内核没有提到Arch,但我相信我的Gentoo安装表明“Gentoo Linux”。
某些工具可以指示分发,例如apt-get,rpm,emerge,但您通常也可以在其他发行版上安装这些工具。
答案 5 :(得分:0)
你可以为大多数知名的发行版(Redhat,Fedaora,Gentoo,Suse,Debian,Ubuntu)做这些,它们有特殊的文件来识别发行版和版本。即/etc/debian_version
。
但如果您真的希望用户友好,那么列出所有包裹和内容将是一项繁琐的工作
答案 6 :(得分:-1)
尝试使用cat:
cat /proc/version
但是uname可能更好:
uname -a