Creating a package by hand with pkg_create
Joel Hatton
freebsd-questions at auscert.org.au
Sat Sep 17 08:11:21 PDT 2005
Hi,
I'm trying to create a package from a set of binaries for local
installation only, without installing it first. I've added the files into
a temporary directory first:
/tmp/application/work/bin
/tmp/application/work/bin/app1
/tmp/application/work/bin/app2
/tmp/application/work/etc
/tmp/application/work/etc/config
I created a packing list file /tmp/application/work/.PLIST.mktmp with
contents:
@cwd /usr/local
bin/app1
bin/app2
etc/config
I've tried some combinations of arguments and packing list options, but
I've not been able to hit upon a combination that both a) can find the
source files, and if it does b) installs the program properly, in only one
place.
I believe that this is very close to what should work:
/usr/sbin/pkg_create -v -c /tmp/onelinedesc -d /tmp/application/pkg-descr -p /tmp/application/work \
-s /tmp/application/work -f /tmp/application/work/.PLIST.mktmp -m /etc/mtree/BSD.local.dist \
/usr/ports/packages/All/application.tbz
(even the -p option seems redundant to me)
But, this results in output like:
Using SrcDir value of /tmp/application/work
Creating bzip'd tar ball in '/usr/ports/packages/All/application.tbz'
tar: bin/app: Could not stat: No such file or directory
The only way I've made it work is to add @srcdir /tmp/application/work to
the packing list, but this results in a duplicated installation to
/usr/local _and_ /tmp/application/work. Is there any way around this? I
can't believe that there could be so many options for declaring where the
files reside and are destined to not allow me to do what I want here, so
it must be something I'm not following correctly.
thanks,
-- Joel Hatton --
Security Analyst | Hotline: +61 7 3365 4417
AusCERT - Australia's national CERT | Fax: +61 7 3365 7031
The University of Queensland | WWW: www.auscert.org.au
Qld 4072 Australia | Email: auscert at auscert.org.au
More information about the freebsd-questions
mailing list