Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MakeMaker: PREFIX= doesn't set INSTALLSITELIB #1102

Closed
p5pRT opened this issue Jan 29, 2000 · 5 comments
Closed

MakeMaker: PREFIX= doesn't set INSTALLSITELIB #1102

p5pRT opened this issue Jan 29, 2000 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Jan 29, 2000

Migrated from rt.perl.org#2056 (status was 'resolved')

Searchable as RT2056$

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2000

From @simoncozens

As noticed by a user on #perl earlier, the FAQ's advice of running

% perl Makefile.PL PREFIX=~/plib

(or whatever) to set up a local modules directory fails on some modules
since the generated Makefile does not correctly prexify INSTALLSITELIB
and INSTALLSITEARCH

For example, from Net​::Finger​:

PREFIX = /tmp
INSTALLDIRS = site
INSTALLPRIVLIB = $(PREFIX)/lib/5.00561
INSTALLARCHLIB = $(PREFIX)/lib/5.00561/i686-linux
INSTALLSITELIB = /usr/local/lib/site_perl
INSTALLSITEARCH = /usr/local/lib/site_perl/5.00561/i686-linux
INSTALLBIN = $(PREFIX)/bin

Perl Info


Site configuration information for perl 5.00561:

Configured by simon at Tue Nov 23 16:27:13 JST 1999.

Summary of my perl5 (revision 5.0 version 5 subversion 61) configuration:
  Platform:
    osname=linux, osvers=2.3.27, archname=i686-linux
    uname='linux othersideofthe.earth.li 2.3.27 #4 smp wed nov 17 21:16:43 jst 1999 i686 unknown '
    config_args='-d'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    use64bits=undef usemultiplicity=undef
  Compiler:
    cc='cc', optimize='-O2', gccversion=egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
    cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldb -ldl -lm -lc -lposix -lcrypt
    libc=/lib/libc-2.1.1.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    


@INC for perl 5.00561:
    /usr/local/lib/perl5/5.00561/i686-linux
    /usr/local/lib/perl5/5.00561
    /usr/local/lib/site_perl/5.00561/i686-linux
    /usr/local/lib/site_perl
    .


Environment for perl 5.00561:
    HOME=/home/simon
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/simon/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/rhs/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/kde/bin:/home/simon/bin
    PERL_BADLANG (unset)
    SHELL=/bin/zsh

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2000

From [Unknown Contact. See original ticket]

Simon Cozens writes​:

As noticed by a user on #perl earlier, the FAQ's advice of running

% perl Makefile.PL PREFIX=~/plib

(or whatever) to set up a local modules directory fails on some modules
since the generated Makefile does not correctly prexify INSTALLSITELIB
and INSTALLSITEARCH

It does.

For example, from Net​::Finger​:

PREFIX = /tmp
INSTALLDIRS = site
INSTALLPRIVLIB = $(PREFIX)/lib/5.00561
INSTALLARCHLIB = $(PREFIX)/lib/5.00561/i686-linux
INSTALLSITELIB = /usr/local/lib/site_perl
INSTALLSITEARCH = /usr/local/lib/site_perl/5.00561/i686-linux
INSTALLBIN = $(PREFIX)/bin

Observe​:

@​INC for perl 5.00561​:
/usr/local/lib/perl5/5.00561/i686-linux
/usr/local/lib/perl5/5.00561
/usr/local/lib/site_perl/5.00561/i686-linux
/usr/local/lib/site_perl
.

So your perl was NOT configured with prefix=/usr/local. All PREFIX=
does is substitution of prefix= given on perl's Configure command line with
the value given to MakeMaker.

Ilya

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2000

From [Unknown Contact. See original ticket]

Ilya Zakharevich (lists.p5p)​:

It does.

No, it does not.

So your perl was NOT configured with prefix=/usr/local.

This statement is, of course, false​:

othersideofthe​:simon ~ % perl -MConfig -le 'print $Config{prefix}'
/usr/local

All PREFIX=
does is substitution of prefix= given on perl's Configure command line with
the value given to MakeMaker.

Contrast​:

@​INC for perl 5.00561​:

/usr/local/lib/perl5/5\.00561/i686\-linux

INSTALLARCHLIB = $(PREFIX)/lib/5.00561/i686-linux

Fine​: /usr/local -> $(PREFIX)

/usr/local/lib/perl5/5\.00561

INSTALLPRIVLIB = $(PREFIX)/lib/5.00561

Fine​: /usr/local -> $(PREFIX)

/usr/local/lib/site\_perl/5\.00561/i686\-linux

INSTALLSITEARCH = /usr/local/lib/site_perl/5.00561/i686-linux

Not fine​: /usr/local !-> $(PREFIX)

/usr/local/lib/site\_perl

INSTALLSITELIB = /usr/local/lib/site_perl

Not fine​: /usr/local !-> $(PREFIX)

At any rate, there is *something* here which is stopping real users out
there, now, from installing modules in directories of their choice.

Whatever it is, it would be real friendly if the answer given in the FAQ
actually worked.

--
MS-DOS must die!

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2000

From @gsar

On 30 Jan 2000 03​:17​:28 GMT, Simon Cozens wrote​:

/usr/local/lib/site\_perl/5\.00561/i686\-linux

INSTALLSITEARCH = /usr/local/lib/site_perl/5.00561/i686-linux
  ^
The "perl5" is missing. MakeMaker would have done the right thing
if not for that.

Not fine​: /usr/local !-> $(PREFIX)

Your installsite* variables seem to have been manually forced (or
perhaps they were busted in _61; try _63).

Sarathy
gsar@​ActiveState.com

@p5pRT
Copy link
Author

p5pRT commented Jan 30, 2000

From @doughera88

On Sun, 30 Jan 2000, Simon Cozens wrote​:

So your perl was NOT configured with prefix=/usr/local.

All PREFIX=
does is substitution of prefix= given on perl's Configure command line with
the value given to MakeMaker.

@​INC for perl 5.00561​:

Beware that the default site* entries @​INC for _61 are *wrong*. There was
a Configure bug that forgot to include the 'perl5' part of the filename.
I don't know whether this is relevant to the current discussion or not,
but please do tests on _63, which has the Configure bug squashed, or else
fix it yourself in _61 and use /usr/local/lib/perl5/site_perl.

At any rate, there is *something* here which is stopping real users out
there, now, from installing modules in directories of their choice.

Whatever it is, it would be real friendly if the answer given in the FAQ
actually worked.

This also needs revisiting to properly use the new siteman1dir and
siteman3dir man page directories (and the scripts and binaries
directories).

That's on the ToDo list for 5.6, currently awaiting a public champion.

  Andy Dougherty doughera@​lafayette.edu
  Dept. of Physics
  Lafayette College, Easton PA 18042

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant