我有个朋友的电脑没有连接互联网。有没有什么方法可以轻松离线安装软件?
答案1
答案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.exe
、md5sum
改为..\\bin\\md5sum.exe
等等。
这会将 *.deb 文件和列表文件分成不同的文件夹。
更新你的系统
- 启动到使用 Ubuntu 的目标计算机
- 创建更新脚本
- 启动到具有互联网连接的计算机
- 运行
update.sh
(适用于 Linux 或 Mac OS)或update.cmd
(适用于 Windows) - 返回目标计算机
- 安装列表文件
- 创建脚本
upgrade/dist-upgrade
(添加md5sum
命令以结束) - 返回具有互联网连接的计算机
- 运行
upgrade.sh/dist-upgrade.sh
(Linux 或 Mac OS) 或upgrade.cmd/dist-upgrade.cmd
(Windows) - 返回目标计算机
- 将文件复制
*.deb
到缓存:sudo cp *.deb /var/cache/apt/archives/
- 运行:
sudo apt-get upgrade
或sudo 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.exe
和md5sum.exe
必要的共享库。请查看“文件夹层次结构”部分。
笔记
- 我不确定上述所有命令是否都能正常工作,因为我已经有一个月没有使用它们了。尤其是这个
update
命令,我今天还没有测试它的某些部分。 - 为了轻松查看命令的结果,如果使用 Windows,请在脚本末尾添加“暂停”行。
- 如果您经常使用这些命令,我建议创建 shell 脚本来更新、升级和安装包。