[buster-discuss] changing @INC for buster

Clemens Vonrhein vonrhein at globalphasing.com
Thu Feb 16 08:39:51 CET 2017


Hi Kevin,

this looks like a mismatch between the machine BUSTER was installed on
and the machine you are running it from. Or did you install BUSTER on
the same machine you are running it from?

Can you check what

  hostname -s
  uname
  which perl

  ls -la $BDG_home/machines
  grep BDG_perl= $BDG_home/machines/*/host.setup

gives you - and does it point to the correct perl binary on that
particular host? BUSTER itself is not setting @INC, so it seems like
that host is getting the wrong perl binary.

Some background:

 * BUSTER picks up the perl location from

    $BDG_home/machines/<HOSTNAME>/host.setup

   where <HOSTNAME> is set to 'hostname -s' output during installation
   - so pointing to the machine name of the installation host.

 * Now in principle every machine you want to run BUSTER on should be
   configured afresh using the 'newmachine' administrator command,
   which would create a new <HOSTNAME> entry under the
   $BDG_home/machines directory.

 * However, we provide a fallback for any Linux host via
   $BDG_home/machines/.Linux - which is a symbolic link to the
   installation host subdirectory.

So if the installation host differs significantly from the machine you
want to run BUSTER on, this will cause problems. In a heterogeneous
environment you would run

  cd /where/ever/buster
  . ./setup-admin.sh
  adm/bin/newmachine BUSTER `hostname -s`

on each machine you want to run BUSTER on (or a representative of each
OS/distro/setup you are using in your lab - and using symbolic links
for all other host of the same kind). This way you ensure that the
correct settings are fetched out of a central BUSTER installation even
for different hosts.

What you want is that any host can either fetch

  $BDG_home/machines/`hostname -s`/host.setup

or (if that file doesn't exist)

  $BDG_home/machines/.`uname`/host.setup

How you achieve that depends on your setup: separate installation for
differnet Linux distros/systems, running 'newmachine' for each host,
running 'newmachine' for a representativ and then use symbolic links,
...

Does that help? Or maybe it is something else entirely - in which case
the output of the commands above might give us a clue.

Cheers

Clemens, Gerard & Andrew

On Wed, Feb 15, 2017 at 10:24:00AM -0800, Kevin Jude wrote:
> I just tried to run buster on a new machine and got this error:
> 
> Can't locate Env.pm in @INC (@INC contains: /opt/my_perl/lib
> /usr/local/lib64/perl5 /usr/local/share/perl5
> /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl
> /usr/lib64/perl5 /usr/share/perl5 .)
> at /programs/x86_64-linux/buster/20160324/bin/buster/addBfrg line 6.
> BEGIN failed--compilation aborted at
> /programs/x86_64-linux/buster/20160324/bin/buster/addBfrg line 6.
> 
>  *# error in script $BDG_com/addBfrg*
> 
>   Program stopped.
> 
> My @INC path is different from where buster is searching, though:
> [kjude at garcialab-b171-server ~]$ perl -e 'print  "@INC"'
> /opt/my_perl/lib
> /programs/x86_64-linux/perl/5.18.2/lib/site_perl/5.18.2/x86_64-linux-thread-multi
> /programs/x86_64-linux/perl/5.18.2/lib/site_perl/5.18.2
> /programs/x86_64-linux/perl/5.18.2/lib/5.18.2/x86_64-linux-thread-multi
> /programs/x86_64-linux/perl/5.18.2/lib/5.18.2 .
> 
> And Env is in that path
> (/programs/x86_64-linux/perl/5.18.2/lib/5.18.2/Env.pm).  So how can I
> get buster to look in the right place? Any advice will be appreciated.
> 
> -- 
> Kevin Jude, PhD
> Research Specialist, Garcia Lab
> Departments of Molecular & Cellular Physiology and Structural Biology
> Stanford University School of Medicine
> Beckman B177, 279 Campus Drive, Stanford CA 94305
> Phone: (650) 723-6431


More information about the buster-discuss mailing list