当前位置: 首页>>技术问答>>正文


如何在没有Internet的情况下安装软件或软件包(脱机)?

,

问题描述

我有一个朋友有一台没有连接到互联网的电脑。有没有办法轻松离线安装软件?

最佳解决方法

查看Keryx;它是一个离线资源库管理器。

它是如何工作的?它可以让你下载更新和新的程序(依赖)到你的闪存驱动器。

它的界面类似于突触,但它起作用(它不需要安装)。不幸的是,GUI需要wxwidgets,它不会在Ubuntu上预装(它们是cross-platform,可以从here和Ubuntu存储库here中安装)。它只能在Ubuntu系统中安装软件,但您可以在任何Linux,Windows或OS X下载更新或新软件包。

在这里你可以找到a tutorial

另一个详细的step-by-step教程位于this answer中。

Launchpad还承载downloadable files

屏幕截图:

package-management,ubuntu

次佳解决方法

快速入门

一个简单的方法就是将您下载的所有软件包复制到他的机器上(detailed instructions here)。 .deb文件存储在/var/cache/apt/archives中,然后在另一台计算机上启动Synaptic,然后选择File -> Add Package Downloaded并搜索文件夹,然后打开它,接受所有文件(或使用命令sudo dpkg -i DEB_PACKAGE_NAME从终端安装)。

注意:这假定您的软件包管理器没有设置为在安装后立即删除软件包。它还假定您运行的是相同版本的Ubuntu(10.10,12.04等)和体系结构版本(32b或64b)。


DVD存储库

如果您想要最新的错误修复程序和安全修补程序,请查看this tutorial,其中包括创建您自己的DVD存储库。

第三种解决方法

一个USB存储库

如果您有一个体面的USB存储棒 – 假设大约4-8Gb(或外部硬盘驱动器),您可以设置Ub​​untu存储库的自定义副本,并将其配置为本地存储库,位于help.ubuntu.com上的AptGet/Offline/Repository中。

要获得实际的软件包文件(.deb文件),我建议使用apt-mirror

apt-mirror软件包将帮助您创建一个自定义镜像,该镜像应该小于完整存储库的30Gb。安装软件包:

sudo apt-get install apt-mirror

并编辑其配置文件

gksudo gedit /etc/apt-mirror/mirror.list

或从Ubuntu 14.04开始

gksudo gedit /etc/apt/mirror.list

只包含您想要的储存库部分。下面是一个简单的例子,它复制了来自所有4个部分(main,restricted,universe和multiverse)的二进制.deb文件以及最新的错误修复。

# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
set base_path    /tmp/ubuntumirror
#

## Repositories to copy from - 

## use a mirror so you don't overload the main server!!!

# Lucid binaries - no source files
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse


## Clean up older .deb files no longer in the archive
clean http://archive.ubuntu.com/ubuntu

据猜测,你将需要大约15Gb的空间用于所有4个部分,没有源代码。

我已将所有.deb文件的路径设置为/tmp,请确保您有足够的空间以便硬盘驱动器不会填满(如果您的硬盘驱动器已满并且计算机冻结,则应重新启动/tmp) 。

如果您只想要主文件,请从配置文件中删除受限制的Universe和多个MULEMAEE名称。

如果您使用不同的架构(您有64位,但您的朋友有32位),请在mirror.list配置文件的开头添加以下内容:

set defaultarch i386

一旦你有了apt-mirror配置,运行apt-mirror并去做一些有趣的事情或改变生活,因为它需要几个小时或几天才能获得存储库(取决于你的连接和你使用的Ubuntu镜像)。

获得.deb文件后,将文件复制到USB memory 棒(或外部硬盘驱动器),并根据前面提到的文章设置本地存储库。

在把它送给你的朋友之前测试它的工作原理!

第四种方法

您需要先连接互联网的PC,然后才能下载所需的.deb文件。下载完所有文件后,您现在可以创建CD /DVD ROM或ISO文件,您可以使用它来安装已下载到离线PC中的软件。

从干净的安装或虚拟机开始。 sudo apt-get install aptoncd

在一台PC sudo apt-get install gbrainy上安装你想要的软件包

运行aptoncd点击创建点击刻录并设置选项,然后点击应用刻录或保存

package-management,ubuntu

package-management,ubuntu

package-management,ubuntu

package-management,ubuntu

请注意,aptoncd仅备份当前apt-cache中的内容。这就是为什么我们从一个干净的VM /新安装开始,并在一次运行中完成了所有这些。

第五种方法

我使用apt-get和”–print-uris”选项来执行此操作。我还加了”-qq”,所以它会很安静。

使用sed删除添加到某些文件名(比如3%2a)的额外字符并获取文件的url,文件名和md5sum。使用wget下载文件。使用md5sum检查文件是否正确下载。

您可以使用它为Linux或Mac OS创建shell脚本(将命令中的”.cmd”替换为.sh,并执行“chmod a + x(filename)”以添加执行脚本的权限)或Windows命令批处理文件,以及MD5Sum文件以确保文件正确下载。

Commands

创建脚本:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

例子:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

创建md5sum文件:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

例子:

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

如果您使用该操作系统下载文件,则需要md5sum for Windows。


创建脚本以下载存储库列表:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

检查MD5总和

您可以将这些添加到脚本的末尾以检查md5sum:

Linux的:

md5sum --quiet -c md5sum.txt

Windows(使用旧的md5sum,不支持–quiet):

md5sum -c md5sum.txt

要自动添加到脚本:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

安装列表文件(更新命令)

将这些命令运行到目标计算机。

您需要使用bunzip2来提取存储库列表文件:

bunzip2 *.bz2

然后复制到列表文件夹(当前文件夹只包含列表文件):

sudo cp * /var/lib/apt/lists/

以上组合(当前文件夹可能包含其他文件):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

更快的下载

如果您想更快地下载文件,请尝试使用Axel。

axel ... -o ...替换wget -c ... -O ...

文件夹层次结构(使用Windows下载文件)

我通常创建一个这样的文件夹:

  • apt-get /

    • 斌/

      • MSYS-1.0.dll

      • msys-intl-8.dll

      • wget.exe

      • msys-iconv-2.DLL

      • md5sum.exe

      • 的libeay32.dll

      • libintl3.dll

      • libssl32.dll

      • libiconv2.dll

    • 更新/

      • update.cmd的

      • md5sum.txt

    • 安装/

      • install-foo.cmd

      • install-bar.cmd

      • upgrade.cmd

      • md5sum.txt

然后将上述行中的wget更改为..\\bin\\wget.exemd5sum..\\bin\\md5sum.exe等。

这会将* .deb文件和列表文件分隔到不同的文件夹中。

更新您的系统

  1. 启动到使用Ubuntu的计算机

  2. 创建一个更新脚本

  3. 通过互联网连接启动计算机

  4. 运行update.sh(适用于Linux或Mac OS)或update.cmd(Windows)

  5. 回到目标电脑

  6. 安装列表文件

  7. 创建升级脚本/dist-upgrade(添加md5sum命令结束)

  8. 回到有互联网连接的电脑

  9. 运行upgrade.sh/dist-upgrade.sh(Linux或Mac OS)或upgrade.cmd /dist-upgrade.cmd(Windows)

  10. 回到目标电脑

  11. 将* .deb文件复制到缓存:sudo cp *.deb /var/cache/apt/archives/

  12. 运行:sudo apt-get upgradesudo apt-get dist-upgrade

下载适用于Windows的可执行文件

Wget for Windows:http://gnuwin32.sourceforge.net/packages/wget.htm

Windows的md5sum:http://gnuwin32.sourceforge.net/packages/coreutils.htmhttp://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe

您也可以使用MinGW中的那些,这些都是我使用的。您只需要wget.exe,md5sum.exe和必要的共享库。检查章节”Folder Hierarchy”。

说明

  • 我不完全确定上述命令的所有内容是否能够正常工作,因为我现在还没有使用它们一个月。特别是更新命令,我今天没有测试它的一些部分。

  • 要轻松查看命令的结果,请在脚本末尾添加”pause”行(如果使用Windows)。

  • 如果您经常使用这些命令,我​​建议创建shell脚本来更新,升级和安装软件包。

第六种方法

离线存储库

here描述了如何创建离线存储库:您只需从archive.ubuntu.com下载适当的文件即可。或者,您可以使用apt-medium

编辑:另一种基于*.deb文件的本地存档的方法在不同的博客条目中进行了介绍(请参阅herehere)。 Sarath Chandra总结如下:

  1. 创建一个目录(至少由root)

    sudo mkdir /var/my-local-repo
    
  2. 将所有的deb文件复制到这个目录。

  3. 使目录为

    sudo bash -c 'dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz'
    

    要么

    sudo dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz
    
  4. 将本地回购添加到来源

    echo "deb file:/var/my-local-repo ./" > /tmp/my-local.list
    sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list
    sudo apt-get update
    

第七种方法

您可以使用Cube。它是一个便携式软件包管理器,可让您在另一台连接到互联网的计算机上下载软件包,并在离线状态下将其安装回原始的Linux计算机。

package-management,ubuntu

下载应用程序(在Windows上)

package-management,ubuntu

安装应用程序(在Linux上)

package-management,ubuntu

您可以在Cube的网站上下载它。

第八种方法

在突触中,您可以选择要安装的软件包,并在第一个菜单下有一个选项来生成一个脚本,您可以将脚本带到另一台机器并在其中运行。此脚本将”wget”(即”download”)您指定的所有包(及其依赖关系)包含在可以访问Internet的计算机上运行。

一旦运行,您将拥有断开连接的计算机所需的所有包文件。将它们放在CD /USB存储棒上并通过sudo dpkg -i *.deb进行安装。

第九种方法

第1步:获取文件中的下载URL:

执行以下命令,将package-names替换为必需的命令,并用空格分隔。

apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls

第2步:将该文件(apturls)复制到具有high-speed Internet访问权限的计算机上,并执行以下命令下载软件包:

wget -i path-to-apturls-file 

第3步:现在将这些下载的软件包拿到您的机器上,并使用以下命令进行安装

cd path-to-the-downloaded-packages-directory

sudo dpkg -i *.deb

完成!

第十种方法

您可以使用apt-offlineapt-offline-gui。 Pre-requistes:可连接互联网的朋友系统。 apt-offline安装在您的系统中。

离线安装通过3个简单步骤完成。

步骤1:在家中的Disconnected Debian框中生成签名文件apt-offline set /tmp/apt-offline.sig上述命令将生成apt更新其数据库所需的所有信息。

步骤2:根据之前生成的签名文件下载数据apt-offline get C:\apt-offline.sig --threads 5上述命令将按签名文件中所述下载数据。为了加速下载(可以来自多个apt仓库),在这个例子中,我们产生了5个下载线程。完成后,您可以将数据(归档文件,如果使用–bundle选项)复制回可移动介质并将​​其复制回脱机主机。

第3步:回到家用Debian机器后,将数据从可移动介质送入apt-offline:apt-offline install /media/USB/apt-offline.zip这将无缝地更新断开连接的机器上的APT数据库。

Apt-offline甚至可以在Windows系统中使用。在我看来,apt-offline是离线安装的最佳选择。

Source

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/151.html,未经允许,请勿转载。