2009-11-05 53 views
3

我想向用戶展示一下我的程序中的具體操作:有什麼方法可以找出使用哪個Linux發行版?

請輸入「apt-get install foobar」來安裝foobar功能。

有什麼要做到這一點還是我必須把它留給用戶和來自Red Hat,SUSE的Debian/Ubuntu的,的Mandriva,Slackware的,Gentoo的提供dozend選擇....

回答

6

貓的/ etc/LSB釋放

[email protected]:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=8.10 
DISTRIB_CODENAME=intrepid 
DISTRIB_DESCRIPTION="Ubuntu 8.10" 
+0

這是正確的方式:) – cupakob 2009-11-05 07:36:03

+0

不,它不是。 Suse給了我: 「Linux linux-kiste 2.6.27.7-9-default#1 SMP 2008-12-04 18:10:04 +0100 x86_64 x86_64 x86_64 GNU/Linux」 再次沒有跡象表明這裏有關分配和我不不認爲/ etc/lsb-release甚至在LSB規範中。至少我還沒有在3.2 – Lothar 2009-11-05 08:11:38

+0

中看到過它沒有問題:)它不適合你... – cupakob 2009-11-05 08:22:21

0

你可以對於大多數知名的發行版(Redhat,Fedora,Gentoo,Suse,Debian,Ubuntu)來說,它們都有專門的文件來識別發行版和版本。即/etc/debian_version

但是這將是一個繁瑣的任務,爲您列出了所有的包和東西,但如果你真的希望成爲用戶友好

-1

嘗試用貓:

cat /proc/version

但UNAME也許是更好的:

uname -a
+0

我真的可以期待/ proc/version有它的發行版的名字嗎?至少對於主要的? uname不會給我任何暗示我在SUSE上。我得到: linux linux-kiste 2.6.27.7-9-default#1 SMP 2008-12-04 18:10:04 +0100 x86_64 x86_64 x86_64 GNU/Linux – Lothar 2009-11-05 07:31:46

+0

關於ubuntu的作品:Linux版本2.6.31-14-generic (buildd @ rothera)(gcc版本4.4.1(Ubuntu 4.4.1-4ubuntu8))#48-Ubuntu SMP Fri Oct 16 16 14:04:26 UTC 2009.又是什麼關於uname -a? – cupakob 2009-11-05 07:34:47

2

你可以給

cat /etc/issue 

a try too

+0

在Ubuntu 9.04上效果很好 – 2010-11-26 09:44:08

5

lsb_release -a可能會幫助debian和apparented。

+0

這似乎是答案 - 我等了幾天,直到我標記它。 – Lothar 2009-11-05 08:14:07

+2

在Debian上,除非安裝了'lsb-release'軟件包,否則它不存在。該軟件包沒有標記爲「必要」,並且不能保證存在。 – ephemient 2009-11-05 16:36:15

+0

舊的Linux問題再次 - 我討厭它,他們應得到1%的桌面市場份額。 – Lothar 2009-11-05 19:56:07

3

沒有,是要找出您正在運行的Linux發行版沒有通用的方法。

有一個lsb_release命令,它在Linux標準基礎規範中指定。但顯然這個命令只出現在符合LSB標準的發行版上,許多更小或專用的發行版是而不是 LSB兼容版本。 (例如,我在FritzBox路由器上運行的發行版不是。)

而且,如果您假設無論如何都遵循LSB規範,那麼爲什麼不簡單地將您的應用程序打包爲LSB package?這樣,它在全部 LSB兼容的發行版上的工作原理是一樣的。

2

鑑於Linux可以從一個系統開始並變成另一個系統,您可能無法準確地分辨出它當前是哪個系統。如果某些發行版符合LSB標準,則會提供LSB工具,因此可能有所幫助。

某些發行版提供文件/ etc/dist-release。例如,我有一個空的文件/ etc/arch-release。

您也可以執行:

uname -a 

威力表示內核是爲建的分配,但可能是一個長鏡頭。我的Arch Linux內核沒有提到Arch,但我相信我的Gentoo安裝表明「Gentoo Linux」。

某些工具可以指示分發,例如apt-get,rpm,emerge,但通常您也可以將這些工具安裝在其他發行版上。

相關問題