为什么“osinfo-query os”检测不到 Ubuntu 18.04?

为什么“osinfo-query os”检测不到 Ubuntu 18.04?

操作系统:Kubuntu 18.04.1(以及虚拟机中的 Ubuntu 18.04.1)

osinfo-query os安装后运行时libosinfo-bin,输出不包含 Ubuntu 18.04:

$ osinfo-query os | grep -i ubuntu | cut -d ' ' -f -2
 ubuntu10.04
 ubuntu10.10
 ubuntu11.04
 ubuntu11.10
 ubuntu12.04
 ubuntu12.10
 ubuntu13.04
 ubuntu13.10
 ubuntu14.04
 ubuntu14.10
 ubuntu15.04
 ubuntu15.10
 ubuntu16.04
 ubuntu16.10
 ubuntu17.04
 ubuntu17.10
 ubuntu4.10
 ubuntu5.04
 ubuntu5.10
 ubuntu6.06
 ubuntu6.10
 ubuntu7.04
 ubuntu7.10
 ubuntu8.04
 ubuntu8.10
 ubuntu9.04
 ubuntu9.10
$

这是为什么?我能以某种方式更新某些内容以包含 Ubuntu 18.04 吗?

我问这个问题的原因是:

接下来我们传递--os-variant选项。虽然这不是强制性的,但强烈建议使用它,因为它可以提高虚拟机的性能。该选项将尝试将客户机微调到特定的操作系统版本。如果未传递该选项,程序将尝试从安装媒体中自动检测正确的值。

我读到的如何从 CLI 创建和管理 KVM 虚拟机

回应Rinzwind 的回答locate,运行后的输出sudo updatedb为:

$ locate libosinfo
/usr/lib/x86_64-linux-gnu/libosinfo-1.0.so.0
/usr/lib/x86_64-linux-gnu/libosinfo-1.0.so.0.1001.0
/usr/share/doc/gir1.2-libosinfo-1.0
/usr/share/doc/libosinfo-1.0-0
/usr/share/doc/libosinfo-bin
/usr/share/doc/gir1.2-libosinfo-1.0/changelog.Debian.gz
/usr/share/doc/gir1.2-libosinfo-1.0/copyright
/usr/share/doc/libosinfo-1.0-0/NEWS.gz
/usr/share/doc/libosinfo-1.0-0/README
/usr/share/doc/libosinfo-1.0-0/changelog.Debian.gz
/usr/share/doc/libosinfo-1.0-0/copyright
/usr/share/doc/libosinfo-bin/changelog.Debian.gz
/usr/share/doc/libosinfo-bin/copyright
/var/cache/apt/archives/libosinfo-bin_1.1.0-1_amd64.deb
/var/lib/dpkg/info/gir1.2-libosinfo-1.0:amd64.list
/var/lib/dpkg/info/gir1.2-libosinfo-1.0:amd64.md5sums
/var/lib/dpkg/info/libosinfo-1.0-0:amd64.list
/var/lib/dpkg/info/libosinfo-1.0-0:amd64.md5sums
/var/lib/dpkg/info/libosinfo-1.0-0:amd64.shlibs
/var/lib/dpkg/info/libosinfo-1.0-0:amd64.symbols
/var/lib/dpkg/info/libosinfo-1.0-0:amd64.triggers
/var/lib/dpkg/info/libosinfo-bin.list
/var/lib/dpkg/info/libosinfo-bin.md5sums

/usr/share/libosinfo/db或都不/etc/libosinfo/db存在。


按照 Rinzwind 的建议运行locate os-info即可:

$ locate osinfo | grep ubuntu
/usr/share/osinfo/install-script/ubuntu.com
/usr/share/osinfo/install-script/ubuntu.com/ubuntu-preseed-jeos.xml
/usr/share/osinfo/os/ubuntu.com
/usr/share/osinfo/os/ubuntu.com/ubuntu-10.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-10.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-11.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-11.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-12.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-12.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-13.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-13.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-14.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-14.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-15.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-15.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-16.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-16.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-17.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-17.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-4.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-5.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-5.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-6.06.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-6.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-7.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-7.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-8.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-8.10.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-9.04.xml
/usr/share/osinfo/os/ubuntu.com/ubuntu-9.10.xml
$ 

现在应该很容易添加/usr/share/osinfo/os/ubuntu.com/ubuntu-18.04.xml。但是,为什么一开始没有包括它,这个问题仍然悬而未决。

答案1

要更新 osinfo 数据库(它实际上只是 XML 文件的集合),请执行以下操作:

1:安装包osinfo-db-tools以获取osinfo-db-import程序(至少在 Debian'ish 发行版上):

apt update;apt install osinfo-db-tools

2:从以下位置下载最新的 osinfo-db 文件发布例子:

wget -O "/tmp/osinfo-db.tar.xz" "https://releases.pagure.org/libosinfo/osinfo-db-20200325.tar.xz" 

3:导入下载的osinfo-db文件:

osinfo-db-import --local "/tmp/osinfo-db.tar.xz"

新的 osinfo-db XML 文件将位于/etc/osinfo/..

原版发行版包提供的 osinfo-db XML 文件仍然位于/usr/share/osinfo

新创建的路径osinfo-db-import优先于原有的路径。

如果要覆盖原始 osinfo-db XML,请使用该选项--system代替--local

来源

答案2

你可以随时从GitLab然后将其替换。

可能需要先安装gitosinfo-db-toolsintltoolmake

sudo apt install osinfo-db-tools intltool make git

从 GitLab 页面克隆 osinfo

git clone https://gitlab.com/libosinfo/osinfo-db

前往osinfo-db文件夹

cd osinfo-db/

准备操作系统文件

./prepare-release.sh

在准备过程中它显示以下行:

osinfo-db-import --root /home/terrance/builder --system osinfo-db-20180830.tar.xz

于是我进入了那个文件夹cd ~/builder,里面有一个usr文件夹。我所要做的就是将该文件夹复制到根目录,然后它就会更新

cd ~/builder
sudo cp -Rv * /

现在它可以检测到 Ubuntu 18.04

terrance@terrance-ubuntu:~/builder$ osinfo-query os | grep -i ubuntu
 ubuntu10.04          | Ubuntu 10.04 LTS                                   | 10.04    | http://ubuntu.com/ubuntu/10.04          
 ubuntu10.10          | Ubuntu 10.10                                       | 10.10    | http://ubuntu.com/ubuntu/10.10          
 ubuntu11.04          | Ubuntu 11.04                                       | 11.04    | http://ubuntu.com/ubuntu/11.04          
 ubuntu11.10          | Ubuntu 11.10                                       | 11.10    | http://ubuntu.com/ubuntu/11.10          
 ubuntu12.04          | Ubuntu 12.04 LTS                                   | 12.04    | http://ubuntu.com/ubuntu/12.04          
 ubuntu12.10          | Ubuntu 12.10                                       | 12.10    | http://ubuntu.com/ubuntu/12.10          
 ubuntu13.04          | Ubuntu 13.04                                       | 13.04    | http://ubuntu.com/ubuntu/13.04          
 ubuntu13.10          | Ubuntu 13.10                                       | 13.10    | http://ubuntu.com/ubuntu/13.10          
 ubuntu14.04          | Ubuntu 14.04 LTS                                   | 14.04    | http://ubuntu.com/ubuntu/14.04          
 ubuntu14.10          | Ubuntu 14.10                                       | 14.10    | http://ubuntu.com/ubuntu/14.10          
 ubuntu15.04          | Ubuntu 15.04                                       | 15.04    | http://ubuntu.com/ubuntu/15.04          
 ubuntu15.10          | Ubuntu 15.10                                       | 15.10    | http://ubuntu.com/ubuntu/15.10          
 ubuntu16.04          | Ubuntu 16.04                                       | 16.04    | http://ubuntu.com/ubuntu/16.04          
 ubuntu16.10          | Ubuntu 16.10                                       | 16.10    | http://ubuntu.com/ubuntu/16.10          
 ubuntu17.04          | Ubuntu 17.04                                       | 17.04    | http://ubuntu.com/ubuntu/17.04          
 ubuntu17.10          | Ubuntu 17.10                                       | 17.10    | http://ubuntu.com/ubuntu/17.10          
 ubuntu18.04          | Ubuntu 18.04 LTS                                   | 18.04    | http://ubuntu.com/ubuntu/18.04          
 ubuntu4.10           | Ubuntu 4.10                                        | 4.10     | http://ubuntu.com/ubuntu/4.10           
 ubuntu5.04           | Ubuntu 5.04                                        | 5.04     | http://ubuntu.com/ubuntu/5.04           
 ubuntu5.10           | Ubuntu 5.10                                        | 5.10     | http://ubuntu.com/ubuntu/5.10           
 ubuntu6.06           | Ubuntu 6.06 LTS                                    | 6.06     | http://ubuntu.com/ubuntu/6.06           
 ubuntu6.10           | Ubuntu 6.10                                        | 6.10     | http://ubuntu.com/ubuntu/6.10           
 ubuntu7.04           | Ubuntu 7.04                                        | 7.04     | http://ubuntu.com/ubuntu/7.04           
 ubuntu7.10           | Ubuntu 7.10                                        | 7.10     | http://ubuntu.com/ubuntu/7.10           
 ubuntu8.04           | Ubuntu 8.04 LTS                                    | 8.04     | http://ubuntu.com/ubuntu/8.04           
 ubuntu8.10           | Ubuntu 8.10                                        | 8.10     | http://ubuntu.com/ubuntu/8.10           
 ubuntu9.04           | Ubuntu 9.04                                        | 9.04     | http://ubuntu.com/ubuntu/9.04           
 ubuntu9.10           | Ubuntu 9.10                                        | 9.10     | http://ubuntu.com/ubuntu/9.10

答案3

因为它在提供此信息的 XML 中不可用。它取自以下位置之一:

/usr/share/libosinfo/db
/etc/libosinfo/db
${HOME}/.config/libosinfo/db

(我猜的第一个是 ;))

您可以添加以“.xml”结尾的文件,${HOME}/.config/libosinfo/db它将被包含在内。其内容可以从当前已有的操作系​​统中复制。


该文件的位置似乎多年来一直在变化。这也有可能:|

用户位置

这是由环境变量决定的

$OSINFO_USER_DIR

如果未设置,则默认为 $XDG_CONFIG_HOME/osinfo 如果未设置,则默认为 $HOME/.config/osinfo 此位置供希望安装本地数据供其应用程序使用的非特权用户使用

答案4

sudo apt install osinfo-db-tools intltool make git
git clone https://gitlab.com/libosinfo/osinfo-db
cd osinfo-db/
./prepare-release.sh

当我使用 bash 脚本 prepare-release.sh 时,pytest 给出失败的 test_urls.py 无法连接某些存储库(fedora36、silverblue37 和 opensusetumbleweed)

FAILED tests/test_urls.py::test_urls[fedora36] - requests.exceptions.ConnectionError: HTTPSConnectionPool(host='fedora.ip-connect.vn.ua', port=443)

相关内容