通过 Windows 获取离线 Ubuntu 计算机的 .deb 包依赖项

通过 Windows 获取离线 Ubuntu 计算机的 .deb 包依赖项

基本上,我想在 Windows 7 计算机上一次性“批量”下载 .deb 文件及其所有依赖项(我没有管理员权限,它是一台公共计算机)。我已经看到很多基于 Ubuntu 的修复程序需要终端和 apt,我想问如何在 Windows 上执行此操作。(我不确定这个问题是否适合这里,但我没有找到其他可以解决的地方。)

我尝试使用 Keryx 和 Sushi-huh 来获取软件包及其依赖项,但它们都需要 Python,如果没有管理员权限,则无法正常安装 Python。(附注:我想我见过一些程序捆绑了 Python,因此它们无需将其安装到 c: 即可运行,这可以作为一种解决方法吗?Google 没有帮助)

如果有人想知道我正在尝试为 Ubuntu 12.10/AMD64 下载 Krita 和 Blender

我已经能够手动下载单个 .deb 文件和依赖项,最多可达 38 个依赖包,但是这 38 个包又依赖于其他包,在 Windows 上没有办法自动执行这些操作,真是令人抓狂。

*编辑抱歉,我忘了说清楚,我的家用电脑运行的是 Ubuntu 12.10,而我用来下载的公共电脑是 Windows 7

答案1

您可以使用 synaptic 生成一个带有下载脚本的文件,选择您的软件包并点击“文件 -> 生成软件包下载脚本”,更多信息请参见ubuntu/PackageDownloadScript ,生成如下文件:

#!/bin/sh
wget -c http://ftp.usf.edu/pub/ubuntu/pool/universe/i/ibm-3270/3270-common_3.3.10ga4-2build2_amd64.deb

删除#!/bin/shwget -c仅获取 URL,然后使用新文件,您可以在任何操作系统中下载,在 Windows 7 中,您可以使用Windows 版 wget

答案2

前几天我不得不这样做;首先,运行

$ apt-get install -y (yourpackage) --print-uris > dependencies

sudo由于尚未安装任何内容,因此您不需要权限即可执行此操作。

然后,你可以使用你最喜欢的文本编辑器删除文件的前几行,dependencies如下所示

正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
将会安装以下额外的软件包:
  ncurses-term ssh-导入-id
建议的软件包:
  rssh molly-guard openssh-黑名单 openssh-黑名单-额外 monkeysphere
将安装以下新软件包
  ncurses-term openssh-server ssh-import-id
升级了 0 个,新安装了 3 个,删除了 0 个,并且未升级 26 个。
需要获取 771 kB 的档案。
此操作后,将使用3,056 kB的额外磁盘空间。

然后使用sed删除不必要的内容,只留下以下 URL:

$ sed -i 's/ .*//' "dependencies"

最后使用wget下载所有这些依赖项

$ wget -i dependencies

答案3

我用了apt-cache depends package 无论如何获取所有必需的包如果是否已安装在系统上。所以它总是能正常工作。
因为 apt-cache 命令的工作方式不同,取决于语言,所以您必须在您的系统上尝试此命令并调整命令。apt-cache 取决于您的软件包
在英语系统上,您将获得:

$ apt-cache depends yourpackage
node
  Depends: libax25
  Depends: libc6


在德国系统上你得到:node

  Hängt ab von: libax25
  Hängt ab von: libc6


带有术语的英语版本:
Depends:
您必须在此命令中将术语“ yourpackage”更改为您想要的两次,请注意这一点!

$ sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "  Depends:" |  sed 's/  Depends://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


德语版本带有术语:
Hängt ab von:
此文本在此命令中使用了两次,如果您希望将其调整到您的语言,请注意这一点!
您必须在此命令中将术语“ yourpackage”更改为您想要的两次,请注意这一点!

$ sudo apt-get --print-uris --yes -d --reinstall install yourpackage $(apt-cache depends yourpackage | grep "Hängt ab von:" |  sed 's/  Hängt ab von://' | sed ':a;N;$!ba;s/\n//g') | grep ^\' | cut -d\' -f2 >downloads.list


您将获得 downloads.list 中的链接列表,
检查列表,转到您的文件夹并运行列表:

$ cd yourpathToYourFolder

$ wget --input-file downloads.list


所有需要的包都在:

$ ls yourpathToYourFolder

相关内容