What does it mean to use ports?

hw hw at adminart.net
Mon Jul 15 04:26:32 UTC 2019


Polytropon <freebsd at edvax.de> writes:

> On Mon, 15 Jul 2019 01:39:21 +0200, hw wrote:
>> Hi,
>> 
>> so I wanted to see what would happen if I used a port and removed the
>> emacs-nox packages and its dependencies.  Then I started installing the
>> emacs port.
>> 
>> What is going on here?  It seems as if I need to compile the whole
>> system myself now.
>
> That exactly is "using a port". A port is just a description
> of sources, tools to use, how to use them, and where to put
> the results. What you're seeing is to be expected: The port
> you're building (and its dependencies) will be compiled from
> sources, unless they're already installed in the correct
> version.

There seems to be a lot more stuff needing compilation than the
dependencies of emacs-nox would suggest.  Some of the dependencies are
quite surprising, like I would think a -nox version wouldn't need
support for JPEG2000 and not depend on things like font servers and all
kinds of other stuff.

At some point, the whole thing failed, and I made a bug report as the
instructions said ...


I could as well recompile everything so it's all optimized for the CPU
it's running on.  But are the defaults of the compile options the ones
used to compile all the binary packages, or are they different?

>> Is there a way to give all the answers to the questions about compile
>> options at the beginning?  I don't have time to sit around until the
>> next question shows up.
>
> Just use "make config-recursive" before "make" and "make install".
> Also see "man 7 ports".
>
>
>
>> What if I want to change the compile options?  How do I make it so that
>> all the packages asking for me for options will do so again?  I don't
>> even remember all the packages that want to be compiled.
>
> Remove the existing configuration ("make rmconfig-recursive"),
> clean ("make clean"), then start the build again.
>
>
>
>> Can I globally set compile options like -march=native (or whatever the
>> equivalent for FreeBSD is)?
>
> The file /etc/make.conf can be used for that. See "man 5 make.conf"
> for details.

Thanks a lot, I'll look into that.


More information about the freebsd-questions mailing list