通过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

您可以使用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中可以使用wget for windows

前几天我不得不这样做; 先跑,跑

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

你不需要sudo priviledges就可以安装任何东西。

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

阅读包裹清单......完成
构建依赖树       
阅读国家信息......完成
将安装以下额外包:
   ncurses-term ssh-import-id
推荐套餐:
   rssh molly-guard openssh-blacklist openssh-blacklist-extra 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

我使用apt-cache depends package 来获取所有必需的包,如果已经安装在系统上的话 。 所以它总能正常工作。
由于命令apt-cache的工作方式不同,具体取决于语言,因此必须在系统上尝试此命令并调整命令。 apt-cache取决于你的包
在一个englisch系统上你会得到:

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

在德国系统上你得到:节点

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

具有以下术语的englisch版本:
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