小编cha*_*aig的帖子

如何使用 launchpadlib 获取特定 Ubuntu 系列的完整软件包和版本列表

我正在寻找一些帮助(一个例子会很好)弄清楚如何只获取特定版本的 Ubuntu 的包名称列表。例如,使用 Web 界面我可以简单地在 Launchpad 的 Ubuntu 部分搜索一个包,它会给我所有的子包(组件?),例如:https : //launchpad.net/ubuntu/+源/linux-meta

我正在寻找的是上游包的列表 + 它们的所有子包及其所有依赖项。我目前只对 Ubuntu-17.10-desktop 感兴趣,但我确实关注未来的自动化。

不幸的是,提供的示例列表非常稀少,因此我无法理解要使用哪个函数。

我花了一段时间才到这里,但这是我到目前为止的代码,我希望它使我朝着正确的方向前进:

    import pandas as pd
    from launchpadlib.launchpad import Launchpad
    import launchpadlib as lp

    launchpad = Launchpad.login_anonymously('just testing', 'production', 
    cachedir, version='devel')
    ubuntu = launchpad.distributions['ubuntu']
    series = ubuntu.getSeries(name_or_version='17.10')
    archive = ubuntu.main_archive
    arch_series = series.getDistroArchSeries(archtag='amd64')

    manifest = pd.DataFrame(columns=['asset','pkg_set'])
    pkgs = launchpad.packagesets
    
    for i in range(34):
        name = pkgs.getBySeries(distroseries=series)[i].name
        sources_incl = pkgs.getBySeries(distroseries=series)[i].getSourcesIncluded()
        new_man=pd.DataFrame({'asset':sources_incl,'pkg_set':[name]*len(sources_incl)})
         manifest = manifest.append(new_man,ignore_index=True)
    manifest=manifest.sort_values(by=['asset'])
    
Run Code Online (Sandbox Code Playgroud)

理想情况下,我应该能够稍微修改此脚本以更改为其他 Ubuntu 系列,尤其是较新的版本。但是,我是 API JSON 提取领域的新手,所以我可以使用一些帮助。

比如知道Artful里面有34个包集,我就是通过实验得出的。如果我可以获取一些属性来了解给定系列的答案,那就太好了。

此外,我希望能够获取每个源的版本号,特定于 Artful,但我似乎无法弄清楚除了 …

python ubuntu launchpad

5
推荐指数
0
解决办法
215
查看次数

标签 统计

launchpad ×1

python ×1

ubuntu ×1