如何不使用Synaptic或Keryx脱机更新Ubuntu?


12

我在家中使用Ubuntu 12.04,并具有良好的互联网连接,并且系统运行正常。

我的一位朋友的办公室很小,他正在考虑从Windows切换到Ubuntu 11.10或更高版本。问题是他没有Internet连接。

他问我,没有互联网,是否有可能安装所有更新。我进行了很多搜索,发现这个问题说使用KeryxSynaptic Manager可以做到。

但是我使用的是11.04,并且没有Synaptic管理器,因此我可以生成和下载脚本。以其他方式尝试安装keryx(在任何必须获取更新或具有Internet连接的新安装系统上在此处输入图片说明

它向我显示我没有python的错误,但是我有那个

在此处输入图片说明

安装这些应用程序不符合依赖性。这里的重点是

  • 如何在没有Internet的情况下全新安装Ubuntu
  • 我如何安装 ubuntu-restricted-extras

回答的人对我没有帮助..
twister_void 2012年

依赖性是蟒蛇<2.7,你可能是有蟒蛇3
马赫什

杜德,让我知道您是否尝试过我的答案。如果是,结果如何
Tachyons 2012年

您应该能够使用Keryx的便携式版本,我只是在脱机10.04.2机器上做了同样的事情,并且工作正常。您是否尝试过在USB密钥上使用Keryx的便携式版本?
约翰·里昂

Answers:


4

据我所知,您无法使用Ubuntu Natty(11.04)下载Oneiric(11.10)系统的更新。您必须具有正常工作的Ubuntu 11.10系统。

关于我们正在遵循的过程的草图:

  1. 首先,我们将在OP的Natty(11.04)系统中安装虚拟机。
  2. 我们将在该虚拟机中安装Ubuntu 11.10
  3. 我们将虚拟机设置为在主机OS(11.04)和来宾OS(11.10)之间具有一个公共共享文件夹。
  4. 我们将生成升级该系统所需的软件包的下载脚本(来宾操作系统,即Ubuntu 11.10)。
  5. 我们将使用步骤3中设置的共享文件夹将下载脚本传输到主机操作系统。
  6. 在主机操作系统中,我们将借助在步骤5中获得的下载脚本来下载所有必需的软件包。
  7. 我们将在离线系统中传输所有下载的.deb文件,该系统是他朋友的PC中实际的Ubuntu 11.10系统。
  8. 我们将使用这些软件包在他朋友的PC上创建一个本地存储库。
  9. 我们将在步骤8中创建的本地存储库的帮助下升级OP的朋友Ubuntu。

1.获得有效的Oneiric系统

有一种有效的Oneiric系统的方法。

  • 通过进行实际安装

    您必须在具有Internet连接的计算机上安装Ubuntu Oneiric(11.10)。尽管从USB或CD运行的实时系统中也可以这样做,但我还是建议安装。您可以从以下链接获得有关安装Ubuntu的帮助:

  • 在VirtualBox虚拟机中安装Oneiric

    1. 要在Ubuntu 11.04 Natty Narwhal中安装VirtualBox,请在终端中运行以下命令:

      sudo apt-get update
      sudo apt-get install virtualbox
      
    2. 然后在虚拟机中安装Oneiric。

    3. 在虚拟机中设置共享文件夹。

      您需要安装VirtualBox Guest Additions才能启用共享文件夹功能。在虚拟机中运行以下命令进行安装:

      sudo apt-get install virtualbox-guest-additions
      

      如果需要帮助在VirtualBox中启用共享文件夹功能,请检查以下链接:

2.抓取更新所需的.deb文件

请注意以下几点:

  1. 建议不要在安装过程中或之后安装Synaptic之前更新虚拟系统。原因是,这些更新可能会从缓存中删除,没有这些更新,您将无法成功生成软件包下载脚本。

  2. 不要运行sudo apt-get cleansudo apt-get autoclean,因为这些命令将从缓存中删除.deb文件。

然后引导到具有Internet连接的Oneiric系统(从安装的系统或VirtualBox中),并按照以下步骤操作:

  1. 安装Synaptic软件包管理器。为此,在终端中运行以下命令:(注意,您必须将虚拟机连接到Internet,如果没有Internet访问,则该计算机无法更新软件包列表)

     sudo apt-get update 
     sudo apt-get install synaptic
    

    您可能还需要下载软件包所需的ubuntu-restricted-extras软件包。为此,请与前两个命令一起额外运行此命令

     sudo apt-get install -d ubuntu-restricted-extras
    

    该命令将不会安装软件包,只会下载所有依赖项在/var/cache/apt/archives文件夹中。

  2. 然后打开Synaptic软件包管理器。按下标记所有升级按钮。
    升级按钮的图像

  3. 当询问您是否要标记其他必需的选项时,请按标记按钮。
    附加标记窗口的图像

  4. 然后转到File- > Generate package download script,将脚本另存为文件。将其update-downloader.sh放在名为的文件夹中Updates。我们假设该Updates文件夹位于您的主目录中,即。然后关闭Synaptic。/home/username

  5. 现在下载.deb文件。

    1. 转到保存的Updates文件夹update-downloader.sh

    2. 当您仍在终端中并cd转到先前创建的Updates文件夹时,请运行以下命令:

      cp /var/cache/apt/archives/*.deb .
      

      这将复制用于安装Synaptic软件包管理器的下载的.deb文件以及为该软件包下载的文件ubuntu-restricted-extras

    3. 然后运行此命令sh ./update-downloader.sh以将更新所需的所有.deb文件下载到当前文件夹(即该Updates文件夹中)。

      要么

      或者,您可以通过VirtualBox的共享文件夹功能Updates/var/cache/apt/archives带有刚从其中复制的几个.deb文件(带有update-downloader.sh脚本)的文件夹传输到主机OS。

      然后在主机Ubuntu系统中,打开终端并通过使用共享文件夹功能转到刚从客户机OS复制的Updates文件夹来运行以下命令,该update-downloader.sh文件位于其中:

      sh ./update-downloader.sh
      
    4. 如果您在虚拟机中下载了.deb文件,则在此步骤中,使用Virtual Box的共享文件夹功能将Updates文件夹与这些文件一起传输。(仅当您在虚拟机中下载文件时才需要执行此步骤)

    5. 在主机PC(即Natty系统)中包含所有.deb文件的Updates文件夹之后,将USB文件中的所有文件复制到该文件夹​​。您可能还想用这些软件包刻录DVD,尽管我不建议这样做。

    6. Updates使用USB驱动器(或CD / DVD,如果已刻录)将文件夹传输到朋友的PC。

3.使用.deb文件创建本地存储库

将整个文件夹复制Updates到没有Internet的计算机。将该文件夹放在目录中。假设您已将Updates文件夹放在主目录中。在名称为的主文件夹中创建一个新目录offline,并将该Updates文件夹移入该offline文件夹。现在,目录结构如下所示

   +家 
     +-用户名
       +-离线
         +-更新(包含.deb文件)
 

  1. 现在打开终端并转到offline文件夹。进入offline文件夹后,运行以下命令以生成必要的包索引文件:

    apt-ftparchive packages . > Packages
    

    它将创建一个名为name的文件Packages

  2. 现在/etc/apt/sources.list以root用户权限打开文件。在终端中执行此操作

    gksu gedit /etc/apt/sources.list
    
  3. 然后Enter在光标位于文件开头的同时按一会儿。这将在顶部创建一个新的空白行。将此行写为文件的第一行

    deb file:/home/username/offline /

    然后使用Ctrl+ 保存文件S并退出文本编辑器gedit。

    切记要为脱机文件夹使用确切的文件夹/路径名,并用username用户的登录名代替。

    另外,如果确定您的朋友不能使用其他存储库源,则可以通过#/etc/apt/sources.list文件中的每一行之前放置一个标记来禁用所有其他存储库。(实际上不是必需的,但建议这样做)

    请注意,通常需要将本地存储库放在文件顶部,以使其比其他存储库源具有更高的优先级。(但是在这种特殊情况下,您可能可以不这样做而逃脱,因为您的朋友甚至无法连接到Internet来访问任何其他已配置的存储库。)

4.在不访问Internet的情况下进行更新!

  1. sudo apt-get update在终端中运行,以使程序包管理器识别您的本地更新目录。

  2. 然后执行以下命令升级离线系统:

     sudo apt-get upgrade --allow-unauthenticated
    

做完了!您已经升级了无法访问Internet的系统。


一些注意事项:

1.不想每次都写allow-unauthenticated选项吗?

如果您想使用此本地存储库来不时安装软件包,但总是对使用该allow-unauthenticated选项感到无聊,请执行此操作。

使用gedit 创建一个名为99mysettingsin 的文件/etc/apt/apt.conf.d,并将该行添加到该文件中并保存。

    APT::Get::AllowUnauthenticated "true";

要使用root用户权限在该目录中打开名为99mysettins的文件,请在终端中使用此命令

gksu gedit /etc/apt/apt.conf.d/99mysettings

2.注意关于allow-unauthenticated选项:

您可能想知道为什么我提供了该--allow-unauthenticated选项。这是因为您的本地更新存储库对系统不可靠。但这不会造成危害,因为您是从正版的正式Ubuntu存储库中下载这些软件包的。

3.我想拥有一个受信任的存储库:

在Ubuntu论坛中查看有关创建受信任的本地存储库的精彩且史诗般的帖子。如果创建受信任的存储库,则无需再提供--allow-unauthenticated选项。

建议:我建议您不要使用PPA存储库,除非您真的信任它们。尤其不要使用实验性的存储库,因为它们可能会在系统中引入依赖项问题,Unix geek通常将其称为依赖项hell。当您没有Internet连接时,这可能很难修复。


创建文件的位置update-script.sh以及运行此脚本的原因。
twister_void 2012年

@Gaurav_Java对不起。这个名字是update-downloader.sh。一个简单的错误
安瓦尔

Anwar无法正常工作,无法升级,请参见以下链接paste.ubuntu.com/1109550
twister_void 2012年

我认为,您正在从虚拟机运行升级。仔细阅读答案,我希望您从虚拟机下载更新,然后使用这些更新在真实计算机中创建存储库,然后使用升级
Anwar 2012年

或者你也可以想讨论这个这个聊天室
安瓦尔

3

您无需安装即可使用Keryx。我经常使用keryx 0.92.4.1而不是版本1。

我选择旧版本的原因是,如果我的记忆很好,那么v0.92x将允许您安装其他软件包,而v1仅允许您更新。无论如何,我从来没有设法为它安装(自动)任何软件包,因此以下内容也可能适用于版本1。

这是我的用法:

  1. 将keryx提取到home不具有Internet的计算机中的目录中(我们称其为不带Internet的计算机)。
  2. 跑:

    python keryx/source/keryx.py
    
  3. 创建一个新项目。默认情况下,计算机的名称是项目的名称。您可以在单击“新建项目”之前进行更改。在此示例中,我将其称为“ chompituga”。

  4. 它将要求您“下载最新的软件包列表”。您没有互联网,因此请单击“否”。

  5. 片刻之后,您将获得所有软件包的列表,并适当标记已安装的软件包。您可以立即关闭程序。

  6. 现在将文件夹复制keryx/projects/chompituga到USB。它包含以下内容:

    chompituga.keryx
    debian.conf
    installcache.sh
    lists/
    packages/
    sources/
    
  7. 现在,在可访问Internet的计算机中(我们称其为w / internet计算机):将keryx提取到home目录中。

  8. 将项目文件夹(在此示例中为chompituga)及其所有内容从USB keryx/projects/复制到带有Internet计算机上的文件夹中。

  9. 运行keryx:

    python keryx/source/keryx.py
    
  10. 这次,打开在本示例中称为“ chompituga”的项目(见图)。

    keryx惠康窗口

  11. 它将要求下载最新的软件包列表,这次单击“是”。一段时间后,它将指示软件包列表已更新。您可以在主窗口中看到软件包列表,具有较新版本的软件包将有不同的标记。

  12. 现在,可以使用菜单项目|获取更新,按钮“获取更新”或组合Ctrl+ 下载更新的软件包U

  13. 也可以通过选择所需的软件包,然后选择菜单Project | Download package来安装新软件包(应注意依赖项)。

  14. 软件包将下载到该keryx/packages/chompituga/packages/文件夹。您将该文件夹的内容带回没有互联网计算机

  15. 回到没有互联网计算机,将下载的软件包复制到某个位置,然后在该文件夹中执行以下操作:

    sudo dpkg -i *.deb
    
  16. 确保单独安装内核更新(“ linux-header”,“ linux-image”或其他“ linux-something”软件包)-可能在其他更新之后。

  17. 有时,似乎有必要使用option安装--force-depends。我这样做是为了以防万一,当我看到很多要更新的软件包时。

    sudo dpkg -i --force-depends *.deb
    
  18. 安装完更新后,再次运行keryx(步骤2);打开项目(步骤10),然后从菜单项目|更新状态,更新已安装软件包的列表。这将需要两次您的用户密码。确保仅在没有互联网计算机上执行此操作

  19. 现在,您要做的就是每次要在不使用Internet的情况下更新计算机时重复步骤6至18 。

很抱歉,这个答案很长。我可以向您保证,该过程非常简单明了。

注意:计算机是否具有不同的Ubuntu版本/版本都没有关系。除了* buntu之外,我还没有在发行版中测试过keryx。


对不起,英语不好。
carnendil

1
您的英语很好,但是当前版本的Keryx看起来完全不同,并且似乎已经完全删除了许多此功能!我仍然设法松散地遵循了这些说明-我让Keryx下载了适当的Deb,并且能够通过安装它们dpkg,因此请多加赞赏。
约翰·里昂

编辑:谢谢@jozzas。确实,它能够安装更多软件包,而不仅仅是更新,这促使我选择了旧版本。尽管如此,我还是必须学会像这样半自动地做到这一点。
carnendil

1

还有另一种方法可以实现:

第一次升级:

  1. 首先在计算机上启动旧的Ubuntu版本(11.04),该计算机已使用Live CD或USB连接到Internet。

  2. 然后打开终端并运行sudo apt-get update以更新在线可用软件包列表。(请注意,此命令不会更新系统,只会更新软件包列表)。

  3. 然后在终端中运行以下命令以生成升级所需的软件包文件的URL列表。

     sudo apt-get upgrade --print-uris -y | grep -o "http:.*deb'"  | grep -o .*.deb > list
    

    _ 如果存储库是ftp存档而不是http存档,请替换httpftp_。上面的命令将创建一个需要下载的软件包网址列表。

  4. 然后保存list文件,以便以后使用。现在启动常规的Ubuntu,连接到互联网并将list文件放在某个地方,然后运行wget以下载所有文件。我建议您创建一个文件夹并将文件放置在此处,然后转到终端中的指定文件夹并使用以下命令下载所有文件。

    wget -c -i list
    
  5. 将整个文件夹复制到您朋友的计算机中,登录到Ubuntu,打开一个终端,然后使用cduse sudo dpkg -i *.deb转到该文件夹以安装所有更新。

以后的升级:

如果需要再次升级朋友的Ubuntu,请status/var/lib/dpkg/PC 的文件夹中复制文件,然后再次启动Ubuntu 11.04。然后遵循以下过程:

  1. 打开终端并输入gksu nautilus

  2. 复制status您复制的文件并将其粘贴到/var/lib/dpkg文件夹中以替换原始文件。

  3. 然后,从“ 首次升级”部分按照步骤25

注意:请勿重复使用较早的Live Ubuntu会话。在Ubuntu中使用“启动磁盘创建器”来创建Live USB,并在底部选择“关闭丢弃”或“使用Live CD”。


0

您只需要安装apt-offline或连接apt-offline-gui到没有互联网的机器。

Description-en: offline apt package manager
 apt-offline is an Offline APT Package Manager
 .
 apt-offline can fully update and upgrade an APT based distribution without
 connecting to the network, all of it transparent to apt
 .
 apt-offline can be used to generate a signature on a machine (with no network).
 This signature contains all download information required for the apt database
 system. This signature file can be used on another machine connected to the
 internet (which need not be a Debian box and can even be running windows) to
 download the updates.
 The downloaded data will contain all updates in a format understood by apt and
 this data can be used by apt-offline to update the non-networked machine.
 .
 apt-offline can also fetch bug reports and make them available offline

这种方法的问题是,apt-offline将所有.deb文件复制到文件/var/cache/apt/archives夹中,并且如果您下载的.deb文件很大,并且文件系统中的可用空间很小,这将是一个问题
Anwar 2012年

按照我在答案中添加的链接,您可以配置apt-offline以下载到您选择的目录
Hashken

0

无论您使用什么选项来实现想要实现的目标,都将需要使用Internet连接来帮助您的朋友。

另一个可用的方法是为他们制作一个自定义的实时USB / CD,其中包含所有已添加和包含的更新。使用此功能最简单的工具是ubuntu builder。

您将需要通过Internet访问将其安装到计算机上,因此您可以为没有Internet访问权限的朋友自定义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。

步骤1首先导入您先前下载的ubuntu映像,方法是单击,Select iso然后import from local

导入您先前下载的图像

导入后,edit sources.list在ubuntu构建器中单击

应该会出现一个编辑器,现在向下滑动并#在此示例中从以下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安装“程序包名称”

例如,如果您的朋友想要安装gimp

apt-get install gimp

请记住,以这种方式安装和更新的所有内容都将安装到live / cd iso中,而不是您的计算机中

重复并安装您朋友所需的所有内容,包括其他软件和您想要安装的受限附件

apt-get install ubuntu-restricted-extras

我认为先前提出的建议是好的建议,因此,请在您的livecd上安装apt-offline和apt-offline-gui,以便您的朋友可以在以后的帮助下通过Internett连接再次更新系统。

apt-get install apt-offline apt-offline-gui

添加exit完所有必需的内容后,在终端中输入,然后按enter

现在在ubuntu builder中填写几个字段EG给您的livecd一个名称

现在,build在ubuntu builder中单击按钮。这将需要一些时间,因此请务必离开直到完成。

构建完成后,关闭ubuntu构建器

现在要查找刚刚制作的iso的位置,只需单击files /文件系统/ home / ubuntu-builder /,您应该在该文件夹中看到刚制作的名称/图像

更新的livecd映像现在可以按常规方式刻录。将其安装到朋友计算机上后,还将安装所有更新和添加的其他内容。


0
  1. 在系统中插入ubuntu 11.10的live-cd / usb。
  2. ctrl+ alt+ delete打开终端,然后运行

    sudo apt-get update

    sudo apt-get install synaptic

  3. 打开/var/cache/apt/archives内容并将其保存在安全目录中

  4. 使用更新管理器更新您的系统(实时cd / usb)

  5. 如果需要,请安装一些软件:-),

    即,如果您想要ubuntu-restricted-extras安装ubuntu-restricted-extras

    sudo apt-get install ubuntu-restricted-extras在终端中运行

  6. 安装 aptoncd安装aptoncd

  7. 启动aptoncd,然后按创建按钮,它将创建一个iso文件

  8. 使用生成的iso和为step3创建的目录转到您的朋友的家庭/办公室

  9. 将目录和iso文件复制到桌面,打开终端并移动到该目录

    cd /path/to/directory

  10. 运行sudo dpkg -i *.deb,它将安装突触

  11. 打开突触并单击Edit->add cdrom ,它将显示一个对话框,请不要单击它

  12. 返回终端并运行

    sudo mkdir /media/cdrom

    sudo mount -o loop /path/to/iso /media/cdrom

  13. 现在,在步骤11中从突触生成的对话框中按确定按钮,

  14. 分别按标记所有升级,应用按钮

  15. 您的朋友系统已更新,现在可以喝杯咖啡;-)

将来更新

  1. 在系统中插入实时cd / usb(在离线模式下),如果您使用永久性usb则不需要此步骤

  2. 取得为先前更新创建的iso和目录,

  3. 将目录和iso文件复制到桌面,打开终端并移动到该目录

    cd /path/to/directory

  4. 运行sudo dpkg -i *.deb,它将安装突触

  5. 打开突触并单击Edit->add cdrom ,它将显示一个对话框,请不要单击它

  6. 返回终端并运行

    sudo mkdir /media/cdrom

    sudo mount -o loop /path/to/iso /media/cdrom

  7. 现在,在步骤11中从突触生成的对话框中按确定按钮,

  8. 分别按标记所有升级,应用按钮

  9. 现在,使用更新管理器升级您的系统(实时CD / USB),它将安装更新实时CD / USB到以前的更新状态,

  10. 从突触包管理器更新系统

  11. 安装 aptoncd安装aptoncd

  12. 启动aptoncd,然后按创建按钮,它将创建一个iso文件

  13. 使用生成的iso转到朋友的家/办公室

  14. 打开突触并单击Edit->add cdrom ,它将显示一个对话框,请不要单击它

  15. 返回终端并运行

    sudo mkdir /media/cdrom

    sudo mount -o loop /path/to/iso /media/cdrom

  16. 现在,在步骤11中从突触生成的对话框中按确定按钮,

  17. 分别按标记所有升级,应用按钮

  18. 您朋友的系统再次更新

    如果我的帖子不明确,请随时评论/编辑:-)


让我知道为什么投票失败,这些步骤对我
有用

-2

要在终端中安装ubuntu-restricted-extras类型
sudo apt-get install ubuntu-restricted-extras

要在终端中安装Python类型,
sudo apt-get install python
这应该可以解决安装keryx时遇到的问题

在这里,您可以找到有关keryx教程,它通过简单的步骤说明了如何完成这项工作。


Keyx的链接2教程已损坏。以及如何在没有互联网的情况下将这些软件包安装在计算机上。我清楚地提到了这一点
twister_void 2012年

Srry为无效链接一个新的链接固定它
阿苏

1
本机具有无法上网,所以sudo apt-get install ubuntu-restricted-extrassudo apt-get install python不会去工作,除非正在安装的软件可从一些地方的包源。
伊利亚·卡根

@EliahKagan我从问题中了解到,OP的计算机具有互联网,但他的朋友没有。
阿舒

@Ashu你理解正确。一个系统可以连接互联网,但全新安装的系统却没有互联网
twister_void 2012年
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.