【问题标题】:python-apt package, obtain time pkg was installed and build time?python-apt 包,获取 pkg 安装时间和构建时间?
【发布时间】:2013-01-02 08:12:06
【问题描述】:

是否可以获得安装包的时间以及该特定包的构建时间?

例如:

import apt

def get_pkg_details():
    apt_cache = apt.Cache()
    selected_pkg = apt_cache["git"] #Example package

    time_installed = selected_pkg.installedTime() #?????

我知道这可以通过 RPM 实现,但我没有在 APT 上找到任何与此类似的文档。

在 RPM 中,可以使用以下枚举器访问包的安装时间和构建时间:

RPMTAG_INSTALLTIME 
RPMTAG_BUILDTIME

python-apt 文档: http://stuff.mit.edu/afs/athena/system/i386_deb50/os/usr/share/doc/python-apt/html/apt/package.html#examples

RPM 标签 API: http://rpm.org/api/4.6.0/group__rpmtag.html

【问题讨论】:

    标签: python debian apt


    【解决方案1】:

    我维护通过 apt-server 分发的部分代码,所以我也不得不处理这个问题,对于构建包的时间的基本概念,我得到了 mtime os.path.getmtime()包裹.../var/lib/dpkg/info/PACKAGE

    我的代码行也把它变成了一个日期时间对象。

    datetime.datetime.fromtimestamp(os.path.getmtime("PATH"))
    

    【讨论】:

    • 这在 pkg 名称准确的情况下有效;我迭代安装在系统中的包,一一获得所需的信息。由于名称扩展,有些不匹配,例如安装的 pkg “libopenal1”,我收到异常错误,因为在“/var/lib/dpkg/info”中,它显示为“libopenal1:amd64.shlibs”。有什么想法可以解决这个问题?
    • @Dayan 好吧,您可以遍历其中的每个文件,然后您将获得每个软件包的安装时间。或者您可以只使用您想要的名称模式中的包来全局化它们,无论哪种方式,在该路径获取文件的 mtime 将为您提供包安装时间。
    【解决方案2】:

    您可以使用以下找到安装日期。

    ls /var/lib/dpkg/info/*.list -lah | grep packagename
    
    -rw-r--r-- 1 root root 1.4K Dec 29 18:50 /var/lib/dpkg/info/libasound2-dev:i386.list
    -rw-r--r-- 1 root root 4.5K Dec 29 16:09 /var/lib/dpkg/info/libasound2:i386.list
    -rw-r--r-- 1 root root 2.3K Dec 29 16:10 /var/lib/dpkg/info/libasound2-plugins:i386.list
    

    至于编译日期,您可以在 /var/cache/apt/archives/ 中查找包的 mtime

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-14
      • 2017-12-15
      • 1970-01-01
      • 2018-04-06
      • 2021-01-26
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多