make config-recursive for an individual port

Gary Aitken freebsd at dreamchaser.org
Sat Jan 30 18:53:32 UTC 2021


On 1/30/21 11:22 AM, Polytropon wrote:
> On Sat, 30 Jan 2021 10:43:42 -0700, Gary Aitken wrote:
>> On 1/30/21 10:14 AM, Steve O'Hara-Smith wrote:
>>> On Sat, 30 Jan 2021 17:08:28 +0000
>>> RW via freebsd-questions <freebsd-questions at freebsd.org> wrote:
>>>
>>>> Because that's what the "-recursive" part means - configure the current
>>>> port and anything it depends on. When you "make install" it will build
>>>> the dependencies that aren't already installed.
>>
>> I understand the -recursive will configure dependent ports.  What I don't
>> understand is why it would configure dependent ports which are already
>> installed, since they will not be reinstalled.
> 
> They will be re-installed in case you change options. Only a
> port with default options equals the already installed package.

But, as you point out later, they will not be re-installed without manually
deinstalling first.  Which is my point.  Why would one go through this
process without deinstalling first?  Because you want to keep the existing
dependencies to run existing stuff?  I can see that, but after doing this
without deinstalling first your whole set of configurations is inconsistent
with what you are running, and you have no way to really know how your running
system is configured.

>> It makes no sense to
>> configure them without first uninstalling them.
> 
> You can reconfigure them, but only the "make install" step
> will require uninstalling them first. The configured options
> will stay; for example, running "make configure" will only
> allow you to change the options, but nothing else. The
> changed options might affect the "make" and "make install"
> stage, and might even introduce new dependencies. That
> "make configure" step can be done independently of the
> already installed package, such as the "make patch"
> step would. Only "make install" affects things that are
> connected with the already installed port, and "make"
> _could_ require (re)installation of dependencies, especially
> if those are build dependencies (as opposed to runtime
> dependencies) which a certain configuration option might
> require.

thanks for the clear explanation

>> It is presuming install - configure - deinstall - build - install
>> is a reasonable sequence of operations, where a more reasonable one would
>> be install - deinstall - configure - build - install.
> 
> Reconfiguring a port does not imply you first have to
> uninstall it. As mentioned above, only the installation
> step requires uninstallation of the already installed
> port, not the configuring step.

I understand now how it works; I still question why it works that way, since
it leaves you with a system whose configuration you can't determine.

Gary




More information about the freebsd-questions mailing list