Skip to content

libR.so error to install R-3.5.0 in Ubuntu 18.04

5 messages · Yifang Tan, Ista Zahn, Dirk Eddelbuettel

#
I tried to install R-3.5.0 from source on my Ubuntu 18.04, and met this
problem:

../../lib/libR.so: undefined reference to 'ucol_strcollIter_58'
../../lib/libR.so: undefined reference to 'u_getVersion_58'
../../lib/libR.so: undefined reference to 'uloc_setDefault_58'
../../lib/libR.so: undefined reference to 'ucol_close_58'
../../lib/libR.so: undefined reference to 'ucol_getLocaleByType_58'
../../lib/libR.so: undefined reference to 'ucol_setAttribute_58'
../../lib/libR.so: undefined reference to 'u_versionToString_58'
../../lib/libR.so: undefined reference to 'ucol_open_58'
../../lib/libR.so: undefined reference to 'uiter_setUTF8_58'
../../lib/libR.so: undefined reference to 'ucol_setStrength_58'

# collect2: error: ld returned 1 exit status
# Makefile:145: recipe for target 'R.bin' failed

What I did to configure is according to the INSTALL instruction with the
source code except --with-cairo (which seems un-necessary):

./configure --prefix=/opt/R/3.5.0 --enable-R-shlib --with-blas
--with-lapack --with-cairo

###################################################################################
# R is now configured for x86_64-pc-linux-gnu
#
#   Source directory:          .
#   Installation directory:    /opt/R/3.5.0
#
#   C compiler:                gcc  -g -O2
#   Fortran 77 compiler:       f95  -g -O2
#
#   Default C++ compiler:      g++   -g -O2
#   C++98 compiler:            g++ -std=gnu++98 -g -O2
#   C++11 compiler:            g++ -std=gnu++11 -g -O2
#   C++14 compiler:            g++ -std=gnu++14 -g -O2
#   C++17 compiler:            g++ -std=gnu++17 -g -O2
#   Fortran 90/95 compiler:    gfortran -g -O2
#   Obj-C compiler:
#
#   Interfaces supported:      X11, tcltk
#   External libraries:        readline, BLAS(generic), LAPACK(generic),
curl
#   Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo, ICU
#   Options enabled:           shared R library, R profiling
#
#   Capabilities skipped:
#   Options not enabled:       shared BLAS, memory profiling
#
#   Recommended packages:      yes
#
##################################################################################################
The above error came from make by sudo make.

There are some threads about the options --enable-R-shlib, but the problem
stayed with the option turned off. Without --with-cairo option could not
resolve the problem either.
After several hours of search, it seems to me it is related to the
compiling process, but I'm not sure which library is missing, or which
options should be used to compile/link in my Ubuntu 18.04.

Thanks a lot!

Yifang
#
You can make sure you have all packages required to build with

apt-get build-dep r-base

Note that you shouldn't use sudo to make, just the usual

./configure
make
sudo make install

Best,
Ista
On Wed, Jun 20, 2018 at 6:12 PM, Yifang Tan <yifangt at gmail.com> wrote:
#
On 20 June 2018 at 16:12, Yifang Tan wrote:
| I tried to install R-3.5.0 from source on my Ubuntu 18.04,

Why?

The binaries we offer via CRAN are _excellent_. I maintain the underlying
Debian source and use them myself on several machines, and have for years.

Just read   https://cloud.r-project.org/bin/linux/ubuntu/README.html    and
follow the instructions.

Otherwise ...

| and met this problem:
| 
| ../../lib/libR.so: undefined reference to 'ucol_strcollIter_58'
| ../../lib/libR.so: undefined reference to 'u_getVersion_58'
| ../../lib/libR.so: undefined reference to 'uloc_setDefault_58'
| ../../lib/libR.so: undefined reference to 'ucol_close_58'
| ../../lib/libR.so: undefined reference to 'ucol_getLocaleByType_58'
| ../../lib/libR.so: undefined reference to 'ucol_setAttribute_58'
| ../../lib/libR.so: undefined reference to 'u_versionToString_58'
| ../../lib/libR.so: undefined reference to 'ucol_open_58'
| ../../lib/libR.so: undefined reference to 'uiter_setUTF8_58'
| ../../lib/libR.so: undefined reference to 'ucol_setStrength_58'
| 
| # collect2: error: ld returned 1 exit status
| # Makefile:145: recipe for target 'R.bin' failed

You somehow messed something up with libicu* -- looks like you built again
version 58 but you don't have it (not sure how).
| 
| What I did to configure is according to the INSTALL instruction with the
| source code except --with-cairo (which seems un-necessary):

Those are generic instructions so you could ask on r-devel :)  Seriously,
nothing in the R Inst + Admin manual is specific to Debian or Ubuntu.

The rest below looks fine. Your problem is a different one, somehow. But as I
said, why not do what I a bazillion other people do and just use the binary?

Otherwise, you can see my (Debian) builds files here

   https://salsa.debian.org/edd/r-base/tree/master/debian/rules
   https://salsa.debian.org/edd/r-base/tree/master/debian/control
   
and they should carry over easily to 18.04, and with possible adjustments to
16.04, 14.04 and others. I don't think Michael's sources are in git though
(hint, hint, ...)

Dirk
 
| ./configure --prefix=/opt/R/3.5.0 --enable-R-shlib --with-blas
| --with-lapack --with-cairo
| 
| ###################################################################################
| # R is now configured for x86_64-pc-linux-gnu
| #
| #   Source directory:          .
| #   Installation directory:    /opt/R/3.5.0
| #
| #   C compiler:                gcc  -g -O2
| #   Fortran 77 compiler:       f95  -g -O2
| #
| #   Default C++ compiler:      g++   -g -O2
| #   C++98 compiler:            g++ -std=gnu++98 -g -O2
| #   C++11 compiler:            g++ -std=gnu++11 -g -O2
| #   C++14 compiler:            g++ -std=gnu++14 -g -O2
| #   C++17 compiler:            g++ -std=gnu++17 -g -O2
| #   Fortran 90/95 compiler:    gfortran -g -O2
| #   Obj-C compiler:
| #
| #   Interfaces supported:      X11, tcltk
| #   External libraries:        readline, BLAS(generic), LAPACK(generic),
| curl
| #   Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo, ICU
| #   Options enabled:           shared R library, R profiling
| #
| #   Capabilities skipped:
| #   Options not enabled:       shared BLAS, memory profiling
| #
| #   Recommended packages:      yes
| #
| ##################################################################################################
| The above error came from make by sudo make.
| 
| There are some threads about the options --enable-R-shlib, but the problem
| stayed with the option turned off. Without --with-cairo option could not
| resolve the problem either.
| After several hours of search, it seems to me it is related to the
| compiling process, but I'm not sure which library is missing, or which
| options should be used to compile/link in my Ubuntu 18.04.
| 
| Thanks a lot!
| 
| Yifang
| 
| 	[[alternative HTML version deleted]]
| 
| _______________________________________________
| R-SIG-Debian mailing list
| R-SIG-Debian at r-project.org
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian
#
Thanks Dirk!

I wrongly thought the R-3.5.0 Binary was NOT default R for Ubuntu 18.04 as
some of my R packages requires updated R version.
Anyway, with your suggestion all went well like charm. Thank you very much!

Back to the problem, actually I saw different versions of libicu* such as:

/home/yifang/anaconda3/lib/libicudata.so.58
/home/yifang/anaconda3/pkgs/icu-58.2-h9c2bf20_1/lib/libicuio.so.58
/opt/anaconda3/lib/libicuio.so.58
/opt/anaconda3/pkgs/icu-58.2-h9c2bf20_1/lib/libicudata.so.58
/usr/lib/rstudio/bin/libicudata.so.55
/usr/lib/x86_64-linux-gnu/libicudata.so.60
/usr/share/doc/libiculx60
/var/lib/dpkg/info/libicu60:amd64.shlibs

I had thought the anaconda3 library (version 58) and rstudio (using version
55) conflict with shared libicu* version 60, exactly as you pointed out.
How to resolve my problem for educational purpose?
Appreciate your insights.

Best,

Yifang
On Wed, Jun 20, 2018 at 4:35 PM, Dirk Eddelbuettel <edd at debian.org> wrote:

            

  
  
#
On 21 June 2018 at 09:59, Yifang Tan wrote:
| Thanks Dirk!
| 
| I wrongly thought the R-3.5.0 Binary was NOT default R for Ubuntu 18.04 as
| some of my R packages requires updated R version.
| Anyway, with your suggestion all went well like charm. Thank you very much!

Awesome!!
 
| Back to the problem, actually I saw different versions of libicu* such as:
| 
| /home/yifang/anaconda3/lib/libicudata.so.58
| /home/yifang/anaconda3/pkgs/icu-58.2-h9c2bf20_1/lib/libicuio.so.58
| /opt/anaconda3/lib/libicuio.so.58
| /opt/anaconda3/pkgs/icu-58.2-h9c2bf20_1/lib/libicudata.so.58
| /usr/lib/rstudio/bin/libicudata.so.55
| /usr/lib/x86_64-linux-gnu/libicudata.so.60
| /usr/share/doc/libiculx60
| /var/lib/dpkg/info/libicu60:amd64.shlibs
| 
| I had thought the anaconda3 library (version 58) and rstudio (using version
| 55) conflict with shared libicu* version 60, exactly as you pointed out.
| How to resolve my problem for educational purpose?
| Appreciate your insights.

RStudio knows what they are doing; their version will not spill.  Anaconda I
am less sure -- my general recommendation is to keep Anaconda away and out of
your path.  At a minimum you can build in a more restrictive environment (say
a Docker container, or a chroot as Debian does) to avoid the spills.

Dirk

| 
| Best,
| 
| Yifang
|
| On Wed, Jun 20, 2018 at 4:35 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
| 
| >
| > On 20 June 2018 at 16:12, Yifang Tan wrote:
| > | I tried to install R-3.5.0 from source on my Ubuntu 18.04,
| >
| > Why?
| >
| > The binaries we offer via CRAN are _excellent_. I maintain the underlying
| > Debian source and use them myself on several machines, and have for years.
| >
| > Just read   https://cloud.r-project.org/bin/linux/ubuntu/README.html
| > and
| > follow the instructions.
| >
| > Otherwise ...
| >
| > | and met this problem:
| > |
| > | ../../lib/libR.so: undefined reference to 'ucol_strcollIter_58'
| > | ../../lib/libR.so: undefined reference to 'u_getVersion_58'
| > | ../../lib/libR.so: undefined reference to 'uloc_setDefault_58'
| > | ../../lib/libR.so: undefined reference to 'ucol_close_58'
| > | ../../lib/libR.so: undefined reference to 'ucol_getLocaleByType_58'
| > | ../../lib/libR.so: undefined reference to 'ucol_setAttribute_58'
| > | ../../lib/libR.so: undefined reference to 'u_versionToString_58'
| > | ../../lib/libR.so: undefined reference to 'ucol_open_58'
| > | ../../lib/libR.so: undefined reference to 'uiter_setUTF8_58'
| > | ../../lib/libR.so: undefined reference to 'ucol_setStrength_58'
| > |
| > | # collect2: error: ld returned 1 exit status
| > | # Makefile:145: recipe for target 'R.bin' failed
| >
| > You somehow messed something up with libicu* -- looks like you built again
| > version 58 but you don't have it (not sure how).
| > |
| > | What I did to configure is according to the INSTALL instruction with the
| > | source code except --with-cairo (which seems un-necessary):
| >
| > Those are generic instructions so you could ask on r-devel :)  Seriously,
| > nothing in the R Inst + Admin manual is specific to Debian or Ubuntu.
| >
| > The rest below looks fine. Your problem is a different one, somehow. But
| > as I
| > said, why not do what I a bazillion other people do and just use the
| > binary?
| >
| > Otherwise, you can see my (Debian) builds files here
| >
| >    https://salsa.debian.org/edd/r-base/tree/master/debian/rules
| >    https://salsa.debian.org/edd/r-base/tree/master/debian/control
| >
| > and they should carry over easily to 18.04, and with possible adjustments
| > to
| > 16.04, 14.04 and others. I don't think Michael's sources are in git though
| > (hint, hint, ...)
| >
| > Dirk
| >
| > | ./configure --prefix=/opt/R/3.5.0 --enable-R-shlib --with-blas
| > | --with-lapack --with-cairo
| > |
| > | ############################################################
| > #######################
| > | # R is now configured for x86_64-pc-linux-gnu
| > | #
| > | #   Source directory:          .
| > | #   Installation directory:    /opt/R/3.5.0
| > | #
| > | #   C compiler:                gcc  -g -O2
| > | #   Fortran 77 compiler:       f95  -g -O2
| > | #
| > | #   Default C++ compiler:      g++   -g -O2
| > | #   C++98 compiler:            g++ -std=gnu++98 -g -O2
| > | #   C++11 compiler:            g++ -std=gnu++11 -g -O2
| > | #   C++14 compiler:            g++ -std=gnu++14 -g -O2
| > | #   C++17 compiler:            g++ -std=gnu++17 -g -O2
| > | #   Fortran 90/95 compiler:    gfortran -g -O2
| > | #   Obj-C compiler:
| > | #
| > | #   Interfaces supported:      X11, tcltk
| > | #   External libraries:        readline, BLAS(generic), LAPACK(generic),
| > | curl
| > | #   Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo, ICU
| > | #   Options enabled:           shared R library, R profiling
| > | #
| > | #   Capabilities skipped:
| > | #   Options not enabled:       shared BLAS, memory profiling
| > | #
| > | #   Recommended packages:      yes
| > | #
| > | ############################################################
| > ######################################
| > | The above error came from make by sudo make.
| > |
| > | There are some threads about the options --enable-R-shlib, but the
| > problem
| > | stayed with the option turned off. Without --with-cairo option could not
| > | resolve the problem either.
| > | After several hours of search, it seems to me it is related to the
| > | compiling process, but I'm not sure which library is missing, or which
| > | options should be used to compile/link in my Ubuntu 18.04.
| > |
| > | Thanks a lot!
| > |
| > | Yifang
| > |
| > |       [[alternative HTML version deleted]]
| > |
| > | _______________________________________________
| > | R-SIG-Debian mailing list
| > | R-SIG-Debian at r-project.org
| > | https://stat.ethz.ch/mailman/listinfo/r-sig-debian
| >
| > --
| > http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
| >