Ins:[Ifeffit] Re: problems with the new version-solved

Bruce Ravel ravel at phys.washington.edu
Tue Mar 9 08:22:25 CST 2004


On Tuesday 09 March 2004 03:11 am, ALAM Sher wrote:
> Hi,
> Maybe this can be of help....
> I had a problem with horae-030, which I solved....
> Before when I installed horae-029 there were no problems.
> Please note that I am using Red Hat Linux

Giuliana's problem was actually with the Windows package.  A note to
everyone out there -- it is always a good idea to do as Sher has done
here and identify what kind of computer you are using when you ask a
question.  That is particularly true if your question is installation
related. 


The rest of this message is unix-specific and rather detailed and
technical.  (Just so you know before digging into some of my more
boring prose ;-)

> The problem was that in directory Ifeffit under horae-030
> there are files Group.pm and Path.pm, used respectively by
> athena and artemis....The version numbers of these did
> NOT coincide with those in the same files in directory
> /usr/lib/perl/perl_site/5.  /Group.pm etc.....
>
> Thus I fixed the numbers in the above files and problem was
> solved.....

Hmmmmm.....  I am not sure you did a good thing.  

If you get a pop-up message that says:

   The main program and the Ifeffit/Group.pm module have different
   version numbers.

(or "Ifeffit/Path.pm") along with some lines telling where to find
those files, what has happened is that a conflict has arisen between
the most recently installed version of my programs and an earlier
installation.

A bit of explanation:  the main program should be installed in
/usr/local/bin.  At least that is the default behavior of an
unmodified perl installation.  The modules, which are the files with
..pm and which contain much of the functionality of the programs, get
installed under /usr/lib/perl5/site_perl/5.8.1 (or whatever version
number you are using).

However, if perl is configured differently, if your sysadmin organizes
things differnently, if you modify the Makefile.PL file, or if you
give some special arguments at the "make install" stage, then either
the programs or the modules could get installed in a different place.
That is not a problem by itself, but you must take care to do the same
thing everytime you install the software.  Sometimes (as was the case
with Red Hat, I think) the linux distribution may configure its perl
package differently in different releases.

In that case, the shell finds the first version of the program that
appears in the PATH and perl finds the first version of the module
that appears in perl search path.  If those don't match, the program
complains and quits.  (Rightly so, I might add!)

So what should you do in this situation?  Well, running this command:
  ~> which athena
will tell you what file is actually being executed.  Around line 125
is athena's version number.  Next run this command:
   ~> locate Group.pm
This will find all files called Group.pm.  Look at each one.  Around
line 50, it identifies it's version number.  They *must* match.  You
should delete any version of Group.pm which does not match and leave
the one that does.  The story is the same for artemis and Path.pm.

Sher's solution of changing the version number of an old Group.pm to
match the new athena is a poor one.  The program will run but probably
will not run well as the older .pm file may be missing important
features. 

Two final words:

1.  If you do not change the configuration of perl or of my software,
    you will not run into this problem ever on a unix system.  Of
    course if you linux distribution changes its perl configuration,
    you will run into this problem.  There's not much I can do about
    that.

2.  This is not a problem unique to perl.  Perl uses the same
    mechanism to find libraries that almost every other programming
    language uses.  That is, it has a search path for where to look
    for libraries.  If a third-party package is not installed in the
    same place each time, this problem will arise regardless of the
    language.


FWIW, This is at least the second time a Red Hat user has complained
about this problem.  I have never heard of a SuSE, Mandrake, or Debian
user having this problem.

B
   





-- 
 Bruce Ravel  ----------------------------------- ravel at phys.washington.edu
 Code 6134, Building 3, Room 405
 Naval Research Laboratory                          phone: (1) 202 767 2268
 Washington DC 20375, USA                             fax: (1) 202 767 4642

 NRL Synchrotron Radiation Consortium (NRL-SRC)
 Beamlines X11a, X11b, X23b
 National Synchrotron Light Source
 Brookhaven National Laboratory, Upton, NY 11973

 My homepage:    http://feff.phys.washington.edu/~ravel 
 EXAFS software: http://feff.phys.washington.edu/~ravel/software/exafs/




More information about the Ifeffit mailing list