如何离线下载软件包的所有依赖项

如何离线下载软件包的所有依赖项

我陷入了困境,只要有一个因素能够改变,就可以很容易地摆脱困境……但我只能接受现状。

我有一台 Windows 笔记本电脑,可以带到有 Wi-Fi 的地方。我家里有一台 Ubuntu 台式机,我想将其用作 Subversion ( SVN) 服务器进行版本控制。很简单,我正在设置一个家庭局域网,希望能够在一天结束后回家,将我的笔记本电脑连接到家庭网络,然后提交源代码。

问题是我家里没有互联网,而且我无法将我的 Ubuntu 桌面暂时转移到任何有有线互联网连接的地方。

因此,我需要将 SVN 包下载到我的笔记本电脑,将它们复制到我的 Ubuntu 机器,然后通过 安装它们sudo dpkg -i the-svn-packages.deb

因此我对Ubuntu >> maverick >> i386 architecture >> subversion_1.6.12dfsg-1ubuntu1.3_i386.deb包执行了此操作,当我运行dpkg它时,我收到投诉,说我缺少以下依赖项:

  • libsvn1
  • libapr1

当我转到 Ubuntu 官方参考资料中查找这两个包时,它显示它们有自己的依赖项,并且这些依赖项又有自己的依赖项......

所有这些都表明,我正在寻找包含整个依赖关系图的 Maverick Ubuntu 的 SVN 安装(就像我使用 Synaptic 或安装了 SVN 一样apt-get)。但我无论如何也找不到这个链接。

再次重申我的情况,我无法将我的 Ubuntu 机器连接到互联网,而唯一可以连接到互联网的计算机是 Windows 机器。

如果不存在这样的 SVN-with-full-dependencies-package,有没有 Linux 专家有其他建议?提前致谢!

编辑:也许我可以下载某种 Ubuntu“模拟器”,这样我就可以运行 Synaptic 或apt在我的 Windows 机器上下载完整的依赖关系图?然后我可以将所有内容复制到我的 Ubuntu 服务器上吗?我知道,我这是在自寻死路……

答案1

有三种可能:

  1. 您可以在笔记本电脑上的虚拟机中运行 Ubuntu(例如,可能有适用于 VMWare Player 的版本)并在那里安装所需的软件包。我假设此时您需要的所有 deb 都将存储在该 Ubuntu VM 上,您可以在回家后将它们复制过来。

  2. 在旧版本的 Ubuntu (9.x) 中,我可以将安装光盘添加到源列表中,它会从那里提取软件包,只要它认为它们是最新的(即计算机过去没有从互联网上检索到表明 CD/DVD 版本已过期的列表。)这显然只在相关软件包是 Ubuntu CD/DVD 的一部分时才有效。也许这也适用于较新的 USB 闪存驱动器/硬盘驱动器安装,我不知道。

  3. 当您在家时,您的笔记本电脑能连接无线网络吗?询问您的邻居是否可以借用他们的网络连接,然后在 WiFi 卡和笔记本电脑上的以太网端口之间建立桥接,这样就可以有效地将您的笔记本电脑变成您家中台式电脑的路由器。

答案2

您可以使用apt-get install subversion --print-uris以下形式的列表

'http://security.debian.org/pool/updates/main/s/subversion/libsvn1_1.6.12dfsg-6_amd64.deb' libsvn1_1.6.12dfsg-6_amd64.deb 984250 MD5Sum:7d647c4a8bead92a95b2d2ecaa13c76e
'http://security.debian.org/pool/updates/main/s/subversion/subversion_1.6.12dfsg-6_amd64.deb' subversion_1.6.12dfsg-6_amd64.deb 1317442 MD5Sum:8de69249d6a57b56a77bf25836ee5be0
'http://ftp.debian.org/debian/pool/main/n/neon27/libneon27-gnutls_0.29.3-3_amd64.deb' libneon27-gnutls_0.29.3-3_amd64.deb 139110 MD5Sum:4c04a0b58b0af1db1f9b7ac648c1af86
'http://ftp.debian.org/debian/pool/main/s/serf/libserf-0-0_0.3.1-1_amd64.deb' libserf-0-0_0.3.1-1_amd64.deb 34452 MD5Sum:1f92b02983964c741ae905766d56711b

(显然您将拥有 ubuntu url,而不是 Debian url),它会为您提供所有所需文件的 url。下载并放入/var/cache/apt/archives/,然后执行apt-get install subversion安装 subversion,它将使用档案目录中的文件。

您可能需要先更新您的软件包列表。可以使用 来完成apt-get update --print-uris。以下形式的项目

'http://ftp.debian.org/debian/dists/experimental/non-free/i18n/Index.bz2' ftp.debian.org_debian_dists_experimental_non-free_i18n_Index 0 :

第一部分是你需要的文件的 URL

  • 如果压缩则解压缩
  • 重命名为第二部分中的名称
  • 放入 /var/lib/apt/lists

当所有这些文件都存在时,apt-get update再次运行以将信息集成到您的 apt 数据库中。

我很久以前就这样做过,我希望我没有忘记任何事情......

相关内容