Merge remote-tracking branch 'origin/master'
[ikiwiki] / doc / forum / PERL5LIB__44___wrappers_and_homedir_install.mdwn
1 What is the way to tell wrappers that PERL5LIB should include ~/bin directories?
2
3 Having this in the wiki.setup doesn't help anymore:
4
5         # environment variables
6         ENV => {
7           PATH => '/home/user/bin/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/user/ikiwiki/usr/bin/:/home/user/ikiwiki/usr/sbin/:/home/user/bin/bin/:~/bin/bin/',
8           PERL5LIB => '/home/user/bin/share/perl/5.10.0:/home/user/bin/lib/perl/5.10.0'
9         },
10
11 Or at least I get CGI errors and running ikiwiki.cgi manually fails too:
12
13         Use of uninitialized value $tainted in pattern match (m//) at /usr/share/perl5/IkiWiki.pm line 233.
14         Argument "" isn't numeric in umask at /usr/share/perl5/IkiWiki.pm line 139.
15         Undefined subroutine &IkiWiki::cgierror called at /home/user/bin/bin/ikiwiki line 199.
16
17 Server has an older ikiwiki installed but I'd like to use a newer version from git, and I don't have root access.
18
19 > You can't set `PERL5LIB` in `ENV` in a setup file, because ikiwiki is already
20 > running before it reads that, and so it has little effect.
21 >> That's [fixed now](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=9d928bd69496648cd7a2d4542a2d533992c01757;hp=f574bc2ed470b60f576a2906998bc7c129f2f983)
22 >> for anything invoked through the generated wrappers: they put all the setup `ENV`
23 >> values into the real environment before starting Perl. (When running `ikiwiki` at the
24 >> command line, `PERL5LIB` just has to be in the environment, as it would normally be.)
25 >
26 > Your error
27 > messages do look like a new bin/ikiwiki is using an old version of
28 > `IkiWiki.pm`.
29
30 > The thing to do is set `INSTALL_BASE` when you're installing ikiwiki from
31 > source. Like so:
32
33         cd ikiwiki
34         perl Makefile.PL INSTALL_BASE=$HOME PREFIX=
35         make install
36
37 > Then `$HOME/bin/ikiwiki` will have hardcoded into it to look
38 > for ikiwiki's perl modules in `$HOME/lib/perl5/`
39 > (This is documented in the README file by the way.) --[[Joey]] 
40
41 >> Ok, *perl Makefile.PL INSTALL_BASE=$HOME/bin PREFIX=* finally did it for me. I tried too many things with
42 >> these paths so I wasn't sure which actually worked. After that I did 
43 >> *$ ikiwiki --setup www.setup --wrappers --rebuild*. Somehow in this update mess I seem to have lost the user
44 >> accounts, maybe the --rebuild was too much.