我可以只做do-release-upgrade下载软件包以便以后升级吗?


33

我正在运行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以完成升级过程

这似乎与我本来应该做的差不多。
Jo-Erlend Schinstad 2011年

Answers:


13

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

在do-release-upgrade的某些早期版本中,存在一个错误,可以/var/cache/apt/archives在重新下载软件包之前将其清除,但IIRC已修复该错误。


我做到了,它奏效了。
Menachem

在此处查看如何使用GUI进行操作:askubuntu.com/a/418789/21794
Menachem

问题中描述的过程可用于从一个LTS升级到另一个LTS吗?我有一个运行12.04的服务器,我想升级到14.04,但是在本月晚些时候删除12.04仓库之前,可能没有机会为升级做充分的准备。
dgw

9

我编写了一个脚本来将自己的多台计算机升级到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通过自己的私有source.list文件集运行的。结果存储在/ var / cache / apt- $ to_rel / archives中,“-U”标志将这些结果复制到系统范围内的/ var / cache / apt / archives中,以便在升级过程中出现。

您也可以将升级存档从一个本地主机复制到另一台本地主机,以节省带宽。我这样做是为了进行amd64和i386升级,只复制名称中没有“ amd64”的* .deb。然后apt-get-other-release -t trusty在i386机器上运行另一个,该机器又下载了一大堆软件包,因为两台机器上安装了不同的东西。

反馈表示赞赏;email cc表示赞赏,因为我不知道下一次查看askubuntu的时间。搜索引擎非常了解我。

注意:我实际上尚未对经过如此处理的系统进行升级!下周的某个时间。将此脚本发布出去可能对人们有用。

>贝拉<


6

有一种让更新管理器为您执行步骤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)


2

我还为此编写了一个脚本,您可以在下面找到

https://github.com/neldredge/fetch-release-upgrade

用法:在临时目录中运行

 ./fetch-release-upgrade.sh trusty

或您要升级到的任何新版本。必要的软件包将下载到名为的子目录中debs。然后可以将它们移至/var/cache/apt/archives运行之前do-release-upgrade

我还没有看过user270294的脚本,但听起来它沿相似的方向工作,并且可能具有更多功能。


2

以下简短的Menachem回答版本对我有用:

  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显示升级过程的终端发生任何事情,您可以重新连接。(幸运的是,我今天的升级几乎完成了...)


这是一个很好的方法,但是如果您必须在中间关闭计算机,则可能会失败。
Menachem

@Menachem:谢谢。“失败”是什么意思,请您详细说明一下?是的,APT源可能处于不一致状态,但是除此之外吗?
krlmlr

我还没有尝试过,所以我不知道会发生什么。我只是在想,因为当您取消do-release-upgrade时,它会还原更改,但是您一直在使用最新的apt-sources下载更新,因此当您尝试重新运行更新时可能会遇到不稳定的系统后来。
Menachem '18

我不确定只是下载安装文件是否会发生任何变化,这不只是从Internet缓存文件吗?无论如何,此过程对我来说效果很好,do-release-upgrade下载后我中止了然后重新启动。
krlmlr

1
是的 只要您在完成操作之前不尝试运行常规更新,就可以了。
Menachem '18

0

免责声明:我以前从未做过。这可能是一个可怕的想法。它可能会破坏一切,清空您的银行帐户,然后逃到西班牙南部。与任何潜在危险一样,请在执行任何操作之前进行备份


我不确定您已经安装了多少东西,所以这可能是一个有缺陷的解决方案,但是您可以从CD升级。下载备用 iso,安装它,然后运行升级脚本。

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

在继续之前,您不必使用wget来获取图像。Bittorrent可以与标准下载管理器一起很好地工作。重要的是您希望某些内容能够恢复,因此您可以停止下载并在其他时间提取它。这是什么wget-c标志就可以了。

获得ISO后,下一步就非常简单:

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

我谈论的缺陷是,这只会升级CD中包含的Ubuntu集成的内容。它不会升级您的其他软件包。

理论上讲应该没问题。您可能会发现某些应用程序中断,某些可能被更新程序强行删除,但核心操作系统应保持稳定。

如果我的理论是正确的,那么这将使您可以在需要时通过Synaptic或(如果已安装)使用as和as来升级其他软件包aptitude


如果西班牙南部更近怎么办?
马特·乔纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.