如何以编程方式下载apt软件包的最新deb文件并提取内容以便能够访问其中的脚本?我希望这可以在带有标准工具套件的mac上工作(即没有apt-get或apt-cache)。
背景:我的模拟项目使用客户端代码来执行。主机仿真工具在Linux环境中运行,并通过内部apt服务器进行管理。一位同事正在他的linux机器上使用apt-get来安装软件包,然后向我们发送一个文件。我希望我们的客户端以一种可以在mac客户端上运行的方式以编程方式执行此操作。我已经干了这个过程(参见示例答案),但我很惊讶没有人谈过这个问题。
有关如何做到最好的建议?
答案 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框)。
我已准备好自动执行此操作,但我想我会先看看是否先解决了这个问题,或者是否有更好的方法可以解决它。