Python install catch 22

Willem Jan Withagen wjw at digiware.nl
Sat Apr 5 10:12:34 UTC 2014



Op 5 apr. 2014 om 05:48 heeft Shane Ambler <FreeBSD at ShaneWare.Biz> het volgende geschreven:

> On 04/04/2014 22:42, Willem Jan Withagen wrote:
>> Hi,
>> 
>> I've tried to upgrade my python 2.7 which did not work.
>> Then I deinstalled all python stuff and tried to install python3 (aka 3.3)
> 
> You can install both versions of python (2.7 & 3.3) at the same time,
> but currently you can only install a module to one of the versions at a
> time.

Sorry,

I did not explain  the situation clear enough.

I was at 2.7, and wanted to install a 2.7 upgrade because of a bug.
If memory serves me, from 2.7.3 to 2.7.6

But that started mounting about missing db stuff, and having to install a py/db of choice.
That is where I ran into the catch22, installing a db required py-tools, which in turn starts to try to upgrade python from 2.7.3 to 2.7.6.

Then I cleaned/removed al python stuff, and tried again.
First with 2.7 and when that did not work, I tried 3.3 with the same result.
I tried with portinstall/portupgrade as well as make && make install, but both fail for the same reason.

So atm I have no python at al.

> So far there are still many modules that don't work with 3.x so you may
> want to use 2.7 if you want python with more than the default modules.
> 
> The default python is still 2.7, if you want to use 3.3 then you might
> want to add
> DEFAULT_VERSIONS=PYTHON=3.3 PYTHON3=3.3
> to your /etc/make.conf
> 
>> The system everytime refuses to install because of missing a database:
>> 
>> pkg-static:
>> lstat(/home2/usr/ports/lang/python33/work/stage/usr/local/lib/python3.3/lib-dynload/_dbm.so):
>> No such file or directory
>> *** [fake-pkg] Error code 74
>> 
>> [ replace python33 by python27 te get the similar error for 2.7 ]
> 
> This would indicate that the dbm module wasn't built. It should be built
> and is a module that gives access to others that may be installed from
> the list below. The db modules below don't need to be installed first
> for _dbm.so to be built.
> 
> This is an error compiling not related to the other modules. If your
> using a gui then scrollback in the terminal to see the error - increase
> scrollback limit if needed, from cli maybe use script to keep a log of
> the build to look through.

Using command line in putty.
I will try again, and scan de build output for more errors. So there should be an error building the part in the stage tree?


> 
> gettext libiconv and gmake are the only things that need to be installed
> before python to build.

So where does it get the DBMS stuff from?

> Maybe there is an issue with you not building
> from /usr/ports ?

That would be a first. This config is like this for about 6 years.
And /user/ports links to this tree.

> 
>> And then hints:
>> ====
>> Note that some of the standard modules are provided as separate
>> ports since they require extra dependencies:
>> 
>> gdbm            databases/py-gdbm
>> sqlite3         databases/py-sqlite3
>> tkinter         x11-toolkits/py-tkinter
>> 
>> Install them as needed.
>> ====
>> 
>> Which is nasty catch22, because one needs a recent/working python to
>> actually be able to do this.
>> 
>> How do other cope with this?
>> 
> 
> Could using pkg to install a prebuilt binary package be an option?

That would be the alternative, but I only do that, if nothing else works.
I've grown to always build my stuff.

> 
> What FreeBSD version are you using?

I386 9.2-STABLE

--WjW


More information about the freebsd-ports mailing list