标签: distributions

如何在简单的 shell 脚本中获取分发名称和版本号?

我正在开发一个简单的 bash 脚本,它应该能够在 Ubuntu 和 CentOS 发行版上运行(对 Debian 和 Fedora/RHEL 的支持将是一个加分项),我需要知道脚本正在运行的发行版的名称和版本(以触​​发特定操作,例如创建存储库)。到目前为止,我所得到的是:

OS=$(awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VERSION=$(awk '/DISTRIB_RELEASE=/' /etc/*-release | sed 's/DISTRIB_RELEASE=//' | sed 's/[.]0/./')

if [ -z "$OS" ]; then
    OS=$(awk '{print $1}' /etc/*-release | tr '[:upper:]' '[:lower:]')
fi

if [ -z "$VERSION" ]; then
    VERSION=$(awk '{print $3}' /etc/*-release)
fi

echo $OS
echo $ARCH
echo $VERSION
Run Code Online (Sandbox Code Playgroud)

似乎有效,返回ubuntucentos(我没有尝试过其他人)作为发布名称。但是,我有一种感觉,必须有一种更简单、更可靠的方法来解决这个问题——这是真的吗?

它不适用于 RedHat。/etc/redhat-release 包含:Redhat Linux 企业版 5.5 …

linux shell-script distributions

231
推荐指数
8
解决办法
29万
查看次数

哪些发行版在 $PATH 中有 $HOME/.local/bin?

示例:在 Ubuntu 中,.local主目录中始终有一个目录,并.profile包含以下行:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

$HOME/.local/bin默认情况下不存在,但如果创建它,它已经存在$PATH并且可以找到其中的可执行文件。

这在XDG 目录规范中没有完全提到,但似乎是从它派生出来的。

我想知道这是否足够普遍,以至于通常可以假设它存在于最常见的最终用户发行版中。例如,是在所有 Debian 衍生产品中,还是至少在 Ubuntu 衍生产品中?Red Hat/Fedora/CentOS 生态系统如何?等等 Arch、Suse 以及人们现在使用的东西。

更明确地说,这仅适用于$HOME/.local/bin而不 适用于$HOME/bin

出于好奇,如果您有相关信息,请随意包括 BSD、OS/X 和其他。:)

path xdg distributions

82
推荐指数
2
解决办法
4万
查看次数

Ubuntu 是如何基于 Debian 的?

Linux Mint 基于 Ubuntu。Ubuntu 基于 Debian。像这样,还有其他几个基于 Ubuntu、Debian、Slackware 等的 linux 发行版。让我困惑的是这意味着什么,即一个基于其他发行版的 Linux 发行版。它们是如何制作的?

ubuntu debian distributions

44
推荐指数
4
解决办法
4万
查看次数

Linux Debian 代号

我有几个,挺无聊的,非技术有关的问题给予的代号,以Debian的发行版。

每个 Debian 版本都有其唯一的代号,这是(到目前为止)皮克斯玩具总动员电影中角色的名字。

以下是迄今为止所有指定代号的列表:

  • 释放1.1 IS buzz(巴斯光年) -个宇航员,
  • 发布1.2rex-暴龙,
  • 发布1.3.xbo(Bo Peep) - 照顾羊的女孩,
  • 发布2.0hamm- 存钱罐,
  • 释放2.1 IS slink(苗条的狗) -玩具狗,
  • 发布2.2potato-土豆先生,
  • 发布3.0woody- 牛仔,
  • 3.1版本是sarge——绿塑军士官,
  • 发布4.0etch-玩具黑板(蚀刻一个素描)
  • 发布5.0lenny- 玩具双筒望远镜,
  • 发布6.0squeeze-这个名字对三眼外星人,
  • 版本7.0wheezy- 带红色领结的橡胶玩具企鹅的名字, …

debian distributions

44
推荐指数
3
解决办法
1万
查看次数

31
推荐指数
3
解决办法
1万
查看次数

Linux 发行版的稳定意味着什么?它对临时用户有多大影响?

  • 究竟什么是“稳定”的 Linux 发行版,使用“不稳定”发行版的(实际)后果是什么?

  • 对于临时用户(即不是系统管理员)真的很重要吗?

我已经阅读了这个这个,但我还没有得到明确的答案。

上下文中的“稳定”:

我见过诸如“Debian Stable”和“Debian Unstable”之类的词和短语,以及“Debian 比 Ubuntu 更稳定”之类的词。

linux debian stability distributions

28
推荐指数
3
解决办法
4721
查看次数

是否还有带有 /bin/sh 二进制文件的系统?

/bin/shBourne shell创建于 1977 年,曾经是 Unix 系统的默认 shell。

现在这个文件仍然存在,但主要是作为系统上安装的默认 POSIX 兼容 shell 的符号链接:

  • 在 RHEL/CentOS 上,它指向/bin/bashBourne Again shell
  • 在 Ubuntu Linux 上它指向 /bin/dashDebian Almquist shell
  • 在 Debian 上,它指向/bin/dash(6.0 及更高版本;较旧的 Debian 版本有它指向/bin/bash

这让我很好奇:有没有一个Unix系统或Linux发行版,仍然提供了一个二进制/bin/sh

shell distributions

24
推荐指数
2
解决办法
3581
查看次数

macOS 是 Unix 发行版吗?

我知道macOS 是一个 UNIX 操作系统,但我不知道 macOS 是否可以像 Gentoo 或 Debian 是GNU/Linux 发行版一样被称为UNIX发行

macOS 是 UNIX 发行版吗?如果不是,那么如何正确地指称 macOS 在 UNIX 操作系统家族中的成员资格以及对单一 UNIX 规范的遵守(即,它是Unix 变体Unix 版本Unix 风格等)?此外,这个问题适用于 Solaris、HP-UX 和其他 unices(它们都是 UNIX 发行版吗?)。

此外,“分发”一词是否仅限于 GNU(/Linux、/Hurd、/kFreeBSD、/etc)操作系统,还是可以用于其他情况?

编辑:我已经意识到UNIX 的官方网站使用“UNIX 实现”“UNIX 操作系统”来指代 Unix 操作系统系列,即实现单一 Unix 标准的那些。

osx distributions

22
推荐指数
1
解决办法
1万
查看次数

在哪些 Linux 发行版上我可以依赖 /etc/os-release 的存在?

我试图找到一种方法来确定适用于大多数(或理想情况下,所有)现代发行版的 Linux 发行版名称和版本。我注意到其中/etc/os-release包含我尝试过的发行版(CentOS、Debian)所需的信息,但是依赖它的存在有多安全?诸如此类的命令uname -a实际上并不包含相同的信息,并且lsb_release在例如最小的 CentOS 上显然不存在。

有没有一种快速的方法可以准确地找出发行版附带的内容/etc/os-release?此外,是否/etc/os-release保证包含NAME,VERSIONPRETTY_NAME字段?

linux distributions

20
推荐指数
1
解决办法
6749
查看次数

一旦 Jessie 成为稳定版本,Debian Wheezy (stable) 会自动升级到 Jessie 吗?

我在 Debian Wheezy(稳定版)上,并通过基本的定期更新我的系统:

sudo apt-get update
sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

以后等 Jessie 稳定版本后,我想知道如果我继续这样做dist-upgrade,Wheezy 是否会自动变成 Jessie 。

是否需要任何手动步骤,以确保始终使用当前的稳定版本(未来数年,例如在 Jessie 之后的 Sid),还是我准备继续?

例如,我是否必须以某种方式修改我的 sources.list 文件,以确保 Jessie 会在没有任何手动步骤的情况下简单地闲逛,或者是否会有一些“大”更新(“dist-upgrade”)为我做这一切和更改的所有实例wheezyjessie时,它知道这样做呢?

(我的 sources.list 中的每一行都有wheezy。也许我只需wheezy要从它们中删除?)

我是一个新手(来自 OS X,在那个 Windows 之前),所以我不确定如何在 Debian 上自动完成同一频道上的“发布升级”——在那里,OS X 只是通过其自动更新提供,完全升级到下一个(稳定/就绪)版本,除了正常的系统更新检查之外,不需要手动检查或复杂的步骤。

debian upgrade distributions

18
推荐指数
2
解决办法
1万
查看次数