ypankov at fastmail.com
Tue Mar 3 15:34:47 UTC 2020
On 03.03.2020 18:30, Polytropon wrote:
> On Tue, 3 Mar 2020 18:16:37 +0300, Yuri Pankov wrote:
>> On 03.03.2020 18:07, Polytropon wrote:
>>> On Tue, 3 Mar 2020 17:13:50 +0300, Yuri Pankov wrote:
>>>> On 03.03.2020 16:07, Robert Huff wrote:
>>>>> tech-lists writes:
>>>>>> Is a reboot required after make delete-old ?
>>>>> I don't think so.
>>>>> But you might want to re-run ldconfig.
>>>> I don't think delete-old deletes shared libraries (and that's the answer
>>>> for original question, you don't need to reboot), there's
>>>> delete-old-libs for that, more so, running ldconfig (the binary) can be
>>>> harmful, if needed there's a ldconfig service; not sure which one you meant.
>>> According to /usr/src/Makefile's comment header, the
>>> step "make delete-old" is followed by a reboot (in
>>> combination with the 2nd mergemaster run, after
>>> "make installworld"), while "make delete-old-libs"
>>> is performed after the reboot, without a further one.
>>> In /usr/src/Makefile, you can find the following order:
>>> # For individuals wanting to upgrade their sources (even if only a
>>> # delta of a few days):
>>> # 1. `cd /usr/src' (or to the directory containing your source tree).
>>> # 2. `make buildworld'
>>> # 3. `make buildkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
>>> # 4. `make installkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC).
>>> # [steps 3. & 4. can be combined by using the "kernel" target]
>>> # 5. `reboot' (in single user mode: boot -s from the loader prompt).
>>> # 6. `mergemaster -p'
>>> # 7. `make installworld'
>>> # 8. `mergemaster' (you may wish to use -i, along with -U or -F).
>>> # 9. `make delete-old'
>>> # 10. `reboot'
>>> # 11. `make delete-old-libs' (in case no 3rd party program uses them anymore)
>>> Additional information from "man 7 build":
>>> delete-old Delete obsolete base system files and directories inter-
>>> actively. When -DBATCH_DELETE_OLD_FILES is specified at
>>> the command line, the delete operation will be non-in-
>>> teractive. The variables DESTDIR, TARGET_ARCH and
>>> TARGET should be set as with "make installworld".
>>> delete-old-libs Delete obsolete base system libraries interactively.
>>> This target should only be used if no third party soft-
>>> ware uses these libraries. When
>>> -DBATCH_DELETE_OLD_FILES is specified at the command
>>> line, the delete operation will be non-interactive. The
>>> variables DESTDIR, TARGET_ARCH and TARGET should be set
>>> as with "make installworld".
>>> To conclude this into an answer that matches existing
>>> Yes, "make delete-old" requires a reboot. :-)
>> It's the 'installworld' (7) and 'mergemaster' (8) steps that require a
>> reboot, and 'delete-old' (9) being immediately followed by 'reboot' (10)
>> step does NOT mean 'delete-old' requires 'reboot'.
> The documentation suggests that the "make delete-old" step
> happens in single-user mode (which you entered in step 5).
> So in this "limited mode", deleting libraries is safer than
> doing this in a state where 3rd party programs might use
> them (as it would typically happen in multi-user mode).
> This whole setting is to make the process safer. So when
> you do the "make delete-old" step in the setting it is
> suggested for, i. e., in single-user mode, you'll have
> to exit that mode, and the step the documentation uses
> here is "reboot" (to make sure everything previously
> installed by "make installworld") is in place during
> a system startup; just using "exit" to continue into
> multi-user mode doesn't sound convincing...
We are talking about delete-old which does NOT touch shared libraries,
and the original question was about that target only, everything else is
out of context.
>> You can actually
>> skip the step 9, as steps 7 and 8 are what already made the files
>> obsolete, and the only problem (that I can think of) from skipping is
>> obsolete header files picked up when compiling, and removing those
>> doesn't require a reboot.
> The documentation doesn't mention header files (even though
> they usually belong to libraries) - it talks about "obsolete
> base system libraries". As I said, the documentation seems
> to explain what's the _safest_ way of doing things. Of
> course nothing stops you from skipping steps, or doing
> them in a different order.
Same here, we are not talking about system libraries.
More information about the freebsd-questions