Brad Smith [b...@comstyle.com] wrote:
> On 06/02/14 12:45 PM, L. V. Lammert wrote:
> >On Thu, 6 Feb 2014, Chris Cappuccio wrote:
> >
> >>I don't see why everyone recommends "install one version at a time".
> >>
> >It's not a recommendation, it is reality. Each upgrade is based on the
> >previuos version - skipping versions is not supported.
> 
> There is a difference between supported and "supported". What Chris said
> is true. Its the difference between people blindly following how-to's
> and actually understanding what they're doing and this is not very
> complex at all.
> 

There are some complexities, and I have most of them memorized, so if someone
wants to discuss how to do this on the list, just ask.

I dare say this instruction set will even work for a jump from 4.1, although
I wouldn't guarantee it :)

So, to jump over the time_t bump remotely, I typically do something like:

echo /usr/sbin/pwd_mkdb /etc/master.passwd >>/etc/rc.local
cp /sbin/reboot /reboot
mv /distloc/bsd.mp /bsd
cd /
rm -r /usr/X11R6 /usr/include /usr/share /var/log/lastlog /var/log/wtmp
touch /var/log/lastlog /var/log/wtmp
pkg_info -mq >/root/pkg_list_manual
pkg_info -q >/root/pkg_list_full
<do anything else related to your ports like dump SQL database tables>
tar xzpf /distloc/base55.tgz
<now you can no longer run old binaries, goodbye!>
/reboot

That's as far as you can go once the new ABI is unpacked over the old
system!!

Now when you reboot, you have an old set of /etc scripts, and non-functional
compiler, X11, packages, etc. But you have a working base system that you
can finish the rest with. Basic finish:

cd /
tar xzpf /distloc/comp55.tgz
tar xzpf /distloc/man55.tgz
tar xzpf /distloc/game55.tgz
cd /dev
./MAKEDEV all
installboot rootdisk0

And if you want X11 for server-only (no workstation) the also unpack xbase55
and xshare55. If you are sitting at a workstation, you're better off using
bsd.rd and 'U'pgrade.

Now you can replace all packages, upgrade /etc with sysmerge or by hand,
and reinstall packages like so:

pkg_add -z -l /root/pkg_list_manual
pkg_add -za -l /root/pkg_list_full

Also you are good to clean up old shared object crap out of /usr/lib.
You can identify these because they will have old timestamps in ls -l.

Now, reboot again and you are fully upgraded. Reinstall any SQL
databases or whatever by hand too.

I skipped a lot of the 'rm /usr/share/man/blah' crap because it's
already removed in the rm -r step. But with the ABI change, you
will want to clean out old binaries from /usr/bin, /usr/sbin, and so on.

Honestly I've never used sysmerge and would probably benefit by learning
it. I did steal the pkg_list idea from faq/current.html. That is always
a good place to look when you're fucking around like this.

If you have remote IPMI access, you might be better off just following
the faq directions and doing bsd.rd upgrade. Beats me. I don't have IPMI.
Most of the work involved here you have to do anyways, like dump/restore
databases, reinstall packages, sysmerge or hand-merge /etc, and so on.

Chris

Reply via email to