web-dev-qa-db-ja.com

Ubuntuデリバティブ*および* Ubuntuを使用して、Ubuntuコードネームを取得するにはどうすればよいですか?

aptソースを生成するには、Ubuntuコードネームが必要です。

Ubuntuでは、lsb_release --codename --shortを使用できます。これにより、(たとえば)trustyが返されます。

(例)Linux Mintでlsb_release -csを使用すると、(例)rosaが返されます。アップストリームのコードネームが必要な場合は、lsb_release -csutrustyを返す)を使用できます。

しかし、Ubuntuでlsb_release -csuを使用すると、エラーlsb_release: error: no such option: -uが発生します。

on Ubuntuを含む、上流に最も近いUbuntuコードネームを取得する方法はありますか?

1
Roger Lipscombe

Ubuntu trustyのUBUNTU_CODENAMEには/etc/os-releaseがありません(古すぎます)。ミントシルビアは、-uスイッチのサポートをlsb_releaseにドロップしました。

そこにはisがあり、私が試したUbuntuとMintのすべてのバージョンで、/etc/lsb-releaseというファイルがあり、DISTRIB_CODENAMEを定義しています。 Mintの場合、それはMintコードネームですが、Ubuntuファイルである/etc/upstream-release/lsb-releaseもあります。

そう...

現在、以下を使用しています。

UBUNTU_CODENAME=$( \
   (grep DISTRIB_CODENAME /etc/upstream-release/lsb-release || \
    grep DISTRIB_CODENAME /etc/lsb-release) 2>/dev/null | \
   cut -d'=' -f2 )
1
Roger Lipscombe

Linux Mintでは/etc/os-releaseとUbuntuのコード名にアクセスします。

source /etc/os-release
echo $UBUNTU_CODENAME # xenial

または、sedで抽出することもできます

sed 's/UBUNTU_CODENAME=//;t;d' /etc/os-release # xenial

Linux Mint Sylviaでは、これが/etc/os-releaseは次のようになります。

NAME="Linux Mint"
VERSION="18.3 (Sylvia)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18.3"
VERSION_ID="18.3"
HOME_URL="http://www.linuxmint.com/"
SUPPORT_URL="http://forums.linuxmint.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/linuxmint/"
VERSION_CODENAME=sylvia
UBUNTU_CODENAME=xenial
3
codehearts

lsb_release -csuを実行して、出力が得られたかエラーが返されたか(エラーメッセージを非表示にしたか)を確認し、その場合はlsb_release -csにフォールバックできます。

lsb_release -csu 2> /dev/null || lsb_release -cs
1
Byte Commander

Ubuntuの「上流」はDebianなどです

$ cat /etc/debian_version
stretch/sid
$ 
0
DK Bose