Replacing base commands with pkg versions

Arthur Chance freebsd at
Tue Jan 29 15:02:39 UTC 2019

On 29/01/2019 12:46, Lorenzo Salvadore via freebsd-questions wrote:
>> On 29/01/2019 12:31, Lorenzo Salvadore via freebsd-questions wrote:
>>>> What is the recommended way of dealing with the base versions of
>>>> commands when installing a package version instead? Should I chmod -x
>>>> the base executable(s), delete them or rename them? What happens if I
>>>> subsequently do a freebsd-update - do the base executables get
>>>> reinstated or are they ignored?
>>>> The specific case I'm interested in is unbound under 11.2, but this
>>>> applies to a variety of programs (CUPS vs base lpr, or base vs pkg llvm
>>>> come to mind) and if there's any official guidance on this I've missed it.
>>> I cannot give you an official answer, but if you always want to have the pkg
>>> version getting precedence on the base version, I would reorder the PATH
>>> variable.
>>> If instead you want to mix versions, I would not change the base system, I
>>> would rather create aliases for the shell.
>> In this case I specifically want to disable the base commands, and want
>> them to be disabled under all circumstances, hence the suggestions of
>> chmod -x, etc.
> If you really know what you're doing then locate the base program, rename it (to
> keep a backup) and make a link to the pkg version in the base location with the
> original name. (Again, there is nothing official about this approach.)
> Be carefull: packages are tested with a base system unchanged, hence there is no
> guarantee that if a software you install depends on a command in base that you
> changed it will still work.
> Maybe you should think if there is a better way to achieve your goal than
> using pkg versions instead of base. Can you tell us what's the reason base is
> not good enough for you?

To quote the Handbook:

"Unbound is provided in the FreeBSD base system. By default, it will
provide DNS resolution to the local machine only. While the base system
package can be configured to provide resolution services beyond the
local machine, it is recommended that such requirements be addressed by
installing Unbound from the FreeBSD Ports Collection."

I need to provide resolvers for a few dozen clients so I'm following the
Handbook's advice and installing the ports/pkg version. Unfortunately
I'm on 11.2 where the base versions of the unbound suite of programs
retain their original names. I gather 12.0 renames them all to
local_unbound* to avoid name collisions, but that's not helpful to me
right now.

Specifically, I'm worried about the possibility of freebsd-update
reinstating the base versions if I remove or disable them, so if anybody
who's familiar with the workings of freebsd-update can comment on it,
I'd be grateful.

Always learn from the mistakes of others, because you won't live long
enough to learn from making all possible mistakes yourself.

More information about the freebsd-questions mailing list