> I received the following error:
> 
>       Setting up pychecker (0.8.14-5) ...
>       /var/lib/dpkg/info/pychecker.postinst: line 45:
>       /usr/bin//etc/alternatives/python: No such file or directory
> 
> Line 29 of pychecker.postinst has a comment that is not true:
> 
>       PYTHON=`readlink /usr/bin/${i}`  # note: returns basename

Yep, it looks like that comment is incorrect.  It returns basename if
and only if the link is a relative link, i.e.

   python -> python2.3

If the link is an absolute path like this:

   python -> /etc/alternatives/python

then it returns the absolute path.

It looks like if I use the -f switch, I get back a canonical absolute
path every time.  

> Because I set up the following:
> 
> update-alternatives --install /usr/bin/python python /usr/bin/python2.1 20
> update-alternatives --install /usr/bin/python python /usr/bin/python2.2 20
> update-alternatives --install /usr/bin/python python /usr/bin/python2.3 20

Ok, I think understand what you've done.  The only problem is, I don't
think that this solution is general enough to deal with all
alternatives.  What I mean is, just because the code yields "python2.3"
doesn't mean that the compileall.py script can be found in
/usr/lib/python2.3 as is required at the bottom of the postinst.

For instance, you might have the alternative set to yield:

   /etc/alternatives/python -> /usr/local/python/python2.3.3/bin/python

In this case, we would probably derive just PYTHON="python" and then the
postinst would try to find compileall.py in /usr/lib/python, which
doesn't exist.

KEN

-- 
Kenneth J. Pronovici <[EMAIL PROTECTED]>

Attachment: pgpuW3tmddXms.pgp
Description: PGP signature

Reply via email to