从建议的 // 具体示例 (VirtualBox) 中进行选择性升级

从建议的 // 具体示例 (VirtualBox) 中进行选择性升级

导致,然后导致, 我在想

  1. 这些行需要如何调整才能仅升级 VirtualBox(即https://launchpad.net/ubuntu/+source/virtualbox/6.1.38-dfsg-3~ubuntu1.22.04.1)来自“提议”,例如用“virtualbox”和“virtualbox-guest-utils”替换下面的星号(?)和
  2. 以下所有内容是什么意思?

https://wiki.ubuntu.com/Testing/EnableProposed

cat <<EOF >/etc/apt/preferences.d/proposed-updates
# Configure apt to allow selective installs of packages from proposed
Package: *
Pin: release a=$(lsb_release -cs)-proposed
Pin-Priority: 400
EOF

非常感谢您的阐释!

答案1

我将在本回答的最后提出一个框架挑战,表明这不是实现目标的最佳方式。但在此之前,这就是人们所做的以及这样做的原因。

只需按照非常明确的说明进行操作即可https://wiki.ubuntu.com/Testing/EnableProposed,做出适当的改变果酱发布。

此过程假定所使用的系统已完全升级并且具有正常运行的apt系统。

整个过程的全景图 -

  • 步骤 1:启用建议的回购
  • 步骤 2:阻止 apt 自动安装建议的回购
  • 步骤 3:手动安装所需的软件包建议的回购

首先让我们看看 VirtualBox 的可用版本果酱默认情况下:

apt policy virtualbox
virtualbox:
  Installed: (none)
  Candidate: 6.1.34-dfsg-3~ubuntu1.22.04.1
  Version table:
     6.1.34-dfsg-3~ubuntu1.22.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages
     6.1.32-dfsg-1build1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages

向前!

  • 步骤 1 - 启用建议的回购如 wiki 中所述

在此处输入图片描述

现在让我们再次看看可用的 VirtualBox 版本

apt policy virtualbox
virtualbox:
  Installed: (none)
  Candidate: 6.1.38-dfsg-3~ubuntu1.22.04.1
  Version table:
     6.1.38-dfsg-3~ubuntu1.22.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy-proposed/multiverse amd64 Packages
     6.1.34-dfsg-3~ubuntu1.22.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages
     6.1.32-dfsg-1build1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages

是的,6.1.38 版本可用。但如果我们sudo apt upgrade现在简单地执行,我们不仅会获得该版本的 VirtualBox,还会获得所有其他可能存在问题的软件包建议的repo。这是因为它的优先级与其他 repo 中的包一样为 500。

因此第 2 步

  • 第 2 步 - 阻止 apt 自动安装建议存储库中的任何内容

发出一个sudo su以便您可以写入 /etc/apt,然后按照 wiki 所述执行:

cat <<EOF >/etc/apt/preferences.d/proposed-updates
# Configure apt to allow selective installs of packages from proposed
Package: *
Pin: release a=$(lsb_release -cs)-proposed
Pin-Priority: 400
EOF

然后exitsudo su

这样做的目的是将来自建议的repo 的优先级较低,因此 apt 不会在具有更高优先级的正常 repos 中的软件包之上安装它们。

就像 wiki 上说的,通过执行 来测试它是否有效sudo apt update。希望没有软件包正在等待升级,因为我们想要做的是阻止apt来自建议的回購。

  • 步骤 3:从建议的仓库中手动安装所需的软件包

正如 wiki 所说,按如下方式启动 aptitude:

sudo aptitude -t jammy-proposed

现在在 aptitude 中搜索virtualbox。找到后,突出显示它并按 + 将其标记为要安装。Aptitude 也会找到并标记其依赖项。它看起来会像这样。

在此处输入图片描述

现在按 g 键安装软件包。完成后,退出 aptitude。

再次查看版本(请注意已安装包的优先级低至 400 - 您手动完成此操作,因此优先级不是影响因素)

apt policy virtualbox
virtualbox:
  Installed: 6.1.38-dfsg-3~ubuntu1.22.04.1
  Candidate: 6.1.38-dfsg-3~ubuntu1.22.04.1
  Version table:
 *** 6.1.38-dfsg-3~ubuntu1.22.04.1 400
        400 http://us.archive.ubuntu.com/ubuntu jammy-proposed/multiverse amd64 Packages
        100 /var/lib/dpkg/status
     6.1.34-dfsg-3~ubuntu1.22.04.1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages
     6.1.32-dfsg-1build1 500
        500 http://us.archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages

然后运行它!

在此处输入图片描述



现在进行框架挑战!

我们完成了所有这些操作来安装版本 6.1.38,这是通过官方 Oracle virtualbox ppa 提供的当前版本!

virtualbox-6.1通过安装让您的生活更轻松那里

相关内容