无法从 OpenSUSE Leap 15.2 安装 arm 和 lme4 软件包

Unable to install arm and lme4 packages from OpenSUSE Leap 15.2

我正在使用 OpenSUSE Leap 15.2 操作系统以及预装的 R v3.5.0。除了 rstudio.

我不需要安装任何包

安装详情如下:

> sessionInfo()

R version 3.5.0 (2018-04-23)
Platform: x86_64-suse-linux-gnu (64-bit)
Running under: openSUSE Leap 15.2

Matrix products: default
BLAS: /usr/lib64/R/lib/libRblas.so
LAPACK: /usr/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=fr_FR.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=fr_FR.UTF-8        LC_COLLATE=fr_FR.UTF-8    
 [5] LC_MONETARY=fr_FR.UTF-8    LC_MESSAGES=fr_FR.UTF-8   
 [7] LC_PAPER=fr_FR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=fr_FR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.0

我在安装分析所需的两个软件包时遇到困难:armlme4。我毫无问题地安装了我还需要的 ggplot2 包。

无论是从 RStudio 图形界面还是从 R 命令行(在终端内),我都会收到大量我无法解释的错误...

我在法国尝试过各种回购协议,但都有同样的问题。请注意,这两个包的安装在 Windows 10 操作系统上运行良好。

安装输出结果为:

ERROR: compilation failed for package ‘RcppEigen’
* removing ‘/home/thomas/R/x86_64-suse-linux-gnu-library/3.5/RcppEigen’
Warning in install.packages :
  installation of package ‘RcppEigen’ had non-zero exit status
ERROR: dependency ‘latticeExtra’ is not available for package ‘Hmisc’
* removing ‘/home/thomas/R/x86_64-suse-linux-gnu-library/3.5/Hmisc’
Warning in install.packages :
  installation of package ‘Hmisc’ had non-zero exit status
ERROR: dependencies ‘minqa’, ‘nloptr’, ‘statmod’, ‘RcppEigen’ are not available for package ‘lme4’
* removing ‘/home/thomas/R/x86_64-suse-linux-gnu-library/3.5/lme4’
Warning in install.packages :
  installation of package ‘lme4’ had non-zero exit status
ERROR: dependencies ‘lme4’, ‘Hmisc’ are not available for package ‘arm’
* removing ‘/home/thomas/R/x86_64-suse-linux-gnu-library/3.5/arm’
Warning in install.packages :
  installation of package ‘arm’ had non-zero exit status

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

我确实观察到大量与 Eigen 相关的错误行,如下所示:

../inst/include/Eigen/src/Core/CoreEvaluators.h:665:8:   required from ‘struct Eigen::internal::evaluator<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >, const Eigen::Block<const Eigen::Transpose<const Eigen::Matrix<double, -1, -1> >, -1, 1, false> > >’
../inst/include/Eigen/src/Core/Redux.h:349:39:   required from ‘class Eigen::internal::redux_evaluator<Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >, const Eigen::Block<const Eigen::Transpose<const Eigen::Matrix<double, -1, -1> >, -1, 1, false> > >’
../inst/include/Eigen/src/Core/Redux.h:416:17:   required from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::redux(const Func&) const [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<double, double>, const Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >, const Eigen::Block<const Eigen::Transpose<const Eigen::Matrix<double, -1, -1> >, -1, 1, false> >; typename Eigen::internal::traits<T>::Scalar = double]’

我找不到如何将完整的安装输出导出到文件中,所以我不能在这里提供更多详细信息...

非常感谢您的帮助和建议!

托马斯

-- 编辑--

完成我的问题:

  1. 我在虚拟机上(通过 VirtualBox)安装了 Ubuntu Focal Fossa (21),安装包没有任何问题...

  2. 我尝试安装小依赖包minqa,得到如下输出:

我可以看到其他错误消息,例如 make: gfortran: command not found,这可能有任何帮助....

-- 编辑--

我设法导出了 arm 包安装尝试的输出。请注意,这是从 R 版本 4.1.0 开始完成的我也在我的 OpenSUSE 系统上安装了它(见评论):

thomas@localhost:~> sudo R

R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-suse-linux-gnu (64-bit)

R est un logiciel libre livré sans AUCUNE GARANTIE.
Vous pouvez le redistribuer sous certaines conditions.
Tapez 'license()' ou 'licence()' pour plus de détails.

R est un projet collaboratif avec de nombreux contributeurs.
Tapez 'contributors()' pour plus d'information et
'citation()' pour la façon de le citer dans les publications.

Tapez 'demo()' pour des démonstrations, 'help()' pour l'aide
en ligne ou 'help.start()' pour obtenir l'aide au format HTML.
Tapez 'q()' pour quitter R.

> install.packages(pkgs="arm", repos="http://cran.univ-lyon1.fr/")

installation des dépendances ‘jpeg’, ‘latticeExtra’, ‘lme4’, ‘Hmisc’

essai de l'URL 'http://cran.univ-lyon1.fr/src/contrib/jpeg_0.1-8.1.tar.gz'
Content type 'application/x-gzip' length 18116 bytes (17 KB)
==================================================
downloaded 17 KB

essai de l'URL 'http://cran.univ-lyon1.fr/src/contrib/latticeExtra_0.6-29.tar.gz'
Content type 'application/x-gzip' length 1292315 bytes (1.2 MB)
==================================================
downloaded 1.2 MB

essai de l'URL 'http://cran.univ-lyon1.fr/src/contrib/lme4_1.1-27.tar.gz'
Content type 'application/x-gzip' length 3302287 bytes (3.1 MB)
==================================================
downloaded 3.1 MB

essai de l'URL 'http://cran.univ-lyon1.fr/src/contrib/Hmisc_4.5-0.tar.gz'
Content type 'application/x-gzip' length 775444 bytes (757 KB)
==================================================
downloaded 757 KB

essai de l'URL 'http://cran.univ-lyon1.fr/src/contrib/arm_1.11-2.tar.gz'
Content type 'application/x-gzip' length 79464 bytes (77 KB)
==================================================
downloaded 77 KB

* installing *source* package ‘jpeg’ ...
** package ‘jpeg’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gcc -I"/usr/lib64/R/include" -DNDEBUG   -I/usr/local/include   -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c read.c -o read.o
In file included from read.c:1:0:
rjcommon.h:11:10: fatal error: jpeglib.h: Aucun fichier ou dossier de ce type
 #include <jpeglib.h>
          ^~~~~~~~~~~
compilation terminated.
make: *** [/usr/lib64/R/etc/Makeconf:168: read.o] Error 1
ERROR: compilation failed for package ‘jpeg’
* removing ‘/usr/lib64/R/library/jpeg’
* installing *source* package ‘lme4’ ...
** package ‘lme4’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
g++ -std=gnu++14 -I"/usr/lib64/R/include" -DNDEBUG  -I'/usr/lib64/R/library/Rcpp/include' -I'/usr/lib64/R/library/RcppEigen/include' -I/usr/local/include  -DNDEBUG -DEIGEN_DONT_VECTORIZE -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c external.cpp -o external.o
g++ -std=gnu++14 -I"/usr/lib64/R/include" -DNDEBUG  -I'/usr/lib64/R/library/Rcpp/include' -I'/usr/lib64/R/library/RcppEigen/include' -I/usr/local/include  -DNDEBUG -DEIGEN_DONT_VECTORIZE -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c glmFamily.cpp -o glmFamily.o
g++ -std=gnu++14 -I"/usr/lib64/R/include" -DNDEBUG  -I'/usr/lib64/R/library/Rcpp/include' -I'/usr/lib64/R/library/RcppEigen/include' -I/usr/local/include  -DNDEBUG -DEIGEN_DONT_VECTORIZE -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c optimizer.cpp -o optimizer.o
g++ -std=gnu++14 -I"/usr/lib64/R/include" -DNDEBUG  -I'/usr/lib64/R/library/Rcpp/include' -I'/usr/lib64/R/library/RcppEigen/include' -I/usr/local/include  -DNDEBUG -DEIGEN_DONT_VECTORIZE -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c predModule.cpp -o predModule.o
g++ -std=gnu++14 -I"/usr/lib64/R/include" -DNDEBUG  -I'/usr/lib64/R/library/Rcpp/include' -I'/usr/lib64/R/library/RcppEigen/include' -I/usr/local/include  -DNDEBUG -DEIGEN_DONT_VECTORIZE -fpic  -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection  -c respModule.cpp -o respModule.o
Erreur : le package ‘Rcpp’ a été installé avant R 4.0.0 : veuillez le réinstaller, s'il-vous-plait
Exécution arrêtée
g++ -std=gnu++14 -shared -L/usr/lib64/R/lib -L/usr/local/lib64 -o lme4.so external.o glmFamily.o optimizer.o predModule.o respModule.o -L/usr/lib64/R/lib -lR
Erreur : le package ‘Rcpp’ a été installé avant R 4.0.0 : veuillez le réinstaller, s'il-vous-plait
Exécution arrêtée
installing to /usr/lib64/R/library/00LOCK-lme4/00new/lme4/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
Error: le chargement du package ou de l'espace de noms a échoué pour ‘Matrix’ :
le package ‘Matrix’ a été installé avant R 4.0.0 : veuillez le réinstaller, s'il-vous-plait
Erreur : le package ‘Matrix’ ne peut être chargé
Exécution arrêtée
ERROR: lazy loading failed for package ‘lme4’
* removing ‘/usr/lib64/R/library/lme4’
ERROR: dependency ‘jpeg’ is not available for package ‘latticeExtra’
* removing ‘/usr/lib64/R/library/latticeExtra’
ERROR: dependency ‘latticeExtra’ is not available for package ‘Hmisc’
* removing ‘/usr/lib64/R/library/Hmisc’
ERROR: dependencies ‘lme4’, ‘Hmisc’ are not available for package ‘arm’
* removing ‘/usr/lib64/R/library/arm’

The downloaded source packages are in
    ‘/tmp/Rtmpz1IryW/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Messages d'avis :
1: Dans install.packages(pkgs = "arm", repos = "http://cran.univ-lyon1.fr/") :
  installation of package ‘jpeg’ had non-zero exit status
2: Dans install.packages(pkgs = "arm", repos = "http://cran.univ-lyon1.fr/") :
  installation of package ‘lme4’ had non-zero exit status
3: Dans install.packages(pkgs = "arm", repos = "http://cran.univ-lyon1.fr/") :
  installation of package ‘latticeExtra’ had non-zero exit status
4: Dans install.packages(pkgs = "arm", repos = "http://cran.univ-lyon1.fr/") :
  installation of package ‘Hmisc’ had non-zero exit status
5: Dans install.packages(pkgs = "arm", repos = "http://cran.univ-lyon1.fr/") :
  installation of package ‘arm’ had non-zero exit status

根据我的经验,Unix 上的这些错误通常源于缺少外部库。例如,安装 R xml2 包需要 libxml2-dev 通过系统包管理器(即在 R 之外)安装,否则安装将失败。

我看不懂法语,但在我看来好像依赖项 jpeg 失败了,因为缺少外部 jpeg 库,然后一切都从那里级联。您可以尝试安装某些版本的 libjpeg 库。我知道它预装在 Ubuntu 中,这可能就是它对您有用的原因。我有点惊讶它没有安装在 OpenSUSE 中,但我没有使用 OpenSUSE 的经验。

来自 lme4 包页面:

The core computational algorithms are implemented using the 'Eigen' C++ library for numerical linear algebra and 'RcppEigen' "glue".

https://cran.r-project.org/web/packages/lme4/index.html

我猜你必须安装 Eigen c++ 库,你可以找到方法 here。这更有可能是因为 rcppeigen 安装失败。我会安装 Eigen,然后安装 rcppeigen 和 glue,然后尝试安装其他出现错误的包。

answers/comments 中有很多好的建议,但即使遵循了所有建议,我 运行 还是遇到了更多问题。

以下是我在 OpenSuse Leap 15.2 VM (https://www.osboxes.org/opensuse/) 上成功安装 lme4 和 arm for R v3.5.0 的步骤:

  • 下载并安装R(v3.5.0)及所需的编译相关软件
sudo zypper install R-core
sudo zypper install R-base
sudo zypper install gcc
sudo zypper install gcc-c++
sudo zypper install gfortran
sudo zypper install ed
sudo zypper install libtool
sudo zypper install nlopt-devel
install.packages("~Downloads/latticeExtra_0.6-26.tar.gz", repos = NULL)
install.packages("nloptr")
install.packages("Hmisc")
install.packages("lme4")
install.packages("arm")
  • 要安装其他所需的软件包,请从 https://cran.r-project.org/src/contrib/Archive/ 中找到与 Rv3.5.0 兼容的存档版本并在本地安装(例如 install.packages("~Downloads/latticeExtra_0.6-26.tar.gz", repos = NULL)