我可以让 do-release-upgrade 仅下载以后升级的软件包吗?

我可以让 do-release-upgrade 仅下载以后升级的软件包吗?

我正在运行 lubuntu 10.10,想升级到 11.04。我的互联网连接非常不稳定,所以我想在运行安装之前下载所有软件包。

根据,没有简单的方法可以做到这一点。错误报告该线程中提到的仍然开放。

我的问题:有没有办法破解 do-release-upgrade 以仅下载软件包,有点像在 apt-get dist-upgrade 中添加“-d”?

或者手动操作是获得我想要的结果的唯一方法吗?

如果我必须手动执行此操作,这些是所需的步骤吗,或者我遗漏了什么?

  1. 禁用第三方存储/etc/apt/sources.list/etc/apt/sources.list.d
  2. 将存储库/etc/apt/sources.list从更改mavericknatty
  3. 跑步sudo apt-get update
  4. 运行sudo apt-get -d dist-upgrade以仅下载软件包。根据需要多次执行此操作,直到下载完所有软件包。
  5. 运行sudo apt-get dist-upgrade以完成升级过程

答案1

前四个步骤是正确的,但第 5 步应该是sudo do-release-upgrade(而不是sudo apt-get dist-upgrade)。它应该注意到它要下载的所有(或大多数)软件包都已存在于中/var/cache/apt/archives

在 do-release-upgrade 的一些早期版本中存在一个错误,它会/var/cache/apt/archives在重新下载软件包之前进行清理,但据我所知,该错误已被修复。

答案2

我写了一个脚本来做这件事,用于我自己将多台机器升级到 Ubuntu 14.04“trusty”。它被称为“apt-get-other-release”。简单使用:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

脚本位于:

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

版本 1.0 的 sha1sum 为:87a466b2bb2d1ac5b0a08509246a450b8d1c7617

在后台,它基本上apt-get update; apt-get -d dist-upgrade使用自己的一组私有 sources.list 文件运行。结果存储在 /var/cache/apt-$to_rel/archives 中,并且“-U”标志会将这些结果复制到系统范围的 /var/cache/apt/archives 中,以便在升级期间它们会出现。

您还可以将升级存档从一台本地主机复制到另一台,以节省带宽。我对 amd64 和 i386 升级执行了此操作,仅复制名称中不包含“amd64”的 *.deb;然后apt-get-other-release -t trusty在 i386 机器上运行另一个,由于两台机器上安装了不同的内容,因此又下载了一大堆软件包。

欢迎提供反馈;请发电子邮件抄送,因为我不知道下次何时会查看 askubuntu。搜索引擎非常了解我。

注意:我实际上没有对如此处理过的系统进行升级!下周某个时候。趁这个脚本可能对人们有用的时候把它拿出来。

>贝拉<

答案3

有一种方法可以让更新管理器为您完成步骤 1-3。

  1. sudo update-manager从 GUI 中的终端窗口运行(这很重要)

    • 启动更新管理器,告诉它您想要升级到下一个版本的 Ubuntu,然后让它开始运行。它将禁用第三方存储库,将主存储库更改为最新版本,然后sudo apt-get update为您运行。
    • 然后它会弹出一个屏幕,告诉您为了运行更新,它必须删除、安装和升级软件包。
    • 此时,转到终端窗口并使用 CTRL-C 强制退出程序。[如果不执行此操作,而是通过更新管理器的取消按钮取消更新,它将恢复更改]。
  2. 根据需要从命令行运行sudo apt-get -d dist-upgrade多次,直到所有软件包都下载完毕并准备安装

  3. 运行sudo do-release-upgrade并让其使用已下载的软件包完成升级。

  4. 重新启用第三方存储库,然后sudo apt-get update && sudo apt-get upgrade再次运行以将第三方存储库更新到最新版本(确保存储库已更新到 ubuntu 的最新版本)

答案4

以下稍微缩短版的梅纳赫姆答案对我有用:

  1. 在一个终端窗口中运行sudo do-release-upgrade,等到提示:

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    不确认,保持打开状态

  2. 在第二个终端窗口中,运行sudo apt-get dist-upgrade --download-only

  3. 完成后,在第一个终端窗口中随意继续或中止

专业提示:安装一个终端多路复用器screen,并在其中运行。然后,如果显示升级过程的终端发生任何事情,do-release-upgrade您可以重新连接。(幸运的是,我今天的升级几乎完成了......)screen -D -RR

相关内容