2013-01-02 1 views
1

패키지가 설치된 시간과 해당 패키지의 빌드 시간을 얻을 수 있습니까? 예를 들어python-apt 패키지는 시간 패키지를 설치하고 시간을 만들었습니까?

:

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 

파이썬-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

답변

1

나는 apt-server를 통해 배포되는 코드의 일부분을 유지하므로 패키지의 빌드 시간에 대한 기본적인 아이디어를 위해이 문제도 처리해야했습니다. 패키지의 mtime os.path.getmtime()을 얻으십시오 ...

내 코드의 행은 또한 datetime 객체로 바꿉니다.

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

을 볼 수 있었다; 필자는 시스템에 설치된 패키지를 하나씩 반복하여 필요한 정보를 얻었습니다. 일부는 설치 한 pkg "libopenal1"과 같은 이름 확장자 때문에 일치하지 않습니다. "/ var/lib/dpkg/info"에서 "libopenal1 : amd64.shlibs"로 표시되기 때문에 예외 오류가 발생합니다. 이 문제를 해결할 수있는 아이디어가 있습니까? – Dayan

+0

@Dayan 음, 거기에있는 각 파일을 반복하면 각 패키지의 설치 시간을 갖게됩니다. 또는 원하는 경로를 따라 파일의 mtime을 얻는 것만으로도 패키지를 설치할 수 있습니다. –

1

설치 날짜는 다음과 같습니다. pkg 부 이름이 정확한 경우

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/아카이브에 패키지의 mtime에 대한이 작동