操作系统: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
选项。虽然这不是强制性的,但强烈建议使用它,因为它可以提高虚拟机的性能。该选项将尝试将客户机微调到特定的操作系统版本。如果未传递该选项,程序将尝试从安装媒体中自动检测正确的值。
回应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然后将其替换。
可能需要先安装git
、osinfo-db-tools
和intltool
make
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)