将同一WIFI网络上的两台计算机从12.04升级到12.10

将同一WIFI网络上的两台计算机从12.04升级到12.10

我家里有两台电脑使用同一个 WIFI 网络。两台电脑都运行 Ubuntu 12.04,并且都需要尽快更新到 12.10。

有些应用程序在一个电脑上安装,在另一个电脑上没有安装,反之亦然。但它们共享大量应用程序。

请指出如何以如下方式升级两者:

  • 我在计算机 1 上下载了所有需要的软件包
  • 使用外部硬盘将下载的包移动到另一台计算机(比通过 WIFI 快得多)
  • 然后升级计算机 1
  • 然后升级计算机 2 — — 下载所有尚不可用的软件包之后。

另外,我是新手,如果这个过程简单且解释得当,我将不胜感激。

答案1

正常升级第一台计算机,然后将其下载的所有 .deb 文件复制到外部驱动器:

cp -v /var/cache/apt/archives/*.deb /media/pendrive

接下来将所有 .deb 文件复制到第二台计算机上的同一目录中:

sudo cp -v /media/pendrive/*.deb /var/cache/apt/archives/

然后升级第二台计算机。当然,将 /media/pendrive/ 更改为 deb 备份设备的正确路径。

这样,更新将在第二台计算机上进行,但它将能够重新使用已下载的 .deb 文件,而无需再次下载。两台计算机必须是同一版本 - 32 位或 64 位。

您还可以使用此技术正常更新两个系统。如果愿意,可以将一个系统设置为自动更新,另一个系统设置为不自动检查更新。定期将更新的 .deb 文件复制到第二台计算机并运行更新。如果您保留此 .deb 文件库,那么您也可以在安装新机器后使用它来使第一次更新非常快速 - 不要让系统在安装期间进行更新,而是在安装后手动进行更新。

我实际上使用脚本来维护 .deb 文件备份、恢复它们,甚至在安装新系统时将它们复制到新系统。使用带有 -n 开关的 cp 不会尝试复制已经存在的项目,并且非常易于使用和维护。这是我用来将 .deb 文件上传到 pendrive 的脚本。请注意,pendrive 应该有一个卷名,以便它的挂载点始终是 /media/yourname - 脚本将接受卷名作为参数,例如

debupdate yourname

该脚本还可以为不同的版本保留单独的备份而不会混淆 - 它将档案存储在 /media/yourname/archives/kernel 下,其中 kernel 是主要版本级别(忽略 -xx 扩展名)。如果您担心 .deb 文件被删除,您可以在更新期间多次运行此脚本,或者可以自动执行此操作。

脚本如下:

#! /bin/bash
#copy the contents of the working archives to the given device
#No files will be overwritten (existing will be skipped)
#
args=("$@")
rel="$(uname -r)"
release="${rel:0:6}"
#
# For releases with single digit third series, truncate the '-'
if [ "${rel:5:1}" == "-" ]; then
release="${rel:0:5}"
fi
##############
#
echo
echo "Kernel release level is "$release
#
#
#
if [ -z ${args[0]} ]; then
    echo "You must pass the volume name of target"
else    
    if [ ! -d "/media/${args[0]}" ]; then
     echo "Backup device ${args[0]} not found"
     exit 1
    else
     mkdir -p /media/${args[0]}/archives/$release/
     cp -nv /var/cache/apt/archives/*.deb /media/${args[0]}/archives/$release/
    fi
fi

答案2

我会使用 @ apt-cache-server。请参阅https://help.ubuntu.com/community/Apt-Cacher-Server了解更多详情。您更新第一个框,然后更新第二个,它将使用第一个框上的缓存。避免包重复。

相关内容