# Perl and Python conflicts



## CreativeGPX (Jan 18, 2014)

I tried installing firefox by typing `portmaster www/firefox` and I ended up with 
	
	



```
===>   Registering installation for py27-setuptools-2.0.1 as automatic
Installing py27-setuptools-2.0.1...pkg-static: py27-setuptools-2.0.1 conflicts with py27-distribute-0.6.35 (installs files into the same place).  Problematic file: /usr/local/lib/python2.7/site-packages/easy-install.pth.dist
*** [fake-pkg] Error code 70
```
So I wasn't really sure what to do about that. If the two versions conflict like that and can't be resolved automatically I just can't install Firefox without breaking something?

I figured I'd try something else. (Not to avoid the issue, but mainly because I wanted a decent browser in order to type this post on.) So I tried: `pkg install opera`. That installation ended with something like this:

```
Checking integrity...pkg: WARNING: locally installed perl-5.14.4 conflicts on /usr/local/bin/a2p with:
        - perl5-5.16.3_6

pkg: WARNING: locally installed perl-5.14.4 conflicts on /usr/local/bin/c2ph with:
        - perl5-5.16.3_6

pkg: WARNING: locally installed perl-5.14.4 conflicts on /usr/local/bin/config_data with:
        - perl5-5.16.3_6

pkg: WARNING: locally installed perl-5.14.4 conflicts on /usr/local/bin/corelist with:
        - perl5-5.16.3_6

...

pkg: WARNING: locally installed perl-5.14.4 conflicts on /usr/local/man/man1/xsubpp.1.gz with:
        - perl5-5.16.3_6
```
All of those warnings (I abbreviated as there were dozens more near identical ones) seem to indicate that this installation failed too. If I read this right it's saying I have Perl version 5.14.4 and Opera needs a newer version of Perl. So why isn't pkg just getting that newer version? Isn't that the point of pkg aside from saving compile time?

So, what do I do when these kinds of conflicts occur without breaking everything else? Are there any other tips you can give me for handling problems that arise while installing with ports or packages? So far I've had mixed results using either.


----------



## trh411 (Jan 18, 2014)

Have a look at /usr/ports/UPDATING. See the entry for 20131127.


----------



## CreativeGPX (Jan 19, 2014)

Thanks, I tried that and it got me over that issue I described. But then, later in the installation it stopped again with the culprit being:

```
warning: libpixman-1.so.9, needed by /usr/local/lib/libpangocairo-1.0.so, not found (try using -rpath or -rpath-link
```
I decided to deal with that issue in the morning so I turned off my computer for the night. Pehaps that was a bad idea because now when I booted up I don't see XDM or KDE. I just get the shell. When I tried to manually execute `startx` I get an error:

```
xauth: file /root/.serverauth.7579 does not exist

Shared object "libpixman-1.so.9" not found, required by "X"
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
```

I looked in /usr/ports/UPDATING and found two resolutions related to pixman. I tried them both:

```
portmaster -rf pixman
```
and

```
portmaster pixman
portmaster \*cairo\*
portmaster -r poppler-0
```
That didn't help.

I also tried these things:

```
portmaster -af
portmaster --check-depends
portmaster -r x11\xdm
portmaster -r x11\*
```
I still don't get my XDM, X11 or KDE on boot and launching `xstart` still has the same error regarding libpixman-1.so.9.

I also found suggestions to try sysutils/bsdadminscripts so I did this (as suggested here: viewtopic.php?f=5&t=42470&p=236163&hilit=pixman#p236163):

```
pkg_libchk -q > /tmp/to-be-rebuilt.txt
portmaster `cat /tmp/to-be-rebuilt.txt`
```
This didn't work either. I'm still getting the same problem.


----------



## wblock@ (Jan 19, 2014)

Rebuild everything that depends on x11/pixman.  This is shown in /usr/ports/UPDATING, entry 20130920.  You must, *must* follow the updates in that file, or problems like this will appear.


----------



## CreativeGPX (Jan 19, 2014)

Isn't that what I did, mentioned my previous post, with:

```
portmaster -rf pixman
```

Also, I must be missing something but if you "must" follow everything in that file and the file provides these concise commands to do, then why is the process manual? Why isn't /usr/ports/UPDATING just a shell script?


----------



## CreativeGPX (Jan 19, 2014)

Also, this is a two-day old install from the ISO of FreeBSD 9.2 on the website. How do I know how far back in the UPDATING file I have to go? Assuming those numbers indicate the date, the item you mentioned is from 20 September 2013 which is ten days before the FreeBSD 9.2 release. So how far back in that file do I have to go manually updating my fresh install of the latest release of FreeBSD? It seems that file has updates all the way back to 2008!


----------



## wblock@ (Jan 19, 2014)

And what was the output of that command?  It might have rebuilt a bunch of things, or it might have said "no such port installed".

And be careful: it's not every step, it's the only the new steps since your last update, and only those that apply to software you have installed.

The ports tree that comes with an install is a snapshot that was taken at the time of the release.  In general, the first thing you should do is update the ports tree, before installing anything.  Then everything is up to date.  The next time you install or update ports, check /usr/ports/UPDATING for what has been added since the last update.

Ongoing work on the ports tree has reduced the number of those manual steps.  It would be nice to eliminate it entirely, but that has not happened yet.


----------



## Anonymous (Jan 19, 2014)

I had the same problem weeks ago, `cp -iv /usr/local/lib/libpixman-1.so.30 /usr/local/lib/compat/libpixman-1.so.9` solved the problem.


----------



## wblock@ (Jan 19, 2014)

Please do not recommend copying the wrong version of libraries.  It is a temporary workaround that will cause problems later.

I realized later last night that I should have just pointed to Upgrading FreeBSD Ports, which does a better job of explaining how to follow UPDATING.


----------



## CreativeGPX (Jan 25, 2014)

Since my install was mostly empty, I messed some things up and FreeBSD 10 just came out, I decided to just do a fresh install. I managed to install the necessary ports without any irresolvable problems.

wblock@, the command did indeed rebuild things so it looked promising. While I don't 100% know what caused X to stop working, I think my not knowing what to do and trying too many different things before I fixed the others got me into a state where I didn't know what to patch up first.

So, the applicable fixes in UPDATING should typically be carried out immediately before installing the port, not after, right? Otherwise, between the BSD Handbook, what you said and the link I think I now have a good idea of how this all works, thanks!



> I had the same problem weeks ago, cp -iv /usr/local/lib/libpixman-1.so.30 /usr/local/lib/compat/libpixman-1.so.9 solved the problem.


talsamon, thanks, but I saw that in the other thread and agree that I'm not going to use that solution because it sounds like it could cause problems down the line. As a new user of FreeBSD (or any BSD at all) I'd prefer to really stick to the formally correct and officially endorsed way to do things so I can assess the OS fairly.


----------



## wblock@ (Jan 25, 2014)

CreativeGPX said:
			
		

> So, the applicable fixes in UPDATING should typically be carried out immediately before installing the port, not after, right?



The entries in UPDATING are only added when the user has to do something atypical.  The standard procedure for updating ports is to update the ports tree, then check UPDATING for entries that have been added since your last update and that apply to your system, doing them in order from oldest to newest.  If you were going to install something new, do it after all that.

Thanks to frenzied work on the ports tree by the port managers and committers, new entries in UPDATING have become much less common.  The newest one in there now is 11 days old, an amazingly long time considering what it has been like in the past.


----------



## chrcol (Apr 10, 2014)

`portupgrade -fo devel/py-setuptools devel/py-distribute` doesnt do anything 

but actually I do have a different issue I think.


```
Installing py27-setuptools27-2.0.1...pkg-static: py27-setuptools27-2.0.1 conflicts with py27-setuptools-2.0.1
```

never mind solved, was a seperate fix for it in UPDATING.


----------



## Vovas (Apr 24, 2014)

chrcol said:
			
		

> ```
> Installing py27-setuptools27-2.0.1...pkg-static: py27-setuptools27-2.0.1 conflicts with py27-setuptools-2.0.1
> ```
> 
> never mind solved, was a seperate fix for it in UPDATING.


Same problem. Any solution?


----------



## Vovas (Apr 27, 2014)

Found the solution.
*pkgng users:*
`# pkg set -o devel/py-setuptools:devel/py-setuptoolsXX`
*portmaster users:*
`# portmaster -o devel/py-setuptoolsXX devel/py-setuptools`
`# portmaster -r py\*setuptools`
*portupgrade users:*
`# portupgrade -o devel/py-setuptoolsXX -f devel/py-setuptools`
`# portupgrade -fr devel/py-setuptools`
Check it out /usr/ports/UPDATING - 20140307


----------



## setevoy (Jun 26, 2014)

Hi.

Faced with same problem while installing strace:


```
pkg: WARNING: locally installed perl5.14-5.14.4_7 conflicts on /usr/local/man/man1/xsubpp.1.gz with:
        - perl5-5.16.3_11
```

But I can't uderstand - how py-setuptools here affect with *Perl*?


----------

