基本上,我想在 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/sh
并wget -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