# Port firefox depends exact on perl5.24.2,  ...



## hruodr (Aug 6, 2017)

... but my upgraded system has "only"  perl5.24.1 from the upgraded packages. See below.

Why is perl5 not enough?

Should I delete all my packages and install all with ports? My machine is slow, it is not practical to continuously update and compile ports every time I need a new peace of software.

---


```
===>  Configuring for p5-Locale-gettext-1.07
env: /usr/local/bin/perl5.24.2: No such file or directory
*** Error code 127

Stop.
make[7]: stopped in /usr/ports/devel/p5-Locale-gettext
*** Error code 1

Stop.
make[6]: stopped in /usr/ports/misc/help2man
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/misc/help2man
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/print/texinfo
*** Error code 1
```


----------



## ShelLuser (Aug 6, 2017)

Look into /etc/make.conf and be sure to specify your Perl version using DEFAULT_VERSIONS+=.

And I overlooked your issue 

Packages will always depend on the latest version(s) of other packages, it's a given. And the current Perl version is 5.24.2 so that's what you'll need. That's where this thing is coming from, you need to upgrade that.

Also: it's not a good idea to mix ports with binary packages. A port can be satisfied with a specific version of another port (as hinted at above) but this becomes a different thing when you mix ports and binaries together; you risk creating inconsistency on your system.

(edit2)

My suggestion would be to grab ports-mgmt/portmaster and let that sort this out for you. A mere `# portmaster 
devel/p5-Locale-gettext` would be enough for Portmaster to figure this whole thing out for you: it would upgrade Perl and then install P5 Gettext for you.

The other way to look into these possible problems is to run `make missing` in the ports directory itself, that would have probably told you that Perl was missing.


----------



## hruodr (Aug 6, 2017)

And yes, the problem is, that ports and packages are not synchronised. The latest version for packages seems to be perl5.24.1, but for ports perl5.24.2. But why the dependence of exact a subversion? Isnt perl5 or perl 5.24 not enough?

I think the mixing is not so problematic if the libraries are from packages, programs from which nothing depend from ports. But unfortunately you find abstruse dependencies (like doxygen from inflated texlive).

The problem is: I need to compile for configuring myself, but to compile everything in my slow machine is not a good Idea, unless my work is nothing else than dealing with the operating system.

If I need to compile myself, then I think to have a computer and software that tries to be more intelligent than the user is not the right approach.

`make missing` does not work: it needs perl5>=5.24<5.25, but complains because it does not have exactly perl5.24.2 (perl5.24.1 is there). See it:


```
% cd /usr/ports/devel/p5-Locale-gettext
% make missing
% make
===>   p5-Locale-gettext-1.07 depends on executable: msgfmt - found
===>   p5-Locale-gettext-1.07 depends on package: perl5>=5.24<5.25 - found
===>   p5-Locale-gettext-1.07 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>  Configuring for p5-Locale-gettext-1.07
env: /usr/local/bin/perl5.24.2: No such file or directory
*** Error code 127

Stop.
make: stopped in /usr/ports/devel/p5-Locale-gettext
```


----------



## drhowarddrfine (Aug 6, 2017)

This is why you don't mix ports and packages. You say you need to compile ports but then complain that your machine is too slow. Well, yes, that's your problem. Get a faster machine and you'll see that issue go away. If you don't want to get a faster machine, you'll need to deal with it or find another solution. Compiling any program will always take longer than installing a binary anywhere.


----------



## jb_fvwm2 (Aug 7, 2017)

However, one gets past a thousand or so ports installed, it is expensive either in number of CPU and/or expertise, OR time, to NOT mix ports and packages. [ lsof, for example ... ] ... so I wonder if the statement 'not to mix ports and packages' could be qualified a bit to 'in MANY cases, ports and packages are best mutually exclusive. ...


----------



## hruodr (Aug 7, 2017)

drhowarddrfine, that is the Windows philosophy. Get the new version of Windows, get the most modern Hardware for it. It is not bad that the masses follow it, due to it we have cheap powerful Hardware, but of course, I do not want to neutralize the better Hardware with fatter Software.

My computer runs the whole day, doing nothing or only trivial things, among the most complicated things it does is compiling. Do I need for that a computer that consumes a lot of electricity and makes a lot of noise for cooling? Speed is only one component than one considers when deciding what hardware to use, there is more than that.

Of course, I could get a powerful computer for cross compiling packages for the weaker computer. But isnt that an exaggeration?

I have two kerns, 1.6 Ghz, passive cooled. I think that should be more than enough, but all becomes fat and fatter.

BTW, llvm is much slower than gcc for compiling, it produces bigger code, and it seems also slower.

Perhaps portmaster is the solution for not upgrading almost every port for upgrading/istalling one, I do not know exactly what it does. But a only ports solution is at the moment not possible for me.


----------



## SirDice (Aug 7, 2017)

hruodr said:


> The latest version for packages seems to be perl5.24.1, but for ports perl5.24.2. But why the dependence of exact a subversion? Isnt perl5 or perl 5.24 not enough?


The quarterly package branch has 5.24.1_1, the latest branch has 5.24.2.


----------



## drhowarddrfine (Aug 7, 2017)

hruodr said:


> I do not want to neutralize the better Hardware with fatter Software.


You are thinking FreeBSD follows the Windows philosophy of newer equals fatter and that's not true.


hruodr said:


> Do I need for that a computer that consumes a lot of electricity and makes a lot of noise for cooling?


Computers don't use a lot of electricity and, if you do proper cooling, they don't make a lot of noise. I can barely hear my fan running in my i7 workstation sitting next to me.



hruodr said:


> llvm is much slower than gcc for compiling, it produces bigger code, and it seems also slower.


And I just compiled a new version of a client's program, last Wednesday, that was about a KB smaller so, no, I don't believe that.

As I said, if you want to do the things you want to do, you need a machine capable of doing them and it is not a fault of FreeBSD or any program you want to blame it on.


----------



## gpw928 (Aug 10, 2017)

Hi,

I just smacked into this headlong myself.

I was surprised that a "pkg upgrade" didn't simply fix the problem.

I have no intention of configuring and compiling xorg, ImageMagick, and dozens of other key packages out of the ports tree.  Historically, key packages were actually installed from the FreeBSD boot CD.

Since not everything is available as a package, using ports for at least some things is simply mandatory.  So mixing ports and packages is required on any non-trivial FreeBSD 11.1 system.   Reading section 4.1.1 of the handbook suggests that this is supported.

I considered deleting the perl5 package, with the intent of then building the required port, but the dependency list to be deleted with it was alarming.

If the only answer to the dilemma is that everything must be compiled from ports, then the pkg system borders on useless to ordinary users, and by inference vastly depreciates the convenience and value of FreeBSD 11.1 with it.

I'm not terribly proud of it, but this temporary change got p5-Locale-gettext installed:

`ln -s /usr/local/bin/perl5.24.1 /usr/local/bin/perl5.24.2`

Cheers,


----------



## SirDice (Aug 10, 2017)

Just wait a day or so for the package servers to catch up with the ports. It takes a while to build _everything_ for _every_ supported version on every architecture.


----------

