我正在尝试通过为基本操作系统提供自动分发检测支持来为Docker的安装脚本做出贡献,因此,在使用Docker的官方安装脚本时会自动检测基本OS用户。带有以下命令的存储库:

echo "deb https://apt.dockerproject.org/repo ${lsb_dist}-${dist_version} ${repo}" > /etc/apt/sources.list.d/docker.list


其中lsb_dist = elementary,dist_version = freya和repo = main位于Freya中。 ll进行apt-get更新并安装“ docker-engine”软件包。

尽管如此,Docker apt仓库没有基本OS的条目。我已经使用“ ubuntu-trusty”存储库进行了测试,它在Freya中也可以正常工作。操作系统对应的基本Ubuntu版本,如果可能的话。

问题:


是否有文件或命令告诉我基本OS的基本Ubuntu版本,并可以在所有基本OS版本中使用?


评论

我认为不可能。看看NodeSource上的node.js存储库安装脚本,它们正在对所有分叉的发行版进行硬编码。

#1 楼

您可以使用带有-u命令的lsb_release标志找到“上游发行”代号。在终端中使用以下命令尝试:

lsb_release -a -u


在Freya上,它提供以下输出:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:    14.04
Codename:   trusty


没有-u标志,您将获得如下信息:

No LSB modules are available.
Distributor ID: elementary OS
Description:    elementary OS Freya
Release:    0.3
Codename:   freya


评论


哇!你这家伙!那绝对是最好的答案!我没有尝试所有lsb_release --help选项真是愚蠢。非常感谢!

– fmoliveira
15年7月26日在2:50

归功于Cody Garver。他只是有点忙于自己张贴在这里; p

–丹尼尔·佛瑞(DanielForé)
15年7月26日在2:58

对于命令行用法,最好包含lsb_release -cus,它仅给出ubuntu代号。

– Peter Uithoven
18年11月11日在9:04

#2 楼

您可以使用uname -v来提供完整的基于Ubuntu的版本,这与其他答案不同。输出如下:

#49~14.04.1-Ubuntu SMP Thu Dec 31 15:44:49 UTC 2015


如果只需要打印版本(如脚本中的内容),则可以使用uname -v | cut -c 5- | cut -f1 -d"-",它可以在我的笔记本电脑上打印14.04.1。欢迎仅打印版本的命令的任何改进

评论


我的命令仅显示版本的任何改进

– Suici Doga
16年1月19日在14:34

#3 楼

您可以在“设置/关于”页面中找到它。

#4 楼

基本OS的每个版本都基于当前Ubuntu的LTS版本构建。我认为没有命令可以告诉您,但是到目前为止,这已经完成了:


基本的操作系统Jupiter构建在Ubuntu 10.04之上(感谢PNG
基本操作系统Luna是在Ubuntu 12.04之上构建的。
基本操作系统Freya是在Ubuntu 14.04之上构建的。此版本可能会更改)可能会建立在Ubuntu 16.06版本的基础上(目前尚无官方确认或拒绝)。全部硬编码。

评论


Jupiter构建在Ubuntu 10.10之上。关于Loki尚无官方信息。

– png2378
2015年7月25日在22:33



我不确定木星是建立在10.04之上的:-)

– png2378
15年7月26日在8:05