# py-setuptools error and stop



## micski (Jun 13, 2014)

I needed to do a quick update of VirtualBox. I updated the ports collection. However, after (of course) the deinstallation, then the reinstallation failed to complete with the following error.


```
===>  Installing for py27-setuptools-2.0.1
===>   py27-setuptools-2.0.1 depends on file: /usr/local/bin/python2.7 - found
===>  Checking if devel/py-setuptools already installed
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
===>   Registering installation for py27-setuptools-2.0.1
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Installing py27-setuptools-2.0.1...pkg-static: py27-setuptools-2.0.1 conflicts with py27-setuptools27-2.0.1 (installs files into the same place).  Problematic file: /usr/local/lib/python2.7/site-packages/easy-install.pth.dist
*** [fake-pkg] Error code 70
```

I turned to UPDATING and found an entry 20140307, that affect users of devel/py-setuptools. The description tells me, that the programmers of Python now is working on so many versions of their source code, that they got confused - and mixed two versions in the same directory - causing a lot of trouble for users of VirtualBox and lots of other widely used programs. The instructions recommends a fix using the portmaster. I tested them right away. However, the instructions does not seem to be correct. It seems, that the arguments are wrong.


```
# portmaster -o devel/py-setuptools27 devel/py-setuptools
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file

===>>> The second argument to -o can be a package name,
       or a port directory from /usr/ports

       devel/py-setuptools does not seem to be installed,
       or listed as a dependency

===>>> No valid installed port, or port directory given
===>>> Try portmaster --help
```

I then tried to delete it and install it manually from the ports collection. I tried compiling the port and I tried installing the package. It all failed.

Some users might suggest a switch from the good old ports package system to the new package system. However, I did try that - and it nearly totally crashed my system - and deleted critical programs in the proces. What a nightmare.

So, I am stuck with a system, that can not reinstall VirtualBox for now. Does anyone know of a fix?


----------



## micski (Jun 14, 2014)

I can add, that I tested a solution, that was mentioned in another thread. However, compilation of VirtualBox still fail with error on the Python.

`# pkg set -o devel/py-setuptools:devel/py-setuptools27`

```
pkg: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Change origin from devel/py-setuptools to devel/py-setuptools27 for all dependencies? [y/N]: y
```

`# cd /usr/ports/devel/py-setuptools27`
`# make deinstall`

```
===>  Deinstalling for devel/py-setuptools27
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
===>   Deinstalling 
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Deinstallation has been requested for the following 1 packages:

	py27-setuptools27-2.0.1

The deinstallation will free 2 MB
[1/1] Deleting py27-setuptools27-2.0.1... done
```

`# make reinstall`

```
===>  Installing for py27-setuptools27-2.0.1
===>   py27-setuptools27-2.0.1 depends on file: /usr/local/bin/python2.7 - found
===>   Registering installation for py27-setuptools27-2.0.1
pkg-static: PACKAGESITE in pkg.conf is deprecated. Please create a repository configuration file
Installing py27-setuptools27-2.0.1... done

kBuild: Generating python - /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/out/freebsd.amd64/release/obj/VBoxOGLgen/errorspu.c
kmk: /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/out/freebsd.amd64/release/obj/filesplitter/filesplitter: Command not found
kmk: *** [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.3.12/out/freebsd.amd64/release/obj/VirtualBox/include/COMWrappers.cpp] Error 127
kmk: *** Waiting for unfinished jobs....
kmk: *** Exiting with status 2
*** [do-build] Error code 2
```


----------



## talsamon (Jun 14, 2014)

Please, take a look at this:

http://www.freebsd.org/doc/handbook/pkgng-intro.html

and

https://wiki.freebsd.org/pkgng


----------



## micski (Jun 14, 2014)

I have read about the new package system, the pkgng, and wasted many hours on it. It is a critical change - and will render your FreeBSD system useless in seconds. The converting part of the procedure is not reversable (which is also stated in the handbook).


----------



## wblock@ (Jun 14, 2014)

The new package system works.  There are two main mistakes people encounter:

1. Thinking that pkg(1) forces them to use binary packages.  It does not.  I user ports with pkg(1) and it works better than the old system.
2. Continuing to use old package utilities after switching.  The old utilities still use the old databases, tracking things that no longer exist and updating the wrong things.


An overall error that is a continuous problem is people not checking /usr/ports/UPDATING before installing or updating ports.  It is not a list of fixes for problems.  Instead, it is a list of manual tasks that the ports system cannot do on its own.  Skipping these tasks causes problems.

Upgrading FreeBSD Ports gives an overview of keeping ports updated with the least work.


----------



## micski (Jun 14, 2014)

Thanks, wblock. That is a very well written and good looking guide.


----------



## micski (Jun 14, 2014)

I have now tried portmaster. It does not resolve this problem. If I try to install VirtualBox, it fails on error with conflicting files, that relatees to Perl. However, I only has one version of Perl. Despite that, I installed the latest version, but installation still fails with the same error. Google is full of similar reports and non working solutions.

What is going on with FreeBSD and this mess of error messages? In the good old days, FreeBSD and its ports tree was a simple, fast and solid system, that could run for years and years. It stood out from Linux and other systems. Today, FreeBSD has a bunch of different package systems with non tested instructions, that all fail to work, and your entire system is at stake, every time you encounter a need for version update of simple end user programs. On top of it, a bunch of warnings has been spread out like the famous deprecated pkg.conf and creation of a repository configuration, which is far from simple to do. Thus, the modern FreeBSD kills itself within 6 months and is far behind Linux and other systems. It is a sad development.


----------



## wblock@ (Jun 14, 2014)

micski said:
			
		

> I have now tried portmaster. It does not resolve this problem. If I try to install VirtualBox, it fails on error with conflicting files, that relatees to Perl. However, I only has one version of Perl. Despite that, I installed the latest version, but installation still fails with the same error. Google is full of similar reports and non working solutions.



Most likely this problem is from not following /usr/ports/UPDATING, so no, portmaster can't fix that.  Or it can, by removing and rebuilding all ports as shown in the man page.  Long-term problems caused by missing necessary updates are often difficult to fix.



> What is going on with FreeBSD and this mess of error messages? In the good old days, FreeBSD and its ports tree was a simple, fast and solid system, that could run for years and years. It stood out from Linux and other systems. Today, FreeBSD has a bunch of different package systems with non tested instructions, that all fail to work, and your entire system is at stake, every time you encounter a need for version update of simple end user programs. On top of it, a bunch of warnings has been spread out like the famous deprecated pkg.conf and creation of a repository configuration, which is far from simple to do. Thus, the modern FreeBSD kills itself within 6 months and is far behind Linux and other systems. It is a sad development.



This is trolling, but I'll give you a serious response.

FreeBSD has only had two package systems.  One is dead and will go away in a couple of months.  The other is pkg(8), which is a drop-in replacement for the old system.  It is faster, does more things, and works better than the old system.  It is also going through changes.  Most of these changes are things that should have happened long ago, but the old system had resisted change for long after it was needed.

There is a widespread misconception that using pkg(8) means people have to use binary packages.  This is not true.  The ports system is still the basis for packages, and will not be going away.

The recipe for installing applications on a FreeBSD system has not changed.  There are steps the ports system cannot do alone.  These manual steps must be done by the admin, or the system will not work reliably.  Despite that, a great number of people just throw `portmaster -a` at it and hope that it will all work.

So, to repeat:
Before installing or updating *any* ports, read the new entries in /usr/ports/UPDATING.  If they apply to ports already on the system, or are steps for all users, do them.  Do them first, because it's easier to avoid problems than to try to fix them.

Install sysutils/bsdadminscripts and run `pkg_libchk -qo`.  This will show ports that need to be rebuilt because they are missing libraries (often from ignoring /usr/ports/UPDATING).

Some systems are so twisted up by mysterious errors and "fixes" like symlinking the wrong library versions that all ports need to be rebuilt.  The procedure at the end of the portmaster(8) man page to rebuild all ports is the best way to do this, removing all ports to avoid conflicts but automating it as much as possible.

Once a system is corrected, always, always, _always_ check and follow new entries in /usr/ports/UPDATING before upgrading or installing new ports.


----------

