*** No rule to make target `R'. Stop ** on installing R 2.9.0 on EL5
Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
*** No rule to make target `R'. Stop ** on installing R 2.9.0 on EL5
Hi,
I'm trying to install R 2.9.0 on EF5. I downloaded and untared the tar file and followed the README/INSTALL document. it says ./configure, make , make test to install
i did $ sudo ./configure --with-x=no and it ran well, when i try to run $sudo make, it checks lots of files and ends in saying *** No rule to make target `R'. Stop.
i thought its permission related so after running configure, i ran $sudo chmod -R 777 * from the base directory.
here is the uname -a o/p
ravind@qsrpdbdev01:~/rpms/R-2.9.0/R-2.9.0>uname -a
Linux dbdev01 2.6.18-128.el5 #1 SMP Wed Dec 17 11:41:38 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
This is the output of $ sudo make:
make[4]: Entering directory `/local/mnt/usr2/ravind/rpms/R-2.9.0/R-2.9.0/src/modules/vfonts'
make[4]: `vfonts.so' is up to date.
make[4]: Leaving directory `/local/mnt/usr2/ravind/rpms/R-2.9.0/R-2.9.0/src/modules/vfonts'
make[3]: Leaving directory `/local/mnt/usr2/ravind/rpms/R-2.9.0/R-2.9.0/src/modules/vfonts'
make[3]: Entering directory `/local/mnt/usr2/ravind'
make[3]: *** No rule to make target `R'. Stop.
make[3]: Leaving directory `/local/mnt/usr2/ravind'
make[2]: *** [R] Error 1
make[2]: Leaving directory `/local/mnt/usr2/ravind/rpms/R-2.9.0/R-2.9.0/src/modules'
make[1]: *** [R] Error 1
make[1]: Leaving directory `/local/mnt/usr2/ravind/rpms/R-2.9.0/R-2.9.0/src'
make: *** [R] Error 1
Use the EL5 RPMs provided by the R Project. There are x86_64 packages available.
You haven't posted enough information to diagnose what when wrong. I would question that the configure script completed successfully though.
BTW, you don't need to sudo to execute the configure script, make or make test. It's a bad habit that I wouldn't recommend you getting into. You only need to sudo to install the package system-wide.
i have been trying to find the RPM ver 2.9.0 . the rpm i found for EL5 x86_64 package is ver 2.9.1. i got the tar from the old repository , wish i could find rpm !
Here's one --> http://centos.karan.org/el5/extras/testing/x86_64/RPMS/ I'm not an RPM user, so I don't know whether it's something you'd want to use. What's wrong with the 2.9.1 version? I'm still using 2.5.1 and don't keep up with the change logs, so I wouldn't know if there was some major change such that 2.9.1 would be that different from 2.9.0.
i somehow installed R if i type $R i can see version 2.9.0 and the R prompt , but if i try to import rpy from python, it says "ImportError: No module named _rpy2090" (
i think there should be file named rpy2090.so, i tried to locate it but couldnt find anywhere. should it be created as part of R installation ? or am i missing anything ?
thanks for the pointer but its ending up in another issue . INSTALL.UNIX file says "<go to the R source directory>
make distclean", i went to /usr/lib64/R and executed the same make command but fails saying *** no rule to make target 'distclea' Stop ..i do see bin, etc, include folders under /usr/lib64/R , isn't it the R source directory ?
~/install/rpy/rpy-1.0.3>python setup.py install
RHOMES= []
DEBUG= True
Setting RHOMES to ['/usr/local/lib64/R']
### Using R verion 2.9.0 installed at /usr/local/lib64/R ###
RHOME= /usr/local/lib64/R
copying src/rpymodule.c -> src/rpymodule2090.c
copying src/R_eval.c -> src/R_eval2090.c
copying src/io.c -> src/io2090.c
running install
running build
running build_py
running build_ext
building '_rpy2090' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DRPY_SHNAME=_rpy2090 -DINIT_RPY=init_rpy2090 -UPRE_2_2 -UWITH_NUMERIC -I/usr/local/lib64/R/include -Isrc -I/usr/share/R/include -I/local/mnt/qsrp/python/include/python2.5 -c src/rpymodule2090.c -o build/temp.linux-x86_64-2.5/src/rpymodule2090.o -shared
In file included from src/RPy.h:57,
from src/rpymodule2090.c:51:
/usr/local/lib64/R/include/R_ext/Rdynload.h:26: warning: function declaration isn’t a prototype
In file included from src/rpymodule2090.c:51:
src/RPy.h:77:51: error: Rdevices.h: No such file or directory
src/rpymodule2090.c:1565: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1568: warning: ‘intargfunc’ is deprecated
src/rpymodule2090.c:1568: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1569: warning: ‘intintargfunc’ is deprecated
src/rpymodule2090.c:1569: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1570: warning: initialization from incompatible pointer type
src/rpymodule2090.c: In function ‘r_finalize’:
src/rpymodule2090.c:1782: warning: implicit declaration of function ‘Rf_KillAllDevices’
src/rpymodule2090.c:1788: warning: implicit declaration of function ‘R_CleanTempDir’
src/rpymodule2090.c:1776: warning: unused variable ‘tmpdir’
src/rpymodule2090.c:1775: warning: unused variable ‘buf’
error: command 'gcc' failed with exit status 1
No, the R source directory is not /usr/lib64/R. The R source directory is the directory created when you unpack the R tarball. You only need to follow the step where you "go to the R Source directory" if you need to rebuild R with shared libraries. If you used an RPM to install R, I bet you have a shared library. The shared library is call libR.so. See if you have that library installed.
Secondly, do you really have /usr/lib64/R and /usr/local/lib64/R? Did you install R from source as you were originally trying or did you use the RPM? Given the reason for the rpy failure, I am presuming you used the RPM.
Its clear what the problem is with the rpy install
Code:
src/RPy.h:77:51: error: Rdevices.h: No such file or directory
The Rdevices.h file would be provided by the R-devel RPM that you can find at the end of the link I provided in an earlier post. Install the R-devel RPM and try the rpy install again.
Also, wrap your console output in code tags. Its formats correctly and is easier to read.
yes , i used rpm package and i can find libR.so , so it means i have installed R 2.9.0 as shared library and i dont have to worry about the steps mentioned in rpy installation doc ?
<go to the R source directory>
make distclean
./configure --enable-R-shlib
make
make install
running ldconfig, is erroring out. i located the .so files and created links for the same inside /sbin but i still see the same output as follows
Quote:
:/sbin > sudo ./ldconfig
./ldconfig: /usr/lib64/mysql/libmysqlclient.so.15 is not a symbolic link
./ldconfig: /usr/lib64/mysql/libmysqlclient_r.so.15 is not a symbolic link
./ldconfig: /lib64/libpcre.so.0 is not a symbolic link
i did the step b mentioned in the installation doc ...
created links for the same inside /sbin but i still see the same output as follows
OK, you're polluting your system! Delete the link in /usr/lib and the links you created in /sbin.
I'm guessing the RPM installed R into /usr/lib64/R. What is the version of the R installed in /usr/local/lib64/R? Execute the following to find out
Code:
/usr/local/lib64/R/bin/R
Did you execute make install when you were trying to install from source? If it were me, I would uninstall all the R stuff and then start over with just the RPMs.
sed -i 's/<Rdevices.h>/<Rembedded.h>/' src/RPy.h
sudo python setup.py install
Rdevices.h is no longer installed as part of the R installation. The other option, also mentioned in the above thread, is to copy Rdevices.h from the R source to /usr/lib64/R/include, then build rpy. However, this results in many more errors that require many more internal R headers to be installed.
This is why rpy2 is recommended for use with versions of R >= 2.8.0.
maybe i sound dumb to give you an overview. we were using python 2.4 and yum was working on it, i installed earlier version of R using yum install. later we upgraded the system to python 2.5 and i believe yum wont work on python 2.5. so to install R 2.9.0, i uninstalled all the R related modules using rpm -e <module-name> and i installed R 2.9.0 rpy , rpm -i <module-name>
to answer your questions :
What is the version of the R installed in /usr/local/lib64/R?
Quote:
ravind@qsrpdbdev01:/usr/local/lib64/R/bin>R
Fatal error: unable to open the base package
but if i try /usr/bin/R its getting proper R version.
R version 2.9.0 (2009-04-17)
Copyright (C) 2009 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
....
....
> q()
Save workspace image? [y/n/c]: n
i tried which R
Quote:
ravind@qsrpdbdev01:/usr/local/lib64/R/bin>which R
/usr/local/bin/R
ravind@qsrpdbdev01:/usr/local/lib64/R/bin>/usr/local/bin/R
Fatal error: unable to open the base package
ravind@qsrpdbdev01:/usr/local/lib64/R/bin>
by the way, i tried
Quote:
sed -i 's/<Rdevices.h>/<Rembedded.h>/' src/RPy.h
sudo python setup.py install
and it seem to worked. it took R from /usr/local/lib64/R
Quote:
ravind@qsrpdbdev01:~/install/rpy/rpy-1.0.3>sudo python setup.py install
RHOMES= []
DEBUG= True
Setting RHOMES to ['/usr/local/lib64/R']
### Using R verion 2.9.0 installed at /usr/local/lib64/R ###
RHOME= /usr/local/lib64/R
copying src/rpymodule.c -> src/rpymodule2090.c
copying src/R_eval.c -> src/R_eval2090.c
copying src/io.c -> src/io2090.c
running install
running build
running build_py
running build_ext
building '_rpy2090' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DRPY_SHNAME=_rpy2090 -DINIT_RPY=init_rpy2090 -UPRE_2_2 -UWITH_NUMERIC -I/usr/local/lib64/R/include -Isrc -I/usr/share/R/include -I/local/mnt/qsrp/python/include/python2.5 -c src/rpymodule2090.c -o build/temp.linux-x86_64-2.5/src/rpymodule2090.o -shared
In file included from src/RPy.h:57,
from src/rpymodule2090.c:51:
/usr/local/lib64/R/include/R_ext/Rdynload.h:26: warning: function declaration isn’t a prototype
src/rpymodule2090.c:1565: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1568: warning: ‘intargfunc’ is deprecated
src/rpymodule2090.c:1568: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1569: warning: ‘intintargfunc’ is deprecated
src/rpymodule2090.c:1569: warning: initialization from incompatible pointer type
src/rpymodule2090.c:1570: warning: initialization from incompatible pointer type
src/rpymodule2090.c: In function ‘r_finalize’:
src/rpymodule2090.c:1776: warning: unused variable ‘tmpdir’
src/rpymodule2090.c:1775: warning: unused variable ‘buf’
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DRPY_SHNAME=_rpy2090 -DINIT_RPY=init_rpy2090 -UPRE_2_2 -UWITH_NUMERIC -I/usr/local/lib64/R/include -Isrc -I/usr/share/R/include -I/local/mnt/qsrp/python/include/python2.5 -c src/R_eval2090.c -o build/temp.linux-x86_64-2.5/src/R_eval2090.o -shared
In file included from src/RPy.h:57,
from src/R_eval2090.c:63:
/usr/local/lib64/R/include/R_ext/Rdynload.h:26: warning: function declaration isn’t a prototype
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DRPY_SHNAME=_rpy2090 -DINIT_RPY=init_rpy2090 -UPRE_2_2 -UWITH_NUMERIC -I/usr/local/lib64/R/include -Isrc -I/usr/share/R/include -I/local/mnt/qsrp/python/include/python2.5 -c src/io2090.c -o build/temp.linux-x86_64-2.5/src/io2090.o -shared
In file included from src/RPy.h:57,
from src/io2090.c:43:
/usr/local/lib64/R/include/R_ext/Rdynload.h:26: warning: function declaration isn’t a prototype
src/io2090.c:62: warning: function declaration isn’t a prototype
src/io2090.c: In function ‘RPy_ReadConsole’:
src/io2090.c:133: warning: pointer targets in passing argument 1 of ‘snprintf’ differ in signedness
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DRPY_SHNAME=_rpy2090 -DINIT_RPY=init_rpy2090 -UPRE_2_2 -UWITH_NUMERIC -I/usr/local/lib64/R/include -Isrc -I/usr/share/R/include -I/local/mnt/qsrp/python/include/python2.5 -c src/setenv.c -o build/temp.linux-x86_64-2.5/src/setenv.o -shared
gcc -pthread -shared build/temp.linux-x86_64-2.5/src/rpymodule2090.o build/temp.linux-x86_64-2.5/src/R_eval2090.o build/temp.linux-x86_64-2.5/src/io2090.o build/temp.linux-x86_64-2.5/src/setenv.o -L/usr/local/lib64/R/bin -L/usr/local/lib64/R/lib -Wl,-R/usr/local/lib64/R/bin -Wl,-R/usr/local/lib64/R/lib -lR -lRlapack -o build/lib.linux-x86_64-2.5/_rpy2090.so
running install_lib
copying build/lib.linux-x86_64-2.5/_rpy2090.so -> /local/mnt/qsrp/python/lib/python2.5/site-packages
copying build/lib.linux-x86_64-2.5/rpy_options.py -> /local/mnt/qsrp/python/lib/python2.5/site-packages
copying build/lib.linux-x86_64-2.5/rpy_wintools.py -> /local/mnt/qsrp/python/lib/python2.5/site-packages
byte-compiling /local/mnt/qsrp/python/lib/python2.5/site-packages/rpy_options.py to rpy_options.pyc
byte-compiling /local/mnt/qsrp/python/lib/python2.5/site-packages/rpy.py to rpy.pyc
byte-compiling /local/mnt/qsrp/python/lib/python2.5/site-packages/rpy_wintools.py to rpy_wintools.pyc
running install_egg_info
Writing /local/mnt/qsrp/python/lib/python2.5/site-packages/rpy-1.0.3-py2.5.egg-info
out of desperation, i added "/usr/bin" to the PATH in ~/.bash_proflle file of my user
PATH=/usr/bin:/local/mnt/qsrp/python/bin:
now if i type R, i see R prompt and version 2.9.0
but if i try import rpy, i see "Segmentation fault"
You built rpy against the R in /usr/local, but when you import the module, it says RHOME is /usr/lib64/R! You've got a different version of rpy than the one you built against the R in /usr/local. I think you also have another python installed in /usr/bin. When you added /usr/bin to your PATH variable, that is the version of python you used.
You said the system originally had ver 2.4 and then was upgraded to ver 2.5. Which version is in /usr/bin and which version is in /local/mnt/qsrp/python/bin?
Sounds like you've got your system boogered up pretty good. Looks like you've got a working R installed at /usr/lib64/R and a broken one installed at /usr/local/lib64/R. I'll ask again, did you execute make install when you were trying to install from source? I think you did and it installed a half-baked R in /usr/local.
The PATH=/usr/bin:/local/mnt/qsrp/python/bin: in your bash_profile, causes the PATH variable to be reset with only those paths. A better approach would be PATH=/local/mnt/qsrp/python/bin:$PATH. This will ensure the python you've installed in the /local hierarchy is found and used before one that may be installed in a normal place like /usr/bin.
First, I recommend you change that line and then source your bash_profile. Of course, /local is an odd directory to have in your root. To me it looks like something else you've added in desperation.
Then I would recommend you uninstall the borked R in /usr/local. If this was installed by a make install on your part, you can simply delete the entire /usr/local/lib64/R directory and the files /usr/local/lib64/libR.so, /usr/local/lib64/libRmath*, /usr/local/bin/R, /usr/local/bin/Rscript, /usr/local/lib64/pkgconfig/libR.pc, and /usr/local/lib64/pkgconfig/libRmath.pc. Some or all of these files may not exist if this was caused by an aborted make install.
Also delete the link in /usr/lib and the links you created in /sbin that you mentioned creating earlier. After that, rebuild rpy and make sure it builds against the R in /usr/lib64/R.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.