如何在没有互联网(离线)的情况下安装软件或软件包?

如何在没有互联网(离线)的情况下安装软件或软件包?

我有个朋友的电脑没有连接互联网。有没有什么方法可以轻松离线安装软件?

答案1

查看凯瑞克斯;它是一个离线存储库管理器。

它是如何工作的?它允许您下载更新和新程序(带有依赖项)到您的闪存盘

它的界面与突触类似,但是它可以通过 U 盘运行(无需安装)。不幸的是,GUI 需要 wxwidgets,Ubuntu 上没有预装它(它们是跨平台的,可以从这里和 Ubuntu 存储库这里)。它只能在Ubuntu系统中安装软件,但你可以在任何Linux,Windows或OS X中下载更​​新或新软件包。

您可以在这里找到教程

另一个详细的分步教程位于这个答案

Launchpad 还主办可下载文件

截图:

屏幕截图

答案2

一个快速的破解方法是将您下载的所有用于安装的软件包复制到他的机器上。详细说明可在此答案中找到:

文件.deb存储在/var/cache/apt/archives,然后在另一台计算机启动突触并选择文件->添加已下载的包并搜索放置文件的文件夹并打开它,全部接受(或使用命令从终端安装sudo dpkg -i DEB_PACKAGE_NAME)。

笔记:

这假设你的包管理器没有设置为在安装后立即删除包。它还假设你正在运行相同版本的 Ubuntu(10.10、12.04 等)和架构版本(32b 或 64b)


DVD 存储库

如果您想要最新的错误修复和安全补丁,请查看本教程:

... 其中包括创建您自己的 DVD 存储库。

答案3

USB 存储库

如果你有一个大小合适的 USB 存储设备 - 假设大约 4-8GB(或外部硬盘),你可以设置 Ubuntu 存储库的自定义副本,并将其配置为本地存储库,如AptGet/离线/存储库 在 help.ubuntu.com 上。

为了获取实际的包文件(.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 个部分(主、受限、宇宙和多元宇宙)复制二进制 .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

据估计,不包括源文件,所有 4 个部分将需要大约 15Gb 的空间。

我已将所有 .deb 文件的路径设为/tmp,请确保您有足够的空间,以免硬盘空间被填满(如果您的硬盘空间已填满,并且计算机死机,/tmp则应重新启动以清除)。

如果您只想要主文件,请从配置文件中删除受限、宇宙和多元宇宙名称。

如果你使用的是不同的架构(你有 64 位,但你的朋友有 32 位),那么在开头添加以下内容镜像列表配置文件:

set defaultarch i386

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

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

在将它带给你的朋友之前,先测试一下它是否可以正常工作!

答案4

使用apt-get选项--print-uris来执行此操作并添加,-qq这样它就会安静。

用于sed删除某些文件名中添加的多余字符(例如3%2a),并获取文件的 url、文件名和 md5sum。用于wget下载文件。用于md5sum检查文件是否正确下载。

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

命令

创建脚本:

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如果您使用 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。

wget -c ... -O ...用。。。来代替axel ... -o ...

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

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

  • apt-get/
    • 垃圾桶/
      • msys-1.0.dll
      • msys-intl-8.dll
      • 执行文件
      • msys-iconv-2.dll
      • MD5校验工具
      • 库文件
      • libintl3.dll
      • 库文件
    • 更新/
      • 更新命令
      • md5sum.txt
    • 安装/
      • 安装-foo.cmd
      • 安装-bar.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. 创建脚本upgrade/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对于 Windows:http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum对于 Windows:http://gnuwin32.sourceforge.net/packages/coreutils.htm或者http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe

您也可以使用明网,这是我使用的。您只需要wget.exemd5sum.exe必要的共享库。请查看“文件夹层次结构”部分。

笔记

  • 我不确定上述所有命令是否都能正常工作,因为我已经有一个月没有使用它们了。尤其是这个update命令,我今天还没有测试它的某些部分。
  • 为了轻松查看命令的结果,如果使用 Windows,请在脚本末尾添加“暂停”行。
  • 如果您经常使用这些命令,我​​建议创建 shell 脚本来更新、升级和安装包。

相关内容