Discussion:
[R-sig-Debian] libR.so error to install R-3.5.0 in Ubuntu 18.04
Yifang Tan
2018-06-20 22:12:33 UTC
Permalink
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

[[alternative HTML version deleted]]
Ista Zahn
2018-06-20 22:30:16 UTC
Permalink
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
Post by Yifang Tan
I tried to install R-3.5.0 from source on my Ubuntu 18.04, and met this
../../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
./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
#
# 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
#
# 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
https://stat.ethz.ch/mailman/listinfo/r-sig-debian
Dirk Eddelbuettel
2018-06-20 22:35:58 UTC
Permalink
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-***@r-project.org
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian
--
http://dirk.eddelbuettel.com | @eddelbuettel | ***@debian.org
Yifang Tan
2018-06-21 15:59:18 UTC
Permalink
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
Post by Dirk Eddelbuettel
| 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 ...
|
| ../../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
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
| #
| # 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
| #
| # 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
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian
--
[[alternative HTML version deleted]]
Dirk Eddelbuettel
2018-06-21 16:16:53 UTC
Permalink
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 <***@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-***@r-project.org
| > | https://stat.ethz.ch/mailman/listinfo/r-sig-debian
| >
| > --
| > http://dirk.eddelbuettel.com | @eddelbuettel | ***@debian.org
| >
--
http://dirk.eddelbuettel.com | @eddelbuettel | ***@debian.org
Loading...