我想在RHEL 9.1 (https://opendev.org/openstack/DevStack)上安装DevStack(Yoga)。我尝试使用官方手册(https://www.redhat.com/sysadmin/get-started-openstack-devstack)进行部署。
然而,由于无法使用"redhat-lsb-core"$./stack.sh
如有任何帮助,不胜感激。
查看代码,似乎redhat-lsb-core
包只需要GetOSVersion
函数,并且已经有针对CentOS和Rocky 9的明确规定,两者都像RHEL9一样不包括redhat-lsb-core包:
function GetOSVersion {
# CentOS Stream 9 does not provide lsb_release
source /etc/os-release
if [[ "${ID}${VERSION}" == "centos9" ]]; then
os_RELEASE=${VERSION_ID}
os_CODENAME="n/a"
os_VENDOR=$(echo $NAME | tr -d '[:space:]')
elif [[ "${ID}${VERSION}" =~ "rocky9" ]]; then
os_VENDOR="Rocky"
os_RELEASE=${VERSION_ID}
else
_ensure_lsb_release
os_RELEASE=$(lsb_release -r -s)
os_CODENAME=$(lsb_release -c -s)
os_VENDOR=$(lsb_release -i -s)
fi
...
看起来你可以像对待centos9一样对待RHEL9,也许像这样:
function GetOSVersion {
# CentOS Stream 9 does not provide lsb_release
source /etc/os-release
if [[ "${ID}${VERSION}" == "centos9" ]]; then
os_RELEASE=${VERSION_ID}
os_CODENAME="n/a"
os_VENDOR=$(echo $NAME | tr -d '[:space:]')
elif [[ "${ID}${VERSION}" == rhel9.* ]]; then
os_RELEASE=${VERSION_ID}
os_CODENAME="n/a"
os_VENDOR=$(echo $NAME | tr -d '[:space:]')
elif [[ "${ID}${VERSION}" =~ "rocky9" ]]; then
os_VENDOR="Rocky"
os_RELEASE=${VERSION_ID}
else
...
在RHEL 9.1系统上,它将设置:
os_RELEASE=9.1
os_CODENAME=n/a
os_VENDOR=RedHatEnterpriseLinux
希望这足以推动事情向前发展。