On Mon, Aug 25, 2014 at 10:38:12AM -0700, Craig Rodrigues wrote: > On Mon, Aug 25, 2014 at 9:55 AM, Brooks Davis <[email protected]> wrote: > > On Sun, Aug 24, 2014 at 04:10:21PM -0700, Craig Rodrigues wrote: > >> Hi, > >> > >> Is there an easy way to take most of the commands performed > >> during "make installworld" and create a manifest file > >> which is compatible with makefs? > > > > make -DNO_ROOT -DDB_FROM_SRC DESTDIR=<foo> installworld > > > > should result in a <foo>/METALOG file suitable for passing to makefs. > > You may also want the distribution target if you want a populated /etc. > > > > -- Broks > > Hi, > > I got this: > > > # make -DNO_ROOT -DDB_FROM_SRC DESTDIR=/tmp installworld
you really don't want DESTDIR=/tmp, it will install a full OS in that
directory along with the METALOG file.
> mkdir -p /tmp/install.hEJfJDhM
> progs=$(for prog in [ awk cap_mkdb cat chflags chmod chown date echo
> egrep find grep id install ln lockf make mkdir mtree mv pwd_mkdb rm
> sed services_mkdb sh sysctl test true uname wc zic tzsetup ; do if
> progpath=`which $prog`; then echo $progpath; else echo "Required
> tool $prog not found in PATH." >&2; exit 1; fi; done); libs=$(ldd
> -f "%o %p\n" -f "%o %p\n" $progs 2>/dev/null | sort -u | while read
> line; do set -- $line; if [ "$2 $3" != "not found" ]; then echo $2;
> else echo "Required library $1 not found." >&2; exit 1; fi;
> done); cp $libs $progs /tmp/install.hEJfJDhM
> cp -R ${PATH_LOCALE:-"/usr/share/locale"} /tmp/install.hEJfJDhM/locale
> echo "#mtree 2.0" > /tmp//METALOG
> cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=amd64
> MACHINE=amd64 CPUTYPE=
> GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
> GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
> GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
> PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/tmp/install.hEJfJDhM
> LD_LIBRARY_PATH=/tmp/install.hEJfJDhM
> PATH_LOCALE=/tmp/install.hEJfJDhM/locale make -DWITH_ATF -f
> Makefile.inc1 INSTALL="install -N /usr/src/etc -U -M /tmp//METALOG -D
> /tmp" MTREE_CMD="mtree -N /usr/src/etc -W"
> __MAKE_SHELL=/tmp/install.hEJfJDhM/sh -DNO_ROOT METALOG=/tmp//METALOG
> reinstall; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=amd64 MACHINE=amd64
> CPUTYPE= GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin
> GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font
> GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac
> PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/tmp/install.hEJfJDhM
> LD_LIBRARY_PATH=/tmp/install.hEJfJDhM
> PATH_LOCALE=/tmp/install.hEJfJDhM/locale rm -rf /tmp/install.hEJfJDhM
> make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 37: Unable to
> determine compiler type for cc. Consider setting COMPILER_TYPE.
You need to build world before you can install it.
-- Brooks
pgpMgj7DkgPit.pgp
Description: PGP signature
