Today I launched pkg to upgrade some binary packages installed in a FreeBSD 9.2 instance but suddenly pkg failed complaining about a locally installed python package (py27-setuptools-2.0.1) conflicting with the version required by it. The error began with the following statement, followed by a long list of repetitions of the same warning message:
WARNING: locally installed py27-setuptools-2.0.1 conflicts on /usr/local/bin/easy_install with:
- py27-setuptools27-2.0.1
All the software in this box was installed using pkg binary packages, so that at first this error sounded really strange to me.
Even though you use pkg to simplify package installations instead of compiling software from the ports collection, there is a file you should be aware of, especially if you are experiencing installation problems:
/usr/ports/UPDATING
This file contains important information about the update procedure and since binary packages are built from the port tree, the information applies even when installing with pkg.
A quick search starting from approximately the date of the last update of the affected machine pointed me in the right direction:
20140307:
AFFECTS: users of devel/py-setuptools dependent ports
AUTHOR: sunpoet@FreeBSD.org
devel/py-setuptools is being used for every python ports (if USE_PYDISTUTILS
defined) since r336553. Due to PKGORIGIN limitation, we cannot build one
python port with python27 and the other with python33 since they require
different setuptools versions which have same PKGORIGIN. With the addition
of py-setuptools{27,32,33}, we could now have py27-foo and py33-bar coexist
in one system.
[...]
The suggested solution for pkg users is:
# pkg set -o devel/py-setuptools:devel/py-setuptoolsXX
where XX is the affected Python version. After running
# pkg set -o devel/py-setuptools:devel/py-setuptools27
pkg upgrade went fine and the problem was solved.
No comments:
Post a Comment