如何从mac上的apt服务器中提取package / deb文件?

时间:2013-09-19 19:20:21

标签: macos apt

如何以编程方式下载apt软件包的最新deb文件并提取内容以便能够访问其中的脚本?我希望这可以在带有标准工具套件的mac上工作(即没有apt-get或apt-cache)。

背景:我的模拟项目使用客户端代码来执行。主机仿真工具在Linux环境中运行,并通过内部apt服务器进行管理。一位同事正在他的linux机器上使用apt-get来安装软件包,然后向我们发送一个文件。我希望我们的客户端以一种可以在mac客户端上运行的方式以编程方式执行此操作。我已经干了这个过程(参见示例答案),但我很惊讶没有人谈过这个问题。

有关如何做到最好的建议?

1 个答案:

答案 0 :(得分:0)

以下是我在询问之前试图说服自己的可行性。

获取有关linux系统的链接信息:apt-cache show s-package-name 从此,我发现了这一行:

Filename: pool/main/s/s-package-name/s-package-name_0.2.0-variousNumbers3_all.deb

由此,我能够做到以下几点:

wget http://aptserver/pool/main/s/s-package-name/s-package-name_0.2.0-variousNumbers3_all.deb
ar vx s-package-name_0.2.0-variousNumbers3_all.deb
tar -zxvf data.tar.gz

反过来提取了一个文件夹opt,其中包含一个具有组织名称的文件夹(以下称sOrg),其中包含一个名为package-name的文件夹,其中包含我想要的文件。

最后,我在浏览器中回顾了http://aptserver/pool/main/s/s-package-name/,我看到了类似的内容:

s-package-name_0.2.0-variousNumbers0_all.deb    12-Jul-2013 22:40   2.5M     
s-package-name_0.2.0-variousNumbers1_all.deb    16-Jul-2013 15:30   2.6M     
s-package-name_0.2.0-variousNumbers2_all.deb    22-Aug-2013 23:45   2.6M     
s-package-name_0.2.0-variousNumbers3_all.deb    12-Sep-2013 22:21   2.6M     

这让我觉得我应该能够使用Web查询来查看它并确定最新deb文件的名称(无需转到linux框)。

我已准备好自动执行此操作,但我想我会先看看是否先解决了这个问题,或者是否有更好的方法可以解决它。