Eirik Øverby a écrit :
On 15. okt. 2009, at 20.56, Martin Turgeon wrote:
Eirik Øverby a écrit :
On 15. okt. 2009, at 19.44, Martin Turgeon wrote:
Eirik Øverby a écrit :
On 8. okt. 2009, at 21.04, Martin Turgeon wrote:
Eirik Øverby a écrit :
On 8. okt. 2009, at 19.58, Martin Turgeon wrote:
Hi everyone!
I just upgraded a 7.2-REL to 8.0RC1 using freebsd-update. The
upgrade
went fine on the base system following the procedure written in
the
announcement email by Ken Smith. My problem is when I try to
upgrade my
jails, I get this message:
# freebsd-update -b /usr/jail/mysql/ fetch install
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 8.0-RC1 from
update5.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
No updates needed to update system to 8.0-RC1-p0.
No updates are available to install.
Run '/usr/sbin/freebsd-update fetch' first.
But, if I compare the dates of the files in the base system to
the files
in the jails, it's obvious that the jails are not up to date.
It seems like freebsd-update doesn't care about the basedir I
specified.
It does, but if you do a 'uname -a' - inside or outside the jail
- you'll see that it reports the OS revision of the host. So you
should have updated your jails first, then the host ...
Ok but if I update in the process of upgrading the first jail,
the new kernel will be installed and asked to reboot. After that,
I will have the same problem when upgrading the other jails and
the base system, right? There must be something I don't
understand well. Thanks a lot for your answer.
The kernel will be installed inside the jail, and the message
about rebooting can be safely ignored. Just run the install
command once more, and you're done and can move on to the next
jail. :)
/Eirik
Martin
One way to get around it is to replace /usr/bin/uname with a
shell script, which calls the original uname (which you have
renamed) and pipes through something like sed to replace the
revision with what you used to have:
#!/bin/sh
/usr/bin/uname.org $* | sed s/"8.0-RC1-p0"/"7.2-RELEASE_p3"/g
And this is a seriously butt ugly hack.
/Eirik
Thanks a lot for your help,
Martin
Thanks a lot! It worked great, but I'm still concerned by the fact
that the world in the jails are from 8.0 while the kernel is still
at 7.2 during the updates of the jails. In the normal update
procedure, the kernel is upgraded first, rebooted and then the
world is updated. It must have a good reason for this. Why can I
jail be an exception to this rule?
Because when you upgrade the host, the very binaries you are
installing are being installed by ... the binaries you are
installing. Which is why you'll want them to be reasonably in-sync
with the kernel.
When upgrading jails using freebsd-update, my understanding is that
it uses the host binaries to push files to the target directory
(basedir). The risk of trouble is therefore very low (I've upgraded
dozens of jails from 7.x to 8.0-RC1 without any issues), though I
can probably imagine situations where this is not the case - i.e. if
the upgrade depends on functionality in an upgraded binary in order
to be able to complete the upgrade, however that sounds like a very
unlikely scenario to me. And *any* use of the basedir option to
freebsd-update would break in such a case.
/Eirik
Sounds reasonable to me. Thanks for your quick reply.
Reasonable != true. And for that matter, reasonable != reasonable.
YMMV etc. etc. I haven't peeked (much) into the code, so I'm just
guessing from my experiences. ;)
People in the know should correct me if I'm wrong..
/Eirik
I must admit that I was looking for a confirmation... ;)
I thought it was a problem a lot of people would have faced...
Martin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-jail
To unsubscribe, send any mail to "[email protected]"