aks*_*atj 278 package-management
我有一个朋友,他有一台无法连接到 Internet 的计算机。有什么方法可以轻松离线安装软件?
Jav*_*era 133
查看Keryx;它是一个离线存储库管理器。
它是如何工作的?它允许您将更新和新程序(带有依赖项)下载到您的闪存驱动器。
它的界面类似于synaptic,但它可以从一个pendrive 运行(它不需要安装)。不幸的是,GUI需要wxWidgets的,不来在Ubuntu(从他们的跨平台和安装预装这里和Ubuntu库在这里)。它只能在 Ubuntu 系统中安装软件,但您可以在任何 Linux、Windows 或 OS X 中下载更新或新软件包。
在这里你可以找到一个教程。
另一个详细的分步教程在这个答案中。
Launchpad 还包含可下载的文件。
截图:
jr0*_*ket 62
一个快速的技巧是将你下载的所有安装包复制到他的机器上(详细说明在这里)。.deb 文件存储在 中/var/cache/apt/archives
,然后在另一台计算机中启动Synaptic并选择File -> Add Package Downloaded
并搜索放置文件的文件夹并打开它,接受所有(或使用命令从终端安装sudo dpkg -i DEB_PACKAGE_NAME
)。
注意:
这假设您的包管理器未设置为在安装后立即删除包。它还假设您正在运行相同版本的 Ubuntu (10.10、12.04 等)和架构版本(32b 或 64b)。
DVD 存储库
如果您想要最新的错误修复和安全补丁可用,请查看本教程,其中包括创建您自己的 DVD 存储库。
jr0*_*ket 45
USB存储库
如果您有一个大小合适的 USB 记忆棒 - 假设大约 4-8Gb(或外部硬盘驱动器),您可以设置 Ubuntu 存储库的自定义副本并将其配置为本地存储库,如help.ubuntu 上的AptGet/Offline/Repository 中所述.com。
要获取实际的包文件(.deb 文件),我建议使用apt-mirror
.
该apt-mirror
软件包将帮助您创建一个自定义镜像,该镜像应小于完整存储库的 30Gb。安装软件包:
sudo apt-get install apt-mirror
Run Code Online (Sandbox Code Playgroud)
并编辑其配置文件
gksudo gedit /etc/apt-mirror/mirror.list
Run Code Online (Sandbox Code Playgroud)
或自 Ubuntu 14.04
gksudo gedit /etc/apt/mirror.list
Run Code Online (Sandbox Code Playgroud)
仅包含您想要的存储库部分。这是一个简单的示例,它从所有 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
Run Code Online (Sandbox Code Playgroud)
估计在没有源的情况下,所有 4 个部分都需要大约 15Gb 的空间。
我已将所有 .deb 文件的路径设为/tmp
,请确保您有足够的空间,以免硬盘驱动器填满(如果您的硬盘驱动器填满并且计算机死机,/tmp
应通过重新启动清除)。
如果您只需要主文件,请从配置文件中删除受限制的、Universe 和多元宇宙名称。
如果您使用不同的架构(您有 64 位,但您的朋友有 32 位),则在mirror.list配置文件的开头添加以下内容:
set defaultarch i386
Run Code Online (Sandbox Code Playgroud)
一旦你有了apt-mirror
你想要的配置,运行apt-mirror
并去做一些有趣或改变生活的事情,因为获取存储库需要数小时或数天(取决于你的连接和你使用的 Ubuntu 镜像)。
获得 .deb 文件后,将文件复制到 USB 记忆棒(或外部硬盘驱动器)并按照前面提到的文章设置本地存储库。
在把它带给你的朋友之前测试它是否有效!
Arn*_*rja 36
apt-get
与--print-uris
选项一起使用并添加-qq
它会很安静。
使用sed
删除添加到一些文件名额外的字符(像3%2a
),并获得文件的URL,文件名和的md5sum。使用wget
下载的文件。使用md5sum
检查,如果文件被正确下载。
您可以使用它来创建适用于 Linux 或 Mac OS 的 shell 脚本(替换.cmd
命令中的 to.sh
和 dochmod 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
Run Code Online (Sandbox Code Playgroud)
例子:
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
Run Code Online (Sandbox Code Playgroud)
创建 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
Run Code Online (Sandbox Code Playgroud)
例子:
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
Run Code Online (Sandbox Code Playgroud)
md5sum
如果您使用该操作系统下载文件,则需要Windows。
创建脚本以下载存储库列表:
sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd
Run Code Online (Sandbox Code Playgroud)
您可以将这些添加到脚本的末尾以检查 md5sum:
Linux:
md5sum --quiet -c md5sum.txt
Run Code Online (Sandbox Code Playgroud)
Windows(使用较旧的 md5sum,不支持 --quiet):
md5sum -c md5sum.txt
Run Code Online (Sandbox Code Playgroud)
自动添加到脚本:
echo -e "md5sum -c md5sum.txt\npause" >> script.cmd
Run Code Online (Sandbox Code Playgroud)
对目标计算机运行这些命令。
您需要使用bunzip2
来提取存储库列表文件:
bunzip2 *.bz2
Run Code Online (Sandbox Code Playgroud)
然后复制到列表文件夹(当前文件夹只包含列表文件):
sudo cp * /var/lib/apt/lists/
Run Code Online (Sandbox Code Playgroud)
以上组合(当前文件夹可能包含其他文件):
for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done
Run Code Online (Sandbox Code Playgroud)
如果您想更快地下载文件,请尝试使用 Axel。
替换wget -c ... -O ...
为axel ... -o ...
。
我通常会创建一个这样的文件夹:
然后将wget
上面的行更改为..\\bin\\wget.exe
、md5sum
到..\\bin\\md5sum.exe
等。
这会将 *.deb 文件和列表文件分开到不同的文件夹中。
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
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
您也可以使用MinGW 中的那些,这是我使用的。你只需要wget.exe
,md5sum.exe
和必要的共享库。检查“文件夹层次结构”部分。
update
命令,我今天还没有测试它的某些部分。Rob*_*ans 29
您需要先获得一台可以连接 Internet 的 PC,您可以在其中下载所需的 .deb 文件。下载所有文件后,您现在可以创建 CD/DVD rom 或 ISO 文件,您可以使用它来安装已下载到离线 PC 上的软件。
从全新安装或 VM 开始。
sudo apt-get install aptoncd
在一台 PC 上安装所需的软件包
sudo apt-get install gbrainy
运行aptoncd
点击创建
单击刻录并设置选项,然后单击应用
烧掉它或保存它
请注意, aptoncd 仅备份当前 apt-cache 中的内容。
这就是为什么我们从一个干净的 VM/新安装开始,并在一次运行中完成所有这些。
har*_*mkv 29
第 1 步:获取文件中的下载 URL:
执行以下命令,用所需的包名替换包名,用空格分隔。
apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls
Run Code Online (Sandbox Code Playgroud)
第二步:将这个文件(apturls)复制到可以高速上网的机器上,执行如下命令下载包:
wget -i path-to-apturls-file
Run Code Online (Sandbox Code Playgroud)
第 3 步:现在将这些下载的软件包下载到您的机器上,并使用以下命令安装它们:
cd path-to-the-downloaded-packages-directory
sudo dpkg -i *.deb
Run Code Online (Sandbox Code Playgroud)
完毕!
toh*_*ohu 23
此处描述了如何创建离线存储库:您只需从archive.ubuntu.com下载适当的文件;或者,您可以使用apt-medium
.
编辑:另一种基于本地文件存档的*.deb
方法在不同的博客条目中进行了描述(请参阅此处和此处)。Sarath Chandra总结如下:
使目录可访问(至少通过 root 访问)
sudo mkdir /var/my-local-repo
Run Code Online (Sandbox Code Playgroud)将所有 deb 文件复制到此目录。
将目录设为 gzip:
sudo bash -c 'dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz'
Run Code Online (Sandbox Code Playgroud)
或者
sudo dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz
Run Code Online (Sandbox Code Playgroud)将本地仓库添加到源
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
Run Code Online (Sandbox Code Playgroud)Cam*_*cri 20
您可以使用CubeGet。它是一个便携式软件包管理器,可让您在另一台联网的计算机(Linux 或 Windows)上下载软件包,然后将它们离线安装回您的原始 Linux 计算机。
CubeGet 所做的是创建一个Project,其中将包含计算机的存储库列表、已安装包的列表以及计算机的分发详细信息 (lsb_release)。然后使用该项目,它可以使用 CubeGet 在其他 Internet 连接的计算机(Windows 也)上打开,搜索和下载新存储库、包更新和特定包。
pop*_*pey 17
在突触中,您可以选择要安装的包,在第一个菜单下有一个选项可以生成脚本,您可以将其带到另一台机器并在那里运行。您在计算机上运行该脚本将“wget的”(即“下载”),你指定你想要的包(和它们的依赖)确实有互联网接入。
运行后,您将拥有断开连接的计算机所需的所有包文件。将它们放在 CD/USB 记忆棒上并通过sudo dpkg -i *.deb
.
Has*_*ken 16
您可以使用apt-offline
或apt-offline-gui
。
先决条件:有互联网连接的朋友的系统。apt-offline 安装在您的两个系统中。
离线安装只需 3 个简单步骤即可完成。
第 1 步:
在家里
apt-offline set /tmp/apt-offline.sig
的已断开连接的 Debian 机器上生成签名文件上述命令将生成 apt 所需的有关更新其数据库的所有信息。
第二步:
根据之前生成的签名文件
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
是离线安装的最佳选择。
Dus*_*and 11
上面列出了几个好的,有效的答案。然而,这是我个人使用的机制—— apt-ftparchive。我在这里记录它,以防我将来再次需要它。也许它可能对你有用。
创建存档快照
sudo apt-get clean
sudo apt-get update
sudo apt-get dist-upgrade --download-only
sudo apt-get install --download-only byobu run-one bikeshed dotdee powernap
sudo apt-get install apt-utils
(cd /var/cache/apt/archives/ && sudo apt-ftparchive packages . ) | sudo tee /var/cache/apt/archives/Packages
sudo tar cvf snapshot.tar -C /var/cache/apt archives/
在脱机目标系统上使用存档快照
tar xvf snapshot.tar
echo "deb file:/home/ubuntu/archives /" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install byobu run-one bikeshed dotdee powernap
对于离线安装,您将需要这些软件包。如果您使用的是 Debian 系统
.deb
文件扩展名的包文件并用于dpkg -i package_name
安装 获取带有.tar.gz
或.tar.bz2
文件扩展名的源 tarball ,然后使用以下命令提取并安装它们:
tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2
make
sudo make install
make clean (optional, and may prevent uninstallation)
Run Code Online (Sandbox Code Playgroud)您可能会遇到依赖项问题。您需要先安装所有这些才能成功进行离线安装。