[
https://issues.apache.org/jira/browse/MODPYTHON-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12635386#action_12635386
]
Josh Kupershmidt commented on MODPYTHON-252:
--------------------------------------------
Graham, thanks for the quick response. I looked into your first suggestion. The
note about separating make install_dso and make install_py_lib was very
helpful, however I do have some troubles to point out that I'm still having to
work around:
1.) make install_dso works exactly the way I intended (mod_python.so gets put
into /home/user/apache/2.0.63/modules , like I want)
2.) make install_py_lib is a little trickier: AFAICT, setting DESTDIR to
/home/user/libraries/ causes ./dest/Makefile.in to pick up this environment
variable, and pass the argument "--root $(DESTDIR)" to setup.py install , as in
the last line in the snippet of Makefile.in that I posted.
It appears that --root and --prefix are slightly different. From the output of
running python setup.py --help install:
Options for 'install' command:
--prefix installation prefix
[snip]
--root install everything relative to this alternate root
directory
When I manually force Makefile.in to use --prefix=/home/user/libraries/ , I get
the following directory structure created:
/home/user/libraries/lib/python2.5/site-packages/mod_python/
which is what I want. However, by doing as you suggest, namely:
DESTDIR=/home/user/libraries/
make install_py_lib
I get the Python libraries installed to a different subdirectory of
/home/user/libraries. The install creates and populates:
/home/user/libraries/directory/to/system-wide/install/of/python/lib/python2.5/site-packages/mod_python/
This install proceeds successfully, but it's not exactly what I want.
3.) About using --with-apxs instead of --with-apache.. I haven't a clue why,
but --with-apxs doesn't seem to be working for me. When I run ./configure with
the following flags:
./configure --prefix=/home/user/apache/2.0.63/modules/
--with-python=/directory/to/system-wide/install/of/python
--with-apxs=/home/user/apache/2.0.63/bin/
(and other variations on the apxs directory), I get the following bailout at
the end of ./configure:
configure: checking whether apxs is available...
checking for apachectl... no
checking for apache2ctl... no
checking for apachectl2... no
configure: error: could not find Apache installation
I modified $PATH like this:
export PATH="/home/user/apache/2.0.63/bin/:$PATH"
and then ran ./configure with the same arguments, and it went fine -- so it
appears the ./configure script just wasn't picking up the --with-apxs
specification properly. Using --with-apache=/home/user/apache/2.0.63/ also
works fine, both with and without the --with-apxs argument.
Thanks again for your help.
Josh
> mod_python install forces Python libraries into system-wide install directory
> -----------------------------------------------------------------------------
>
> Key: MODPYTHON-252
> URL: https://issues.apache.org/jira/browse/MODPYTHON-252
> Project: mod_python
> Issue Type: Bug
> Components: core
> Affects Versions: 3.3.1
> Environment: Tested on Linux, with mod_python 3.3.1
> Reporter: Josh Kupershmidt
> Priority: Minor
> Fix For: 3.3.1
>
>
> I need to have mod_python installed as an unprivileged user. I have Apache
> installed as an unprivileged user, to directory
> /home/user/apache/2.0.63/...
> And I need mod_python.so installed to
> /home/user/apache/2.0.63/modules
> The arguments I pass to ./configure are:
> ./configure --with-apache=/home/user/apache/2.0.63/
> --prefix=/home/user/apache/2.0.63/modules/
> --with-python=/directory/to/system-wide/install/of/python
> --with-apxs=/home/user/apache/2.0.63/bin
> This all works fine for installing mod_python.so into Apache's modules
> directory. However, the Python libraries are being forced into
> /directory/to/system-wide/install/of/python/lib/python2.5/site-packages. I
> really want these Python libraries installed into /home/user/libraries/
> I've tracked the problem, and my somewhat kludgy workaround, down to
> ./dist/Makefile.in. The following lines in ./dist/Makefile.in note that root
> privileges may be required:
> # this may require root priviledges
> install_py_lib: mod_python src
> @cd src; $(MAKE) psp_parser.c
> if test -z "$(DESTDIR)" ; then \
> export LDFLAGS="-L$(PYTHON_LIBDIR)" ; $(PYTHON_BIN) setup.py
> install --optimize 2 --force ; \
> else \
> export LDFLAGS="-L$(PYTHON_LIBDIR)" ; $(PYTHON_BIN) setup.py
> install --optimize 2 --force --root $(DESTDIR) ; \
> To get around the requirement for installing the Python libraries
> system-wide, I simply added --prefix=/home/user/libraries/ after "setup.py
> install" in the above lines as a workaround.
> Note that the $DESTDIR variable in the above lines does not do what I want: I
> tried manually setting DESTDIR, but it forced the entire mod_python install
> (of mod_python.so, as well as the Python libraries) into subdirectories of
> /home/user/libraries. It also screwed up any other installs (e.g. httpd) done
> at the same time which also depend on the DESTDIR environment variable, if
> exported globally.
> I recommend a ./configure flag be added to allow the user to specify which
> directory the mod_python Python libraries should be installed into, and
> perhaps a note about setting PYTHONPATH appropriately.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.