10.0 BETA3 - nanobsd.sh does not use pkg
Andreas Nilsson
andrnils at gmail.com
Wed Nov 20 14:38:47 UTC 2013
On Wed, Nov 20, 2013 at 2:53 PM, Patrick M. Hausen <hausen at punkt.de> wrote:
> Hi, all,
>
> Am 20.11.2013 um 09:09 schrieb Zenny <garbytrash at gmail.com>:
> > +1 I had the same experience.
> >
> > On 11/20/13, Patrick M. Hausen <hausen at punkt.de> wrote:
> >> Hi, all,
> >>
> >> I just wanted to report that. I do not yet have a patch to suggest.
> >> nanobsd.sh cust_pkg() still tries to call pkg_add and fails when
> >> adding packages to the NANO_WORLD_DIR. tbz vs. txz …
>
> OK, here’s a quick hack to just make it work somehow. I have to build an
> image at
> the moment ;-)
>
> Any takers for tidying up? I’m using the „-c“ option and pkg from the
> buidling system
> instead of chroot into the NANO_WORLD_DIR first. Looks like that might
> simplify
> things even more than I just did.
>
> Kind regards
> Patrick
>
> ———————————————
> root at freebsd10:/home/nanobsd/build/vagrant # cat pkgng.nano
> cust_pkgng () (
> # If the package directory doesn't exist, we're done.
> if [ ! -d ${NANO_PACKAGE_DIR} ]; then
> echo "DONE 0 packages"
> return 0
> fi
>
> # Copy packages into chroot
> mkdir -p ${NANO_WORLDDIR}/Pkg
> (
> cd ${NANO_PACKAGE_DIR}
> find ${NANO_PACKAGE_LIST} -print |
> cpio -Ldumpv ${NANO_WORLDDIR}/Pkg
> )
>
> # Count & report how many we have to install
> todo=`ls ${NANO_WORLDDIR}/Pkg | wc -l`
> echo "=== TODO: $todo"
> ls ${NANO_WORLDDIR}/Pkg
> echo "==="
> while true
> do
> # Record how many we have now
> have=`pkg -c ${NANO_WORLDDIR} info | wc -l`
>
> # Attempt to install more packages
> # ...but no more than one at a time - experienced sqlite
> errors
> (cd ${NANO_WORLDDIR} && ls Pkg/*txz) | xargs -n 1 pkg -c
> ${NANO_WORLDDIR} add || true
>
> # See what that got us
> now=`pkg -c ${NANO_WORLDDIR} info | wc -l`
> echo "=== NOW $now"
> pkg -c ${NANO_WORLDDIR} info
> echo "==="
>
>
> if [ $now -eq $todo ] ; then
> echo "DONE $now packages"
> break
> elif [ $now -eq $have ] ; then
> echo "FAILED: Nothing happened on this pass"
> exit 2
> fi
> done
> rm -rf ${NANO_WORLDDIR}/Pkg
> )
> ———————————————
>
> --
> punkt.de GmbH * Kaiserallee 13a * 76133 Karlsruhe
> Tel. 0721 9109 0 * Fax 0721 9109 100
> info at punkt.de http://www.punkt.de
> Gf: Jürgen Egeling AG Mannheim 108285
>
>
>
> As I just answered this in another thread: this is what I do:
If you use the official pkgng repo it is almost trivial:
define/override cust_pkg() in your config file, something like
cust_pkg() {
pkg -c ${NANO_WORLDDIR} install $packages
pkg -c ${NANO_WORLDDIR} clean
}
You might also have to temporarily place a working resolv.conf in
${NANO_WORLDDIR}/etc
If you have your own repo just add
export PACKAGESITE="proto://path/to/repo"
to the config file as well.
Best regards
Andreas
More information about the freebsd-stable
mailing list