On 2019-10-28, Heinrich Rebehn <heinrich.reb...@rebehn.net> wrote:
> Hello list,
>
> After upgrading a OpenBSD host running 6.5 to 6.6 using sysupgrade(8), I 
> received the email below.
> It suggests that the upgrade has been aborted upon failure to upgrade 
> comp66.tgz. This set was not part of the initial installation.
> Does this mean that the system is ‘half upgraded’? What steps are missing 
> because of the abort?

>> Installing comp66.tgz    78% |********************      | 56832 KB    00:01 
>> ETAtar: Unable to remove directory ./usr/include/machine: Directory not empty

/usr/include/machine is distributed in comp*.tgz and is normally a
symlink to /usr/include/<arch>.

Because you didn't install comp65.tgz, you don't have the symlink.

Unfortunately syspatch65-003_mds.tgz contains files in the directory
using the symlink's name (usr/include/machine) rather than in the "real"
directory name (usr/include/<arch>) so it created /usr/include/machine
as a new directory. When the installer runs, tar is unable to replace
the existing dir with a symlink, hence the error.

The simplest fix is "rm -r /usr/include/machine" and re-run the 6.6
installer in upgrade mode (at the "boot>" prompt, type "b /bsd.rd").
To avoid getting in a mess with syspatch you should allow it to
reinstall all sets, not just comp66.tgz.

If it's a remote machine without console access and you really need to
use the sysupgrade script, you would need to patch it (temporarily
hardcode NEXT_VERSION=6.6) as normally it will only allow updates
from 6.6 or 6.6-beta to either 6.7 or snapshots.


Reply via email to