Hi Johan,
On 6 June 2023 at 18:55, Johan Andresen wrote: | Hi r-sig-debian, | | I feel lucky to have found out that `/doc/KEYWORDS.db` is in `/usr/share/R/`, | not in `usr/lib/R/` where rpy2 in python apparently looks for it when | trying to search help in R from the python environment. it returned this | error: `cannot open file '/usr/lib/R/doc/KEYWORDS.db': No such file or | directory`. | | What to do now? | - is this a problem with rpy2 looking for `/doc/KEYWORDS.db` that should | not be in `usr/lib/R/`? -> *edit its script to point at the correct path?* Yes, in essence. The longer story is that for (many, MANY) years we followed _Debian_ Policy where architecture-dependent files are in /usr/lib and architecture-indepdendent files are in /usr/share. As such we (ie Debian) differ from a "plain vanilla from source" installation. But then all (or most) other distros do too. It is the right (and/or was when multi-arch ie 32 and 64 bit was more common). Even R itself recently patched another accessor because the right way to do this is to expand the R.home() function rather than to append to the environment variable R_HOME (or RHOME). To show, on my system: > file.path( R.home("doc"), "KEYWORDS.db" ) [1] "/usr/share/R/doc/KEYWORDS.db" > So ideally rpy2 to should try to figure out where doc/ is for R and then append KEYWORDS.db. I am CCing Laurent now. | - or is it a problem with R for debian bullseye putting `/doc/KEYWORDS.db` | in '/usr/share/R/doc/' where it should not be? -> why does it do that? | Should it be this way? Can I change it? It was change brought to me (as Debian maintainer) by other Debian developers / Debian Policy. As such it is pretty irreversible. But "R known" and access via e.g. R.home() is the right way. Also not that /etc/R/Makeconf has, inter alia '--datadir=/usr/share/R/share' and include $(R_SHARE_DIR)/make/vars.mk MKINSTALLDIRS = "$(R_HOME)/bin/mkinstalldirs" R_XTRA_CPPFLAGS = -I"$(R_INCLUDE_DIR)" -DNDEB so R does have the notion of different directories just fine. Also: > envs <- Sys.getenv() > envs[grepl("^R_", names(envs))] R_ARCH R_BROWSER xdg-open R_BZIPCMD /bin/bzip2 R_DOC_DIR /usr/share/R/doc R_GZIPCMD /bin/gzip -n R_HOME /usr/lib/R R_INCLUDE_DIR /usr/share/R/include R_LIBS_SITE /usr/local/lib/R/site-library:/usr/lib/R/site-library R_LIBS_USER R_MAX_NUM_DLLS 500 R_PAPERSIZE letter R_PAPERSIZE_USER letter R_PDFVIEWER /usr/bin/xdg-open R_PLATFORM x86_64-pc-linux-gnu R_PRINTCMD /usr/bin/lpr R_RD4PDF times,inconsolata,hyper R_SESSION_TMPDIR /tmp/RtmpoU2ifO R_SHARE_DIR /usr/share/R/share R_STRIP_SHARED_LIB strip --strip-unneeded R_STRIP_STATIC_LIB strip --strip-debug R_SYSTEM_ABI linux,gcc,gxx,gfortran,gfortran R_TEXI2DVICMD /usr/bin/texi2dvi R_UNZIPCMD /usr/bin/unzip R_ZIPCMD /usr/bin/zip > | To be sure, searching help in RStudio and `help('help`) in R from the | terminal both worked. I installed both the way you suggest on lib.stat.cmu/R | /CRAN/bin/linux/debian/. | | See also https://github.com/rpy2/rpy2/issues/1033 Oh, nice, I should link back to this reply once it hits the mailing list archive. | Johan | with his first question on a, not just thus, mail list Thanks for the detailed and high-quality post. Keep'em coming! Dirk -- dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ R-SIG-Debian mailing list R-SIG-Debian@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-debian