installation of package ‘reticulate’ had non-zero exit status (Linux)

I am unable to install the reticulate package. Any suggestions? I am no expert. If this is related to the system, could you please tell me what message I should convey to the Linux admin? Thanks!

> install.packages("reticulate")
Installing package into ‘/home/user1002/R/x86_64-redhat-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
also installing the dependency ‘RcppTOML’

trying URL 'https://cran.rstudio.com/src/contrib/RcppTOML_0.1.7.tar.gz'
Content type 'application/x-gzip' length 42551 bytes (41 KB)
==================================================
downloaded 41 KB

trying URL 'https://cran.rstudio.com/src/contrib/reticulate_1.26.tar.gz'
Content type 'application/x-gzip' length 1549716 bytes (1.5 MB)
==================================================
downloaded 1.5 MB

* installing *source* package ‘RcppTOML’ ...
** package ‘RcppTOML’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
g++ -m64 -std=gnu++11 -I"/usr/include/R" -DNDEBUG -I../inst/include/ -DCPPTOML_USE_MAP -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -c RcppExports.cpp -o RcppExports.o
g++ -m64 -std=gnu++11 -I"/usr/include/R" -DNDEBUG -I../inst/include/ -DCPPTOML_USE_MAP -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -c parse.cpp -o parse.o
In file included from parse.cpp:28:0:
../inst/include/toml.hpp: In static member function ‘static std::string includize::toml_spec<char>::unescape_filename(const string&)’:
../inst/include/toml.hpp:29:66: error: no matching function for call to ‘regex_replace(const string&, std::regex, const char [2])’
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
../inst/include/toml.hpp:29:66: note: candidates are:
In file included from /usr/include/c++/4.8.2/regex:62:0,
                 from ../inst/include/includize.hpp:7,
                 from ../inst/include/toml.hpp:4,
                 from parse.cpp:28:
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template<class _Out_iter, class _Bi_iter, class _Rx_traits, class _Ch_type> _Out_iter std::regex_replace(_Out_iter, _Bi_iter, _Bi_iter, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
     regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
     ^
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note:   template argument deduction/substitution failed:
In file included from parse.cpp:28:0:
../inst/include/toml.hpp:29:66: note:   deduced conflicting types for parameter ‘_Bi_iter’ (‘std::basic_regex<char>’ and ‘const char*’)
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
In file included from /usr/include/c++/4.8.2/regex:62:0,
                 from ../inst/include/includize.hpp:7,
                 from ../inst/include/toml.hpp:4,
                 from parse.cpp:28:
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template<class _Rx_traits, class _Ch_type> std::basic_string<_Ch_type> std::regex_replace(const std::basic_string<_Ch_type>&, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
     regex_replace(const basic_string<_Ch_type>& __s,
     ^
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note:   template argument deduction/substitution failed:
In file included from parse.cpp:28:0:
../inst/include/toml.hpp:29:66: note:   mismatched types ‘const std::basic_string<_Ch_type>’ and ‘const char [2]’
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
../inst/include/toml.hpp:30:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
make: *** [parse.o] Error 1
ERROR: compilation failed for package ‘RcppTOML’
* removing ‘/home/user1002/R/x86_64-redhat-linux-gnu-library/3.6/RcppTOML’
Warning in install.packages :
  installation of package ‘RcppTOML’ had non-zero exit status
ERROR: dependency ‘RcppTOML’ is not available for package ‘reticulate’
* removing ‘/home/user1002/R/x86_64-redhat-linux-gnu-library/3.6/reticulate’
Warning in install.packages :
  installation of package ‘reticulate’ had non-zero exit status

The downloaded source packages are in
	‘/tmp/Rtmp7k6Wbu/downloaded_packages’

Try install.packages("RcppTOML") separately first, because that's the hang-up. See what happens and come back.

> install.packages("RcppTOML")
Installing package into ‘/home/user1002/R/x86_64-redhat-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/RcppTOML_0.1.7.tar.gz'
Content type 'application/x-gzip' length 42551 bytes (41 KB)
==================================================
downloaded 41 KB

* installing *source* package ‘RcppTOML’ ...
** package ‘RcppTOML’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
g++ -m64 -std=gnu++11 -I"/usr/include/R" -DNDEBUG -I../inst/include/ -DCPPTOML_USE_MAP -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -c RcppExports.cpp -o RcppExports.o
g++ -m64 -std=gnu++11 -I"/usr/include/R" -DNDEBUG -I../inst/include/ -DCPPTOML_USE_MAP -I"/usr/lib64/R/library/Rcpp/include" -I/usr/local/include  -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -c parse.cpp -o parse.o
In file included from parse.cpp:28:0:
../inst/include/toml.hpp: In static member function ‘static std::string includize::toml_spec<char>::unescape_filename(const string&)’:
../inst/include/toml.hpp:29:66: error: no matching function for call to ‘regex_replace(const string&, std::regex, const char [2])’
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
../inst/include/toml.hpp:29:66: note: candidates are:
In file included from /usr/include/c++/4.8.2/regex:62:0,
                 from ../inst/include/includize.hpp:7,
                 from ../inst/include/toml.hpp:4,
                 from parse.cpp:28:
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template<class _Out_iter, class _Bi_iter, class _Rx_traits, class _Ch_type> _Out_iter std::regex_replace(_Out_iter, _Bi_iter, _Bi_iter, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
     regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
     ^
/usr/include/c++/4.8.2/bits/regex.h:2162:5: note:   template argument deduction/substitution failed:
In file included from parse.cpp:28:0:
../inst/include/toml.hpp:29:66: note:   deduced conflicting types for parameter ‘_Bi_iter’ (‘std::basic_regex<char>’ and ‘const char*’)
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
In file included from /usr/include/c++/4.8.2/regex:62:0,
                 from ../inst/include/includize.hpp:7,
                 from ../inst/include/toml.hpp:4,
                 from parse.cpp:28:
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template<class _Rx_traits, class _Ch_type> std::basic_string<_Ch_type> std::regex_replace(const std::basic_string<_Ch_type>&, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
     regex_replace(const basic_string<_Ch_type>& __s,
     ^
/usr/include/c++/4.8.2/bits/regex.h:2182:5: note:   template argument deduction/substitution failed:
In file included from parse.cpp:28:0:
../inst/include/toml.hpp:29:66: note:   mismatched types ‘const std::basic_string<_Ch_type>’ and ‘const char [2]’
         return std::regex_replace(str, std::regex("\\\\\""), "\"");
                                                                  ^
../inst/include/toml.hpp:30:5: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
make: *** [parse.o] Error 1
ERROR: compilation failed for package ‘RcppTOML’
* removing ‘/home/user1002/R/x86_64-redhat-linux-gnu-library/3.6/RcppTOML’
Warning in install.packages :
  installation of package ‘RcppTOML’ had non-zero exit status

The downloaded source packages are in
	‘/tmp/Rtmp7k6Wbu/downloaded_packages’

I'll need to check this on a new machine later this evening. (I get all my CRAN packages in binary from r2u but that's only in Ubuntu.)

[later] I just installed on an M1 from source. That, and passing CRAN checks, is good evidence that there's no problem with the source code.

But it does appear that your C++ setup is broken.std::regex_replace is missing. It's been almost 20 years since I last used Redhat, so I'd suggest enlisting help to fix your version.

1 Like

This topic was automatically closed 42 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.