careless commits disrupt
Stefan Esser
se at freebsd.org
Fri Oct 12 09:45:14 UTC 2018
Am 12.10.18 um 07:39 schrieb Dag-Erling Sm�rgrav:
> Julian H. Stacey <jhs at berklix.com> writes:
>> Stefan Esser <se at freebsd.org> writes:
>>> You should also delete old files:
>>>
>>> cd /usr/src
>>> make delete-old
>>> make delete-old-libs
>> I just ran that. It deleted lots of stuff. & I'd only run it 2 days ago.
>> I should have run it just before buildworld though.
>> It's not suggested in the top of
>> https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
>> just at base of page.
>
> That's because you should *never* run delete-old or delete-old-libs from
> a source tree that is newer than your installed system. It may delete
> files which have been obsoleted by changes you haven't yet built and
> installed, to the point where you may be unable to build and install
> those changes. In this particular case, it will, at the very least,
> break ssh and svn / svnlite.
Yes, sorry, running make delete-old-libs before buildworld is no good
idea, unless the old libraries have been copied to /usr/lib/compat before.
The advice to run "make delete-old-libs" came from the following message
from Glen Barber:
https://lists.freebsd.org/pipermail/freebsd-current/2018-October/071581.html
But the advice was not to delete old files before make buildworld, but only
before starting the required port upgrades ...
I might have mentioned, that I always preserve old shared libraries in
/usr/lib/compat before running "make delete-old-libs". This allows to run
old binaries, but prevents linking of new binaries against these libraries
(should not matter for make buildworld, but for building ports, which I do
at in the same script that invokes buildworld for critical kernel modules
that are to be built from ports).
No binary or library should reference a library whose path contains
/compat/ after all upgrades have been performed, obviously ...
Regards, STefan
More information about the freebsd-current
mailing list