Re: "make installworld" commands used to generate manifest for makefs?

From: Julian Elischer <julian_at_freebsd.org>
Date: Mon, 25 Aug 2014 15:28:43 -0700
On 8/25/14, 12:36 PM, Brooks Davis wrote:
> On Mon, Aug 25, 2014 at 10:38:12AM -0700, Craig Rodrigues wrote:
>> On Mon, Aug 25, 2014 at 9:55 AM, Brooks Davis <brooks_at_freebsd.org> 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

if you haven't already this should be documented in the base makefiles 
along with the other -DXXXX
values.
>>>
>>> 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
Received on Mon Aug 25 2014 - 20:28:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:51 UTC