我正在尝试在具有有效互联网连接的服务器上下载所有软件包和所需的依赖项,并将它们传输到没有互联网连接的服务器上,然后通过 apt-get 安装它们。
我有两种下载包的解决方案:
apt-get --print-uris --yes install pkgspec | grep ^\' | cut -d\' -f2 > downloads.list
Run Code Online (Sandbox Code Playgroud)毫无用处,因为它仅适用于尚未下载并安装在具有有效互联网连接的服务器上的包和依赖项。
aptitude download '?reverse-depends(package)'
Run Code Online (Sandbox Code Playgroud)如果您不需要,它也会下载所有包和依赖项。
有人知道在全新安装的 Ubuntu 服务器 16.04 上下载软件包和依赖项的更好解决方案吗?
我想创建一个脚本,该脚本遍历包列表并自动下载所有包和依赖项。
然后我需要一个解决方案来通过 apt-get 在离线计算机上使用这个软件包。想法是创建一个本地 apt 存储库,允许您通过 apt-get 使用本地包。
因此,我使用此命令创建 Packages.gz,其中包含有关第一步下载的所有包的信息。
dpkg-scanpackages . /dev/null | gzip > Packages.gz
Run Code Online (Sandbox Code Playgroud)
然后我将新源添加到 /etc/apt/sources.list.d/ 并运行 apt-get update。
deb [trusted=yes] file:///tmp/dpkgs /
Run Code Online (Sandbox Code Playgroud)
现在我有一个问题,例如我可以安装 apache (仍然有一些错误)。但是如果我想安装 php 我收到以下错误。
root@ubuntu:~# apt-get install php
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. …
Run Code Online (Sandbox Code Playgroud)