.deb
패키지 아카이브에 대한 정보를 얻는 방법은 무엇입니까 ?
예: 패키지 정보, 버전, 설치 크기, 아키텍처, 설명 및특허.deb
패키지 아카이브 등에 있는 정보는 무엇입니까?
답변1
당신은 그것을 사용할 수 있습니다dpkg-deb
데비안 패키지 아카이브(.deb)를 작동하기 위한 명령입니다.
맨페이지에서:-
-I, --info archive [control-file-name...]
Provides information about a binary package archive.
If no control-file-names are specified then it will print a summary of the contents of the package as
well as its control file.
If any control-file-names are specified then dpkg-deb will print them in the order they were specified;
if any of the components weren't present it will print an error message to stderr about each one and
exit with status 2.
사용 예:-
$ dpkg-deb -I intltool_0.50.2-2_all.deb
new debian package, version 2.0.
size 52040 bytes: control archive=1242 bytes.
831 bytes, 19 lines control
1189 bytes, 18 lines md5sums
Package: intltool
Version: 0.50.2-2
Architecture: all
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian GNOME Maintainers <[email protected]>
Installed-Size: 239
Depends: gettext (>= 0.10.36-1), patch, automake | automaken, perl (>= 5.8.1), libxml-parser-perl, file
Provides: xml-i18n-tools
Section: devel
Priority: optional
Multi-Arch: foreign
Homepage: https://launchpad.net/intltool
Description: Utility scripts for internationalizing XML
Automatically extracts translatable strings from oaf, glade, bonobo
ui, nautilus theme and other XML files into the po files.
.
Automatically merges translations from po files back into .oaf files
(encoding to be 7-bit clean). The merging mechanism can also be
extended to support other types of XML files.
콘텐츠를 다음과 같이 나열할 수 있습니다.dpkg-deb -c
:-
사용 예:
$ dpkg-deb -c libnotify-bin_0.7.6-1ubuntu3_i386.deb
drwxr-xr-x root/root 0 2014-02-22 05:24 ./
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/bin/
-rwxr-xr-x root/root 9764 2014-02-22 05:24 ./usr/bin/notify-send
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/share/
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/share/man/
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/share/man/man1/
-rw-r--r-- root/root 773 2014-02-22 05:24 ./usr/share/man/man1/notify-send.1.gz
drwxr-xr-x root/root 0 2014-02-22 05:24 ./usr/share/doc/
drwxr-xr-x root/root 0 2014-02-22 05:25 ./usr/share/doc/libnotify-bin/
-rw-r--r-- root/root 1327 2011-07-31 03:11 ./usr/share/doc/libnotify-bin/copyright
lrwxrwxrwx root/root 0 2014-02-22 05:25 ./usr/share/doc/libnotify-bin/AUTHORS -> ../libnotify4/AUTHORS
lrwxrwxrwx root/root 0 2014-02-22 05:25 ./usr/share/doc/libnotify-bin/NEWS.gz -> ../libnotify4/NEWS.gz
lrwxrwxrwx root/root 0 2014-02-22 05:25 ./usr/share/doc/libnotify-bin/changelog.Debian.gz -> ../libnotify4/changelog.Debian.gz
라이센스 정보 얻기:-
대부분의 파일저작권정보는 다음에서 제공됩니다./usr/share/doc/<pkgname>/copyright
예:-
$ dpkg-deb -c gparted_0.18.0-1_i386.deb | grep -i copyright
-rw-r--r-- root/root 1067 2011-12-08 00:34 ./usr/share/doc/gparted/copyright
추출 -x
해서 찾아보시면 됩니다특허그에 따라 출시됩니다.
여기:-
$ cat /usr/share/doc/gparted/copyright | grep -i ^license -A 5
License:
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991.
자세한 내용을 보려면 다음을 실행하세요.man dpkg-deb
.
답변2
이 작업을 수행 하는 데 사용할 수 있습니다 dpkg -f (archive) (field name)
.
예:
dpkg -f archive.deb Version
dpkg -f archive.deb Package
가능한 필드 이름을 얻으려면:
dpkg --info archive.deb
답변3
에서 영감을 받다https://sleeplessbeastie.eu/2018/03/05/how-to-display-dependent-for-deb-package/:
다른 시스템에서 멈춰서 dpkg/dpkg-deb에 액세스할 수 없는 경우 빠른 해킹 방법은 binutils에서 ar과 tar의 조합을 사용하여 필요한 파일/정보를 추출하는 것입니다. 예를 들어 win-64의 경우 conda를 통해 설치할 수 있습니다.
conda install -c msys2 m2w64-binutils
conda install -c msys2 m2-tar
컨트롤 파일 정보 추출 예:
ar -x <input_file.deb> control.tar.gz
tar --to-stdout --gzip --extract --file control.tar.gz ./control
라이센스 정보 추출 예(Pandya의 답변 참조)
ar -x gparted_0.18.0-1_i386.deb data.tar.bz2
tar --to-stdout --bzip2 --extract --file data.tar.bz2 ./usr/share/doc/gparted/copyright
.deb에 무엇이 있는지 확실하지 않은 경우 다음을 사용할 수 있습니다.
ar -t <input_file.deb>
패키지 파일의 모든 파일 나열