如何使用私有 deb 存储库进行版本升级?

如何使用私有 deb 存储库进行版本升级?

我们有 Ubuntu 服务器(20.04 LTS),但没有互联网连接。为了获取新的 apt 软件包,我们有一个JFrog Artfactory服务器具有 Internet 访问权限,并连接到我们的 Ubuntu 服务器镜像 archive.ubuntu.com 以满足特定请求。sources.list文件会相应更改。这对于apt install <package>软件包升级非常有效。

随着 22.04 LTS 的发布,我们现在尝试进行发行版升级。但是,sudo do-release-upgrade失败并显示错误消息

无法连接到https://changelogs.ubuntu.com/meta-release-lts. 检查您的互联网连接或代理设置

忽略目前 22.04 LTS 尚未包含在这个文件中,我不知道如何规避该工具从互联网下载这个文件并使用我们的私有软件包存储库进行升级的愿望。

我看到do-release-upgrade提供了选项--data-dir。它仅显示使用--help,不幸的是没有在其手册页中(至少我看不到)。可以使用吗?还有其他开关吗?meta-release-lts如果有必要,我可以提供指向我们私有存储库的自己的文件。

答案1

在以下机构的帮助下这个问题和源代码ubuntu-release-upgrader-core,看来,在你的情况下,你需要提供https://changelogs.ubuntu.com/meta-release-lts文件和本地网络服务器中的所有相应文件:

您将需要修改链接meta-release-lts并提供所有文件:

Release-File: http://archive.ubuntu.com/ubuntu/dists/focal-updates/Release
ReleaseNotes: http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/dist-upgrader-all/current/ReleaseAnnouncement
ReleaseNotesHtml: http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/dist-upgrader-all/current/ReleaseAnnouncement.html
UpgradeTool: http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/dist-upgrader-all/current/focal.tar.gz
UpgradeToolSignature: http://archive.ubuntu.com/ubuntu/dists/focal-updates/main/dist-upgrader-all/current/focal.tar.gz.gpg

更新:看来您还需要修改 UpgradeTool 文件本身:

修改mirrors.cfg并提供存储库的基本 URL

并且,要提供您的自定义链接meta-release-lts,请更改URI_LTS/etc/update-manager/meta-release请确保也重新签署升级工具,因为它可能不喜欢不匹配的密钥)

答案2

您可以编辑/etc/update-manager/meta-release(根据源代码负责的配置文件)。

# cat /etc/update-manager/meta-release    
# default location for the meta-release file

[METARELEASE]
URI = https://changelogs.ubuntu.com/meta-release
URI_LTS = https://changelogs.ubuntu.com/meta-release-lts
URI_UNSTABLE_POSTFIX = -development
URI_PROPOSED_POSTFIX = -proposed

如果编辑该文件以使用不存在的域,例如changelog.ubuntu.com,我会看到预期的错误:

# do-release-upgrade -cd
Checking for a new Ubuntu release
Failed to connect to https://changelog.ubuntu.com/meta-release-lts-development. Check your Internet connection or proxy settings
There is no development version of an LTS available.
To upgrade to the latest non-LTS development release 
set Prompt=normal in /etc/update-manager/release-upgrades.

您需要URI_LTS针对 20.04 之类的 LTS 版本进行编辑。

相关内容