手动执行“apt-get update”操作是否安全?

手动执行“apt-get update”操作是否安全?

我在尝试着保持我的系统为最新. 预期目标是未连接到互联网。正在尝试从另一台可以访问互联网的机器获取所有需要的信息。

经过一番研究,我找到了一种实现此目的的方法。你能告诉我这是否正确且安全吗?

以下是我对 apt-get 过程的理解。

  1. 首先,我们运行命令‘apt-get 更新’:这将连接到“/etc/apt/sources.list”.. 和, 下载所有 Packages.gz文件如(in.archive.ubuntu.com/ubuntu/dists/trusty/main/binary-amd64/Packages.gz)&以类似的名称保存它们在下面‘/var/lib/apt/列表’(对于上面提到的 url,对应的文件是 在.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages
  2. 然后,当我们运行‘apt-get 升级’(或者)‘apt-get install pkg_name’, 这使用本地元数据检查本地安装的软件包列表 下载并存储在‘/var/lib/apt/列表’。然后从中获取下载 URL 并要求用户确认在下载并安装所需软件包之前

这是我的计划,使隔离的机器保持最新状态。

  1. 获取要下载的软件包列表来自/etc/apt/sources.list目标机器上的 conf 文件..
  2. 下载元数据文件 Packages.gz在另一台机器上..
  3. 复制这些文件目标机器的/var/lib/apt/lists使用适当的文件名。
  4. 跑步apt-get --print-uris upgrade(或者)apt-get --print-uris --yes install pkg_name获取该机器所需的所有包的列表。
  5. 下载这些软件包再次在第二台机器上
  6. 将其复制到目标机器
  7. 跑过dpkg -i pkg_list安装所有缺失的软件包。

我能够通过这个过程实现我的目标。

我的问题是:这是否正确可靠?或者有没有更简单的方法来实现这一点?

答案1

从理论上讲这应该可行,但对此我有两个想法:

将下载的 deb 复制到 ,/var/cache/apt/archives/而不是使用 进行安装dpkg -i。 apt 会在那里检查软件包并将其下载到。

也许甚至更好:查看apt-zip

APT-ZIP 是一个使用 apt 和(可移动)媒体(硬盘、USB 密钥、ZIP 驱动器……)更新非联网计算机的软件包。

apt-zip-list 和 apt-zip-inst 命令通过使用(最好是大容量)可移动介质(如 ZIP 或 USB 驱动器)简化了使用 apt 的非联网 Debian 主机的升级过程。

apt-zip-list 生成两个文件。一个是“fetch”脚本(以模块化、可扩展的方式支持 wget 后端),可以在另一台主机(可能没有运行与互联网良好连接的 Debian 系统)上使用,以获取先前在 dselect(8) 中选择或在命令行中指示的软件包,然后将软件包安装在您的 Debian 机器上;另一个 apt-zip.options 保存 apt-zip-list 使用的选项,以指示 apt-zip-inst 要执行什么操作和/或要安装哪些软件包。

答案2

简短的回答是

你所说的是 Ubuntu 无需互联网即可运行,这本身就很糟糕,因为你无法获得版本的 OTA 更新,你的错误将不会被删除,也不会提供存储库支持。

不建议在 Ubuntu 上使用此功能,因为这将使您运行不受社区支持的版本。我之所以提到这一点,是因为许多较小的(并非不太重要的更新)在列表文件夹中不可用,因此不会安装在您的系统上。

至于实际操作,您可以更改 /etc/apt/sources.list 中的源文件以指向系统中的某个位置。

但是,就像我说的,这不会帮助你,因为你正在做的是尝试更新你的 Ubuntu,而这在技术上是不可能发生的。但你仍然可以部分使用我上面所说的方法更新 Ubuntu。

至于是否有更好的方法来做到这一点:不是没有网络连接,我不是指互联网连接而是指“网络连接”,即您的两台计算机通过 LAN 电缆连接,因此在这里您可以将 sources.list 文件指向所连接计算机的网络地址,然后将任何传入连接指向正确的服务器(基本上是镜像),但在这里您也需要第二台计算机上的互联网连接,所以......对于您的情况仍然没有办法。

相关内容