Add a fast ugly patch for people in hurry
[ikiwiki.git] / doc / bugs / CGI_wrapper_doesn__39__t_store_PERL5LIB_environment_variable.mdwn
1 If you wish to install ikiwiki in your home directory (for example because you don't have root access), you need to set environment variables (such as PATH and PERL5LIB) to point to these directories that contain your personal copy of IkiWiki.
2
3 The CGI wrapper remembers PATH, but not the environment variable PERL5LIB. Consequently, it will look for plugins and so on in the usual system directories, not in your personal copy. This is particularly insidious if you have a system copy of a different version installed, as your CGI wrapper may then load in code from this version.
4
5 I think the CGI wrapper should remember PERL5LIB too.
6
7 -- Martin
8
9 Thank's a lot for pointing me to this location in the code. I was looking it for some time.
10
11 This brutal patch implement your solution as a temporary fix.
12
13     *** Wrapper.pm.old      2012-08-25 16:41:41.000000000 +0200
14     --- Wrapper.pm  2012-10-01 17:33:17.582956524 +0200
15     ***************
16     *** 149,154 ****
17     --- 149,155 ----
18       $envsave
19             newenviron[i++]="HOME=$ENV{HOME}";
20             newenviron[i++]="PATH=$ENV{PATH}";
21     +       newenviron[i++]="PERL5LIB=$ENV{PERL5LIB}";
22             newenviron[i++]="WRAPPED_OPTIONS=$configstring";
23       
24       #ifdef __TINYC__
25
26 As I am not sure that remembering `PERL5LIB` is a good idea, I think that a prettier solution will be to add a config variable (let's say `cgi_wrapper_perllib`) which, if fixed, contains the `PERL5LIB` value to include in the wrapper, or another (let's say `cgi_wrapper_remember_libdir`), which, if fixed, remember the current `PERL5LIB`.
27
28 -- Bruno