我首先要解释一下情况:
我有一台连接到 wifi 的笔记本电脑和一台无法连接到互联网的台式机(调制解调器离它太远),我想在最后一台电脑上安装一些软件。(两台电脑都运行 Ubuntu 12.04,并通过以太网电缆连接)
我已经寻找过解决方案,但我发现的只是使用一些应该已经安装在“无互联网 PC”上的软件。(Keryx、APTonCD……)
我想要做的是在我的笔记本电脑中创建一个镜像,其中包含我拥有的软件包(位于 /var/cache/apt/archive 中),并且我不想从官方存储库下载所有软件包,实际上我不需要它们。
有人能告诉我是否可以这样做吗?
谢谢,
答案1
有人能告诉我是否可以这样做吗?
是的,这是可能的,而且我整个 Ubuntu 生涯都是这样做的。在一台电脑上下载并在另一台电脑上使用软件包。
AptOnCD 可以作为一个单独的包下载,并安装在没有互联网的电脑上,我假设你可以这样做。但你不需要任何外部软件。虽然我在这里写了这两种方法。
AptOnCD 方法。
下载 AptOnCD
从以下位置下载 AptOnCd这里。
根据部分二进制包,点击与您的机器架构相匹配的链接。如果您使用32位Ubuntu,则需要i386包,如果您的系统是64位,则可以下载amd64。
新的链接会给您带来一个页面,只需单击软件包版本链接即可。
然后点击新页面中的下载链接。
将下载的
.deb
文件放在您的主目录中。打开终端,当您仍在主目录中时,运行此命令来安装该包
sudo dpkg -i ./sudo dpkg -i aptoncd_0.1.98+bzr117-1.2_all.deb
。(AptOnCD 没有其他依赖项,因此可以独立安装). 文件名可能根据您选择的版本和架构而有所不同。安装完成后,按Super+A调出 Dash 应用程序镜头。在字段中输入
aptoncd
,单击图标即可启动它。
创建 ISO 文件作为存储库源使用。
当你启动AptOnCD时,软件会在默认窗口运行,该窗口只有两个按钮“创建”和“恢复”。
- 点击创造按钮。它将自动扫描您计算机
/var/cache/apt/archives
文件夹中的所有.deb
文件。扫描完成后,您将看到类似于下图的窗口。
如果有的话,您可以添加其他文件夹中的其他包,例如下载的 aptoncd 包。也可以选择单个包。
完成该过程后,单击“刻录”按钮,将出现如下所示的新窗口。
在此窗口中,键入 iso 文件的名称,它将在其中创建该 iso,并选中“创建元包”选项,如果您想要安装所有包含的软件包,则无需在 Internet 上安装单个软件包。单击申请按钮。
一段时间后,根据软件包的数量,它会询问您是否要立即刻录 iso 文件。您现在可以刻录 CD/DVD,但我选择否。检查主文件夹以查看是否已创建 iso 文件。
将 iso 文件添加为目标计算机中的源存储库。
将 iso 文件复制到目标计算机中。我假设你将其复制到你的主文件夹中,并且 iso 文件的名称是
aptoncd.iso
。打开终端,输入
sudo mount ./aptoncd.iso /media/apt
要挂载的 iso 目录/media/apt
。如果提示“目录不存在”,则只需使用此命令创建一个目录sudo mkdir /media/apt
,然后再次尝试挂载。挂载后,运行此命令将此新 cdrom 添加为存储库源。
sudo apt-cdrom add
如果您看到类似的消息Repeat this process for the rest of the CDs in your set.
,则该过程成功。
从新的 aptoncd 存储库安装
- 如果您想安装一个包,只需将 iso 安装到
/media/apt
文件夹中即可。(参见上面的部分)。 - 然后打开终端并运行
sudo apt-get install package-name
。
本地存储库方法。
有很多比使用 AptOnCD 更简单的方法。尽管我已经包含了 AptOnCD 方法,因为问题中提到了这一点。
将所有 .deb 文件复制到目标计算机
您需要将从/var/cache/apt/archives
文件夹下载的所有 .deb 文件复制到目标无互联网计算机中的合适文件夹中。我建议您复制名为 的文件夹中的所有文件,debs
该文件夹本身位于名为 的文件夹中LocalRepo
。这意味着 .deb 文件位于LocalRepo/debs
文件夹中。您可以将LocalRepo
文件夹放在任何您想要的地方。例如,我将其放在我的主目录中,即/home/anwar
。
因此,文件夹结构如下:
-/ -/家 -/安瓦尔 -/LocalRepo -/debs
该debs
文件夹包含您下载的所有 deb 文件。
生成包索引文件
打开终端并转到文件夹上方的文件夹
Debs
。在此示例中,它是/home/anwar/LocalRepo
。在
LocalRepo
文件夹中运行此命令:
apt-ftparchive packages . > Packages
它将Packages
在 LocalRepo 目录中创建一个文件。
在存储库源列表中添加本地存储库
/etc/apt/sources.list
以 root 权限打开文件
sudo gedit /etc/apt/sources.list
。在文件顶部
sources.list
,放置如下一行。deb file:/home/anwar/LocalRepo /
/home/anwar/LocalRepo
用放置文件夹的实际目录名替换LocalRepo
。保存文件并退出 gedit。
更新软件包索引以便能够从本地仓库安装
sudo apt-get update
在终端中运行,它将创建一个有关可用存储库的存储库源列表。因此,您新创建的本地存储库将被识别。
从本地存储库安装包。
- 然后运行
sudo apt-get install package-name
(package-name
用实际的包替换)来安装您想要的存储库。
笔记:您将始终收到有关您的存储库不是“经过验证”的警告。在这种情况下,您可以忽略此类警告,因为您是从“经过验证”来源的软件包(即官方 Ubuntu 软件包档案)创建的存储库。
您可以通过--allow-unauthenticated
在命令中添加开关来覆盖此警告。例如
sudo apt-get install --allow-unauthenticated package-name
创建一个受信任的存储库:
如果你想创建一个受信任的本地存储库,你应该读这个。这是一篇关于这个话题的非常简单和非常好的文章