Date: Fri, 14 Aug 2015 23:26:16 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-current@freebsd.org, Baptiste Daroussin <bapt@freebsd.org> Subject: Re: [CFT] rewrite of the merge(1) utility Message-ID: <20150814202616.GJ1872@zxy.spb.ru> In-Reply-To: <160018322.PNgSqJIXNP@ralph.baldwin.cx> References: <20150726012619.GP21594@ivaldir.etoilebsd.net> <2075305.SMzFbTQNGK@ralph.baldwin.cx> <20150814193146.GI1872@zxy.spb.ru> <160018322.PNgSqJIXNP@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 14, 2015 at 12:59:30PM -0700, John Baldwin wrote: > > > There are a few ways. Newer installs do bootstrap it for you, so if you > > > follow the traditional source upgrade method you can just run 'etcupdate' > > > in place of 'mergemaster'. If you do not want to have a /usr/src tree, > > > how are you updating your world? > > > > yes, I don't want to have /usr/src tree. > > I have buld host and run release.sh. > > After done I use R/ftp/*.txz for extract on target host. > > I see var/db/etcupdate/current in base.txz. > > But I don't cleanly understund etcupdate: > > - is this enough (var/db/etcupdate/current from base.txz)? > > - what is best way to preserve var/db/etcupdate/current before > > extract? > > - do I need some work for record changes in /etc? > > In this model, I think etcupdate isn't really what you need/want. > For one, if you extract base.txz it already overwrites your files > in /etc and loses any local changes (including any files that Of couse, I am dont extract from base.txz /etc and /var itself, only var/db/etcupdate. > etcupdate would upgrade). It doesn't lose new files like /etc/fstab > or /etc/rc.conf, but if you make changes to existing files (like > /etc/ttys) then extracting base.txz will overwrite those with the > stock versions. If you wanted to not overwrite /etc then you could > use etcupdate to merge in the changes to /etc instead. However, > you would need to do something like this: > > 1) Ignore /etc and /var/db/etcupdate/current when you extract > base.txz via --exclude. Actual command is: tar xf - --exclude ./boot/device.hints ./COPYRIGHT boot dev media mnt proc tmp bin lib libexec rescue sbin usr because tar don't allow include/exclude and var in base.txz also contains var/log/sendmail.st, var/crash/minfree, var/db/mergemaster.mtree, var/db/locate.database. > 2) Extract just /var/db/etcupdate/current from base.txz to > some other temporary location (/some/tmp/path). > > 3) Create a new tarball from that tree > ( tar cfy foo.tbz -C /some/tmp/path/var/db/etcupdate/current . ) > > 4) Use foo.tbz with etcupdate as the tarball (etcupdate -t foo.tbz) Thanks, I try this. > Alternatively, you could save on steps 2 + 3 by patching your release > process to run 'etcupdate build' (you can see where the current release > Makefile runs 'etcupdate extract' and use 'build' with the same options). > > -- > John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150814202616.GJ1872>