PKGNG: ability to view pkg-plist?
Ken Moore
ken at pcbsd.org
Fri Oct 25 23:40:08 UTC 2013
On 10/25/2013 18:05, Matthew Seaman wrote:
> On 25/10/2013 18:24, Ken Moore wrote:
>> I have been looking around, but I am unable to find a way to easily read
>> the pkg-plist within a PKGNG package on the repository. Is this
>> functionality missing in pkg, or am I just missing something?
> If you've downloaded the package tarball, then like this:
>
> lucid-nonsense:...cache/pkg/All:% pkg info -l -F ./pkg-1.1.4_8.txz
> pkg-1.1.4_8:
> /usr/local/share/licenses/pkg-1.1.4_8/catalog.mk
> /usr/local/share/licenses/pkg-1.1.4_8/LICENSE
> /usr/local/share/licenses/pkg-1.1.4_8/BSD
> /usr/local/etc/pkg.conf.sample
> /usr/local/sbin/pkg
> /usr/local/sbin/pkg-static
> /usr/local/sbin/pkg2ng
> /usr/local/include/pkg.h
> /usr/local/lib/libpkg.so.1
> /usr/local/lib/libpkg.so
> /usr/local/lib/libpkg.a
> /usr/local/etc/periodic/daily/400.status-pkg
> /usr/local/etc/periodic/daily/411.pkg-backup
> /usr/local/etc/periodic/daily/490.status-pkg-changes
> /usr/local/etc/periodic/security/410.pkg-audit
> /usr/local/etc/periodic/security/460.pkg-checksum
> /usr/local/libdata/pkgconfig/pkg.pc
> /usr/local/man/man3/pkg_printf.3.gz
> /usr/local/man/man5/pkg-repository.5.gz
> /usr/local/man/man5/pkg.conf.5.gz
> /usr/local/man/man8/pkg-add.8.gz
> /usr/local/man/man8/pkg-annotate.8.gz
> /usr/local/man/man8/pkg-audit.8.gz
> /usr/local/man/man8/pkg-autoremove.8.gz
> /usr/local/man/man8/pkg-backup.8.gz
> /usr/local/man/man8/pkg-check.8.gz
> /usr/local/man/man8/pkg-clean.8.gz
> /usr/local/man/man8/pkg-convert.8.gz
> /usr/local/man/man8/pkg-create.8.gz
> /usr/local/man/man8/pkg-delete.8.gz
> /usr/local/man/man8/pkg-fetch.8.gz
> /usr/local/man/man8/pkg-info.8.gz
> /usr/local/man/man8/pkg-install.8.gz
> /usr/local/man/man8/pkg-lock.8.gz
> /usr/local/man/man8/pkg-query.8.gz
> /usr/local/man/man8/pkg-register.8.gz
> /usr/local/man/man8/pkg-remove.8.gz
> /usr/local/man/man8/pkg-repo.8.gz
> /usr/local/man/man8/pkg-rquery.8.gz
> /usr/local/man/man8/pkg-search.8.gz
> /usr/local/man/man8/pkg-set.8.gz
> /usr/local/man/man8/pkg-shell.8.gz
> /usr/local/man/man8/pkg-shlib.8.gz
> /usr/local/man/man8/pkg-static.8.gz
> /usr/local/man/man8/pkg-stats.8.gz
> /usr/local/man/man8/pkg-unlock.8.gz
> /usr/local/man/man8/pkg-update.8.gz
> /usr/local/man/man8/pkg-updating.8.gz
> /usr/local/man/man8/pkg-upgrade.8.gz
> /usr/local/man/man8/pkg-version.8.gz
> /usr/local/man/man8/pkg-which.8.gz
> /usr/local/man/man8/pkg.8.gz
> /usr/local/share/zsh/site-functions/_pkg
> /usr/local/etc/bash_completion.d/_pkg.bash
>
> Otherwise there is an optional '-l' flag to 'pkg repo' that creates a
> database of all of the files installable by all of the packages in the
> repo -- which should be downloadable as 'filesite.txz'. Whether this
> exists or not depends on the choices of the repository maintainer. It's
> not currently available from the official repos for http://pkg.freebsd.org/
>
>
>> Just for a bit of context:
>> I am working on adding the functionality into EasyPBI to work *without*
>> a local copy of the ports tree available, so I am trying to grab all the
>> information about a given package from the remote repository (with user
>> privileges) to maintain the "Easy" part of EasyPBI in the new version.
>> Most of the information can be easily pulled using "pkg rquery", but the
>> only thing I am still missing is the ability to search through the
>> pkg-plist for binaries/icons/etc..
> Yeah -- the repository catalogue is a collection of selected package
> metadata for the packages in the repo. Unfortunately the lists of files
> and directories from each package aren't part of that selection. Mostly
> because of the space they'd take up.
>
> Whether it would be desirable to publish a 'filesite.txz' index of all
> the files in the packages on the official repos is a matter for debate.
> It would probably mean some changes to poudriere too -- I can't see any
> obvious way of telling it to run 'pkg repo -l' instead of plain 'pkg repo'.
>
> Cheers,
>
> Matthew
>
Thanks for the confirmation. The only way I am seeing that it can be
done at the moment is to download and/or install the package first, and
then there are a couple of pkg command for getting the pkg-plist ("pkg
info -l -F" if not installed, "pkg query %Fp" if it is installed).
Unfortunately, this generally requires root/admin permissions to fetch
the package (unless I change the package cache dir, but I am hesitant to
do that for a simple application like this), so that is out of the
question for my use case.
I will look into the "pkg repo -l" option and see if that will work. If
so, we might be able to use that on the PC-BSD package repo, and I can
just tell people that the simplifications for generating XDG
desktop/menu entries are only available if you are using a repository
with that option enabled.
Is a general way to list the files in a package that important for
others, or is my case very specialized? I can think of a few situations
where it might be a nice option to search for package(s) on the repo
that contains a particular binary name, but I might be in a very small
group of people that would actually use it.
Thanks!
--
~~ Ken Moore ~~
PC-BSD/iXsystems
More information about the freebsd-ports
mailing list