[Rd] Cannot make 3 different R installations for 3 different valgrind-instrumentation levels
Simon Urbanek
simon.urbanek at r-project.org
Wed Aug 26 17:23:32 CEST 2009
On Aug 26, 2009, at 10:43 , pleydell at supagro.inra.fr wrote:
>
>> ^^-- this is really bad form - you should never build/compile
>> software as root. The location of the build directory is
>> irrelevant so use /tmp or you home or something like that ...
>> (usualy the fastest disk ;))
>
> OK, thanks for the tip, although I don't understand the configure -
> make -
> install cycle enough to see how compiling as non-root and installing
> as root is
> any safer than just doing both as root.
>
configure and make are compiling the product which means compiling and
running a lot of various code. Since that whole process does various
probes and is inherently very complex you don't want to expose your
entire system to it (in the process files are deleted etc. so a bug in
it could wipe your system for example ...). There is no need to run it
as root, because you don't need any special privileges to compile it.
In addition, the root environment is usually different from the user
environment so it's in general easier to setup your user environment
if needed (and even temporarily).
The only part that needs root access potentially is installation if
you decide to install to a system-wide location. That part is just
copying so it in generally safe to run as root (in fact even that can
be used in a more safe way without root using DESTDIR instead but
that's for more paranoid people like me ;)).
>> Why would you do all that?
>
> Well, when you've been trying for hours to get something to work and
> it doesn't
> and there are no workable examples on the net... is it too much to
> ask that a
> workable example be placed in the documentation?
Well, you're using an advanced feature (multi-arch support) in a way
that it was not designed for, so you better really know what you're
doing ;). But even so - the example from the docs (slightly
abbreviated by removing the compiler-specific args) says:
tar fxz R-2.9.2.tar.gz
mkdir R-ppc
cd R-ppc
../R-2.9.2/configure r_arch=ppc ...
make
make install
cd ..
# Depending on your permissions, you may need to run sudo make install.
mkdir R-i386
cd R-i386
../R-2.9.2/configure r_arch=i386 ...
make
make install
cd ..
That is known to work - replace ppc/i386 by your vg names and you're
all set...
> Finally I have a script that
> has worked for me (writen before I saw Simon's comment about root)
>
> cd /usr/local/lib
> umask 022
> mkdir R-2.9.2
> mkdir build_vg0
> mkdir build_vg1
> mkdir build_vg2
> cd /usr/local/lib/build_vg2
> sudo /usr/local/src/R-2.9.2/configure --enable-memory-profiling
> --with-valgrind-instrumentation=2 r_arch=vg2
> sudo make
> sudo make prefix=/usr/local/lib/R-2.9.2 install
> cd /usr/local/lib/build_vg1
> sudo /usr/local/src/R-2.9.2/configure --enable-memory-profiling
> --with-valgrind-instrumentation=1 r_arch=vg1
> sudo make
> sudo make prefix=/usr/local/lib/R-2.9.2 install
> cd /usr/local/lib/build_vg0
> sudo /usr/local/src/R-2.9.2/configure --enable-memory-profiling
> --with-valgrind-instrumentation=0 r_arch=vg0
> sudo make
> sudo make latex
> sudo make dvi
> sudo make pdf
> sudo make info
> sudo make help
> sudo make html
> sudo make prefix=/usr/local/lib/R-2.9.2 install
> sudo cp /usr/local/lib/R-2.9.2/bin/R /usr/local/bin/R
>
> IMHO, if the surpless newbie chaff was whittled off this example
> might be useful
> to others in the official documentation.
>
I still don't understand why you are running all the doc makes at the
end and why you set a prefix and then copy things manually ...
Cheers,
Simon
More information about the R-devel
mailing list