AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 750586
Accepted
realtebo
realtebo
Asked: 2023-07-04 17:59:55 +0800 CST2023-07-04 17:59:55 +0800 CST 2023-07-04 17:59:55 +0800 CST

有没有办法升级旧的 Ubuntu 14.04.6 LTS?

  • 772

我知道这里不鼓励发表意见,但这并不是征求意见。我想解释一下情况。

我继承了 Ubuntu 14.04.6 LTS 的 VPS,目前我面临着悲喜剧的场景。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.6 LTS
Release:        14.04
Codename:       trusty

$ uname -r
5.19.2-x86_64-linode156

过去,我通过修改存储库并谨慎地手动升级各个软件包,成功地将 Ubuntu 转换为 Debian。

我想就此征求您的意见:

  • 哪个版本的 Debian 更相似?是否真的可以将 Ubuntu 14 切换到旧的 Debian?我问这个问题是因为我记性不好,我还没有准备好告诉大家我100%确定过去已经做过转换;这只是我记得的事情
  • 有没有办法在 2023 年将服务器升级到 ubuntu 的下一个 LTS,而无需大跳到最新的 LTS?
debian
  • 1 1 个回答
  • 24 Views

1 个回答

  • Voted
  1. Best Answer
    Gilles 'SO- stop being evil'
    2023-07-04T19:17:15+08:002023-07-04T19:17:15+08:00

    由于初始化系统不同,我不建议在那个版本的 Ubuntu 和 Debian 之间进行转换。Ubuntu 14.04 使用了 Debian 从未接受过的 Upstart。

    您可以升级到较新的 Ubuntu。您需要一次执行一个 LTS 版本,即 14.04 → 16.04 → 18.04 → 20.04 → 22.04。这需要时间,但风险很低,尤其是在服务器上。最大的麻烦来源通常是第三方应用程序,有时是 Universe 中包之间的交互。典型的 VPS 比典型的台式机更不容易遇到问题。

    在开始之前,请查看 VPS 正在运行的内容,并制定计划来处理对旧软件的依赖关系。例如,如果您有一些古老的 PHP 代码,请首先测试它是否适用于现代版本的 PHP。

    准备升级

    所有 Ubuntu 版本都存档在旧版本服务器上。因此,您需要做的第一件事就是编辑/etc/apt/sources.list以替换archive.ubuntu.com为old-releases.ubuntu.com。还要确保您有trusty-updates后续版本的软件包源等:通常在版本生命周期即将结束时会有一些更新,以解决升级到下一个版本时遇到的问题。所以你的/etc/apt/sources.list应该看起来像这样:

    deb http://old-releases.ubuntu.com/ubuntu trusty main restricted universe multiverse
    deb http://old-releases.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
    deb http://old-releases.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
    

    您可能有多行而不是一行。您可能会丢失一些restricted,universe和multiverse: ,这也没关系(事实上,您拥有的越少,潜在问题的来源就越少,但当然,如果您安装了从中安装的任何软件包,它们就需要保留)。

    然后运行此旧版本的任何挂起的更新

    apt-get update
    apt-get upgrade
    

    此时,我建议在 中保留您的更改历史记录/etc。您可以使用etckeeper轻松完成此操作。

    apt-get install etckeeper
    etckeeper init
    etckeeper commit 'Initial commit before upgrading from Ubuntu 14.04'
    

    如果您启用了任何第三方存储库(例如 PPA),您应该禁用它们,并在升级过程中卸载相应的软件包。如果存在任何此类存储库,请首先注释掉/etc/apt/sources.list或中的相应行/etc/apt/sources.list.d/*。运行etckeeper commit以记录您的更改。然后查找过时的软件包(过时的软件包是您无法从当前软件包源重新安装的软件包):

    apt-get install aptitude
    aptitude search '~o'
    

    如果您愿意,可以使用 aptitude 的交互模式。记下过时的软件包,然后卸载它们。

    从 LTS 升级到 LTS

    您现在已准备好开始升级。编辑(14.04) 并将/etc/apt/sources.list其替换为(16.04)。运行以记录您的更改。然后运行trustyxenialetckeeper commit

    apt-get update
    apt-get dist-upgrade
    

    下载和安装软件包时会出现很长一段时间的无聊,偶尔会出现一些问题。

    如果出现问题,请及时解决。

    升级完成后,重复该过程以升级到bionic(18.04)。在我写这个答案时,这个仍然在普通服务器上而不是旧版本服务器上,所以除了替换为 之外,xenial还bionic替换old-releases.ubuntu.com为archive.ubuntu.com。

    然后再次重复升级到focal(20.04),然后升级到jammy(22.04)。

    完成此操作后,如果您启用了第三方存储库,请重新启用它们或查找其现代等效项。重新安装升级前删除的第三方应用程序,如果相关,则升级您保留的第三方应用程序/usr/local等。测试一切正常。

    处理过期的密钥和证书

    由于密钥过期或根 CA 未知,您可能会遇到加密验证问题。

    如果在升级到非古董版本之前 HTTPS 包源不起作用,请从一开始就坚持使用 HTTP 包源。

    如果您从 APT 收到有关过期密钥的错误,您可以绕过它们。或者,从更新的发行版安装密钥环包可能会有所帮助,但我不知道您到底需要什么。ubuntu -keyring/usr/share/keyrings/ubuntu-archive-removed-keys.gpg包包含一个包含旧版本密钥的文件,此外还/usr/share/keyrings/ubuntu-archive-keyring.gpg包含当前版本的密钥。

    • 2

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve