[R-sig-Fedora] tcktk problem with custom R 2.15.0 build on RHEL5

Marc Schwartz marc_schwartz at me.com
Tue May 22 17:09:21 CEST 2012


On May 22, 2012, at 9:48 AM, Tom Callaway wrote:

> On 05/22/2012 10:36 AM, Marc Schwartz wrote:
>> 
>> On May 22, 2012, at 8:28 AM, Bruce Pennypacker wrote:
>> 
>>> On 5/22/12 2:56 AM, peter dalgaard wrote:
>>>> As I read the error message, Tcl as such is working fine. However, the min function seems to be new in Tcl 8.5, and it is unclear which version is in RH 5.6. There's certainly no Tcl 8.14.3. (library(tcltk); tcl("info", "tclversion") will tell you which one is really loaded.) Google suggests that in earlier versions, there was an add-on called "TclX" that defined min and max functions (among other things, I presume). If it is in RH5.6, I would guess that you could load it with tclRequire("TclX") (or however it might be capiTaLized) before trying to do anything with sqldf().
>>> Ahh, thanks for the pointers.  Yes, I screwed up the version number of tcltk.  It's 8.4.13, not 8.14.3...  And I do see a separate tclx package in the RHEL5 repo, but after installing it and it's companion -devel package I'm still getting the same unknown function error.  Given that this is likely new in Tcl 8.5 I may just bite the bullet and install that then rebuild R.  But in any event you've given me some good information to hopefully get me in the right direction.  Thanks!
>> 
>> Thanks to Peter for the clarifications. There was something about the combination of issues that was bugging me. Looking more closely now at the SQL statement being executed it becomes a bit more clear.
>> 
>> Taking a peek at the SRPMS for RHEL 5:
>> 
>>  http://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/
>> 
>> it would appear that tcl 8.4 is the latest version available. Checking RHEL 6, it would appear that tcl is 8.5 there so they did upgrade 6's tcl installation.
>> 
>> This suggests that you will need to go upstream if you want 8.5 on RHEL 5 to satisfy the need for the 'min' function and you may need to be cautious in mixing versions/dependencies, etc.
> 
> Does R need tcl 8.5 now?
> 
> ~tom

Hi Tom,

Thanks for jumping in. My read, and I would ask Peter to comment as well, is that this requirement seems to be specific to the 'sqldf' package on CRAN and not to "base" R more generally. If Fedora/EPEL are including sqldf as a binary RPM for installation via yum, that might be a different scenario however.

If the min function is in fact in the tclx extension package to tcl 8.4 in RHEL 5 and Bruce follows Peter's follow up note on using tclRequire(), then that might satisfy the focused need by Bruce.

Additionally, reading the INSTALL file for sqldf:

  http://cran.r-project.org/web/packages/sqldf/INSTALL

it would seem that the tcl requirement is optional, due to its use by Gabor's gsubfn() function. There appears to be an option, which Bruce might want to try within R:

  options(gsubfn.engine = "R")

after loading the sqldf package. This would force the use of R code in place of tcl code. That might be a quick and dirty solution here.

Regards,

Marc



More information about the R-SIG-Fedora mailing list