通过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/sh
和wget -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