我在家里使用 Ubuntu 12.04,网络连接良好,系统运行良好。
我的一个朋友有一个小办公室,他正在考虑从 Windows 切换到 Ubuntu 11.10 或更高版本。问题是他没有互联网连接。
他问我有没有可能在没有互联网的情况下安装所有更新。我进行了很多搜索,我发现这个问题也就是说使用凯瑞克斯或者突触管理器将会这样做。
但是我使用的是 11.04,其中没有 Synaptic 管理器,因此我生成并下载了脚本。当我尝试安装 keryx 时(在任何需要获取更新的新安装系统或具有 Internet 连接的系统上)
它向我显示错误,我没有 python。但我有
安装这些应用程序不符合依赖关系。这里的关键点是
- 如何在没有互联网的情况下在全新安装的 Ubuntu 上安装更新。
- 我如何安装
ubuntu-restricted-extras
答案1
据我所知,您无法使用 Ubuntu Natty (11.04) 下载 Oneiric (11.10) 系统的更新。您必须拥有一个正常运行的 Ubuntu 11.10 系统。
关于我们正在遵循的流程的草图:
- 首先,我们将在OP的Natty(11.04)系统中安装一个虚拟机。
- 我们将在该虚拟机中安装 Ubuntu 11.10
- 我们将设置虚拟机,在主机操作系统(11.04)和客户操作系统(11.10)之间拥有一个通用的共享文件夹
- 我们将生成升级该系统(客户操作系统,即 Ubuntu 11.10)所需的软件包的下载脚本。
- 我们将使用步骤 3 中设置的共享文件夹将下载脚本传输到主机操作系统。
- 在主机操作系统中,我们将借助步骤 5 中获得的下载脚本下载所有所需的软件包。
- 我们将把所有下载的.deb 文件转移到离线系统中,即他朋友电脑上的实际 Ubuntu 11.10 系统。
- 我们将使用这些包在他朋友的电脑上创建一个本地存储库。
- 我们将在步骤 8 中创建的本地存储库的帮助下升级 OP 朋友的 Ubuntu。
1. 获取可运行的 Oneiric 系统
有两种方法可以实现梦想系统。
通过实际安装
您必须在具有 Internet 连接的计算机上安装 Ubuntu Oneiric (11.10)。虽然也可以从 USB 或 CD 运行的实时系统安装,但我建议安装。您可以从以下链接获取有关安装 Ubuntu 的帮助:
在 VirtualBox 虚拟机中安装 Oneiric
要在 Ubuntu 11.04 Natty Narwhal 中安装 VirtualBox,请在终端中运行以下命令:
sudo apt-get update sudo apt-get install virtualbox
然后在虚拟机中安装Oneiric。
在虚拟机中设置共享文件夹。
您需要安装 VirtualBox Guest Additions 才能启用共享文件夹功能。运行此命令在虚拟机中安装:
sudo apt-get install virtualbox-guest-additions
如果您需要帮助启用共享文件夹VirtualBox 中的功能,请查看此链接:
2. 获取更新所需的 .deb 文件
请注意以下几点:
建议不要在安装期间或安装 Synaptic 之前更新虚拟系统。因为这些更新可能会从缓存中删除,如果没有这些更新,您将无法成功生成包下载脚本。
不要运行
sudo apt-get clean
或sudo apt-get autoclean
,因为这些命令会从缓存中删除 .deb 文件。
然后启动具有 Internet 连接的 Oneiric 系统(从已安装的系统或 VirtualBox 中)并按照以下步骤操作:
安装Synaptic 软件包管理器. 在终端中运行以下命令:(笔记,您必须将虚拟机连接到互联网,没有互联网访问机器无法更新包列表)
sudo apt-get update sudo apt-get install synaptic
您可能还想下载该
ubuntu-restricted-extras
软件包所需的软件包。为此,请与前两个命令一起运行此命令sudo apt-get install -d ubuntu-restricted-extras
此命令不会安装软件包,它仅下载
/var/cache/apt/archives
文件夹中的所有依赖项。然后打开 Synaptic Package Manager。按下按钮标记所有升级。
当被问及是否想标记其他所需更改,按下标记按钮。
然后去文件-->生成包下载脚本,将脚本另存为文件。将其放在
update-downloader.sh
名为的文件夹中Updates
。我们假设该Updates
文件夹位于您的主目录中,即。然后关闭 Synaptic。/home/username
现在下载.deb 文件。
前往更新文件夹,您保存的位置
update-downloader.sh
。当你还在终端中并且
cd
已经更新文件夹,运行以下命令:cp /var/cache/apt/archives/*.deb .
这将复制用于安装 Synaptic 包管理器的下载的 .deb 文件以及为该
ubuntu-restricted-extras
包下载的文件。然后运行此命令
sh ./update-downloader.sh
将更新所需的所有.deb 文件下载到当前文件夹(即Updates
文件夹中)。或者
或者,您可以通过 VirtualBox 的共享文件夹功能
Updates
将包含刚刚复制的几个 .deb 文件及其脚本的文件夹/var/cache/apt/archives
传输update-downloader.sh
到主机操作系统。然后在主机 Ubuntu 系统中,打开终端并运行以下命令:更新您刚刚使用共享文件夹功能从客户操作系统复制的文件夹,
update-downloader.sh
文件驻留于其中:sh ./update-downloader.sh
如果你在虚拟机中下载了 .deb 文件,则在此步骤中,将更新使用 Virtual Box 的共享文件夹功能将包含这些文件的文件夹。(仅当您在虚拟机中下载文件时才需要此步骤)
获得更新在您的主机 PC(即 Natty 系统中)中,将包含所有 .deb 文件的文件夹复制到 USB 闪存驱动器上。您可能还想刻录包含这些软件包的 DVD,但我不建议这样做。
Updates
使用您的 USB 驱动器(或 CD/DVD,如果您刻录了它们)将文件夹传输到您朋友的电脑上。
3. 使用 .deb 文件创建本地存储库
复制名为Updates
到没有互联网的计算机。将该文件夹放在一个目录中。假设您已将更新主目录中的文件夹。在您的主文件夹中创建一个名为的新目录offline
,并将Updates
文件夹移入文件夹中offline
。现在,目录结构如下所示
+ 首页 +- 用户名 +- 离线 +- 更新(包含 .deb 文件)
现在打开终端并转到该
offline
文件夹。进入offline
文件夹后,运行此命令以生成必要的包索引文件:apt-ftparchive packages . > Packages
它将创建一个名为的文件
Packages
。现在
/etc/apt/sources.list
使用 root 权限打开文件。在终端中执行以下操作gksu gedit /etc/apt/sources.list
Enter然后,当光标位于文件开头时按下。这将在顶部创建一个新的空白行。将此行写入文件的第一行
deb file:/home/username/offline /
Ctrl然后使用+保存文件S并退出文本编辑器 gedit。
记住使用脱机文件夹的准确文件夹/路径名称,并替换
username
使用用户的登录名。此外,如果您确定您的朋友不能使用其他存储库源,您可能需要通过
#
在文件的每一行之前放置一个标记来禁用所有其他存储库/etc/apt/sources.list
。(这实际上不是必需的,但建议这样做)。请注意,通常需要将本地存储库放在文件顶部,以使其优先于其他存储库源。(但在这种特殊情况下,您可能可以不这样做,因为您的朋友甚至无法连接到互联网来访问任何其他配置的存储库。)
4.无需访问互联网即可进行更新!
sudo apt-get update
在终端中运行,让包管理器识别您的本地更新目录。然后执行以下命令来升级离线系统:
sudo apt-get upgrade --allow-unauthenticated
完成!您已在无需互联网访问的情况下升级了系统。
一些注意事项:
1. 不想每次都写 allow-unauthenticated 选项?
如果您想不时使用此本地存储库来安装软件包,但又觉得总是使用该allow-unauthenticated
选项很无聊,请这样做。
99mysettings
使用 gedit 创建一个名为的文件/etc/apt/apt.conf.d
并在该文件中添加该行并保存。
APT::Get::AllowUnauthenticated "true";
要使用 root 权限打开该目录中名为 99mysettins 的文件,请在终端中使用此命令
gksu gedit /etc/apt/apt.conf.d/99mysettings
2. 关于允许未经身份验证选项的注意事项:
您可能想知道我为什么提供此--allow-unauthenticated
选项。这是因为您的本地更新存储库对系统来说不是真实的。但这不会造成任何损害,因为您是从真实的官方 Ubuntu 存储库下载这些软件包的。
3. 我想拥有一个受信任的存储库:
查看 Ubuntu 论坛上关于创建受信任的本地存储库。如果您创建了受信任的存储库,则无需--allow-unauthenticated
再提供选项。
推荐:我建议你不要使用 PPA 存储库,除非你真的相信它们。特别是,不要使用实验性存储库,因为它们可能会在系统中引入依赖性问题,这通常被 Unix 极客称为依赖地狱。当您没有互联网连接时,这个问题可能更难解决。
答案2
您无需安装即可使用 Keryx。我经常使用 keryx 0.92.4.1 而不是版本 1。
我之所以选择旧版本,是因为如果我没记错的话,v0.92x 会允许你安装额外的软件包,而 v1 只允许你更新。无论如何,我从来没有让它(自动)为我安装任何软件包,所以下面的内容可能也适用于版本 1。
以下是我的使用方法:
- 将 keryx 提取到您的
home
没有互联网的计算机目录中(我们称之为没有互联网的计算机)。 跑步:
python keryx/source/keryx.py
创建新项目。默认情况下,计算机的名称就是项目的名称。您可以在单击“新建项目”之前更改它。在此示例中,我将其命名为“chompituga”。
它会要求你“下载最新的软件包列表”。你没有网络,所以点击否。
片刻之后,您将获得所有软件包的列表,其中已安装的软件包已正确标记。您现在可以关闭该程序了。
现在将文件夹复制
keryx/projects/chompituga
到 USB。它包含以下内容:chompituga.keryx debian.conf installcache.sh lists/ packages/ sources/
现在在可以上网的电脑上(我们称之为可上网的电脑): 将 keryx 解压到
home
目录。将项目文件夹(本例中为
chompituga
)及其所有内容从 USB 复制keryx/projects/
到可上网的电脑。运行 keryx:
python keryx/source/keryx.py
这次,打开该项目在此示例中称为“chompituga”(见图)。
它会要求下载最新的软件包列表,这次点击是。一会儿之后,它会显示软件包列表已更新。您可以在主窗口中看到软件包列表,具有较新版本的软件包将以不同的标记显示。
现在可以使用菜单“项目”|“获取更新”、“获取更新”按钮或组合键Ctrl+下载更新的包U。
也可以通过选择所需的包,然后选择菜单项目|下载包来安装新的包(它应该考虑依赖关系)。
软件包将下载到
keryx/packages/chompituga/packages/
文件夹中。您可以将该文件夹的内容带回没有互联网的计算机。回到没有互联网的计算机,将下载的包复制到某处,然后在该文件夹中执行:
sudo dpkg -i *.deb
确保单独安装内核更新(“linux-header”、“linux-image”或其他“linux-something”包)——可能在其他更新之后。
有时,似乎有必要使用选项进行安装
--force-depends
。当我看到很多需要更新的软件包时,我会这样做,以防万一。sudo dpkg -i --force-depends *.deb
完成更新安装后,再次运行 keryx(步骤 2);打开项目(步骤 10),然后从菜单 Project|Update Status 中更新已安装软件包列表。这将需要您输入两次用户密码。确保只在没有互联网的计算机。
现在,每次想要更新时,只需重复第 6 步至第 18 步即可没有互联网的计算机。
抱歉,这个答案太长了。我可以向你保证,这个过程相当简单明了。
笔记:电脑是否安装有不同版本/风格的 Ubuntu 并不重要。我还没有使用 *buntu 以外的发行版测试过 keryx。
答案3
还有另一种方法可以实现这一点:
第一次升级:
首先在具有互联网连接的计算机上使用 Live CD 或 USB 启动旧版本 Ubuntu(11.04)。
然后打开终端并运行
sudo apt-get update
以更新在线可用软件包列表。(请注意,此命令不会更新系统,它仅更新软件包列表)。然后在终端中运行以下命令来生成升级所需的包文件的 URL 列表。
sudo apt-get upgrade --print-uris -y | grep -o "http:.*deb'" | grep -o .*.deb > list
_如果存储库是FTP存档,而不是http存档,替换
http
为ftp
_。上述命令将创建需要下载的包的 url 列表。然后保存
list
文件,以便以后使用。现在启动常规 Ubuntu,连接到互联网并将文件放在list
某处,然后运行它以wget
下载所有文件。我建议您创建一个文件夹并将文件放在那里,然后转到终端中的指定文件夹并使用以下命令下载所有内容。wget -c -i list
将整个文件夹复制到朋友的计算机上,登录 Ubuntu,打开终端并转到该文件夹使用它
cd
来sudo dpkg -i *.deb
安装所有更新。
后期升级:
如果您需要再次升级朋友的 Ubuntu,请status
从/var/lib/dpkg/
PC 中的文件夹复制文件,然后再次启动 Ubuntu 11.04。然后按照以下步骤操作:
打开终端并输入
gksu nautilus
。status
将您复制的文件复制并粘贴到/var/lib/dpkg
文件夹中以替换原始文件。然后按照步骤2到5来自第一次升级部分
注意:不要重复使用早期的 Live Ubuntu 会话。使用 Ubuntu 中的“startup-disk-creator”创建 Live USB 并选择关机时丢弃底部的选项或使用 Live CD。
答案4
无论您使用哪种选项来实现您想要的目标,您都需要使用互联网连接来帮助您的朋友。
另一个可用的选项是为他们制作定制的实时 usb/cd,并为他们添加和包含所有更新。实现此目的的最简单的工具是 ubuntu builder。
您需要将其安装到具有互联网访问的机器上,以便您可以为没有互联网访问的朋友定制 livecd/usb/install。
首先,你需要在计算机上安装 ubuntu builder。为此,你需要打开终端并添加 ubuntu builder ppa
sudo add-apt-repository ppa:f-muriana/ubuntu-builder
sudo apt-get update
sudo apt-get install ubuntu-builder
接下来你需要下载当前的 livecd 镜像 http://cdimage.ubuntu.com/dvd/current/
现在和你的朋友沟通,列出你朋友机器上需要的所有软件。完成列表后,在你的计算机上启动 ubuntu builder。
Select iso
步骤 1首先点击导入之前下载的 ubuntu 镜像import from local
导入之前下载的图片
导入后,单击edit sources.list
ubuntu builder
应该会出现一个编辑器,现在向下滚动并#
从以下 4 行中删除,在这个例子中,它使用的是 ubuntu 12.04 livecd
deb http://archive.ubuntu.com/ubuntu precise main restricted
deb-src http://archive.ubuntu.com/ubuntu precise main restricted
deb http://archive.ubuntu.com/ubuntu precise-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu precise-updates main restricted
sources.list
如果主存储库中尚未提供附加软件所需的任何其他源,则还请将其添加至主存储库。
完成后单击save
然后单击close
第2步
现在从 ubuntu builder 单击console
按钮
终端将打开,更新可能需要一些时间
首先让我们更新 livecd 系统
在打开的终端中
apt-get upgrade
等到所有升级完成
现在仍然在终端中安装之前与朋友一起制作的软件列表中所需的任何其他软件
apt-get install "软件包名称"
例如如果你的朋友想要安装 gimp
apt-get install gimp
请记住,通过这种方式安装和更新的所有内容都将安装到 live/cd iso 而不是您的计算机
重复并安装你朋友所需的一切,包括附加软件和你想要安装的限制附加软件
apt-get install ubuntu-restricted-extras
我认为之前提出的建议很好,所以让我们将 apt-offline 和 apt-offline-gui 安装到您的 livecd 中,以便您的朋友可以在以后通过互联网连接在您的帮助下再次更新系统。
apt-get install apt-offline apt-offline-gui
添加完所有必需内容后,exit
在终端中输入并按enter
现在在 ubuntu builder 中填写几个字段,例如给你的 livecd 起个名字
现在单击build
ubuntu builder 中的按钮这将需要一些时间,因此请务必等待直至完成。
构建完成后关闭 ubuntu builder
现在要找到您刚刚制作的 iso 的位置,只需单击文件/文件系统/home/ubuntu-builder/,您应该会在该文件夹中看到您刚刚制作的名称/图像
您更新的 livecd 映像现在可以按常规方式刻录了。当安装到您朋友的计算机上时,您添加的所有更新和附加内容也将被安装。