You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中安装minpack.lm包编译失败求助

安装R包minpack.lm时编译失败的问题解决

问题背景

在两台不同的Ubuntu电脑上执行install.packages("minpack.lm")安装minpack.lm包均失败,其中一台使用Anaconda集成的R(版本信息如下),另一台使用系统自带R:

R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-conda_cos6-linux-gnu (64-bit)

编译错误信息

x86_64-conda_cos6-linux-gnu-cc -I"/home/eddie/bin/anaconda3/lib/R/include" -DNDEBUG   -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -I/home/eddie/bin/anaconda3/include -Wl,-rpath-link,/home/eddie/bin/anaconda3/lib   -fpic  -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/eddie/bin/anaconda3/include -fdebug-prefix-map==/usr/local/src/conda/- -fdebug-prefix-map==/usr/local/src/conda-prefix  -c nls_lm.c -o nls_lm.o
x86_64-conda_cos6-linux-gnu-cc -I"/home/eddie/bin/anaconda3/lib/R/include" -DNDEBUG   -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -I/home/eddie/bin/anaconda3/include -Wl,-rpath-link,/home/eddie/bin/anaconda3/lib   -fpic  -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/eddie/bin/anaconda3/include -fdebug-prefix-map==/usr/local/src/conda/- -fdebug-prefix-map==/usr/local/src/conda-prefix  -c prod.c -o prod.o
prod.c: In function 'matprod':
prod.c:55:41: error: expected ')' before 'FCONE'
        x, &nrx, y, &nry, &zero, z, &nrx FCONE FCONE);
                                         ^~~~~
prod.c: In function 'crossprod':
prod.c:67:37: error: expected ')' before 'FCONE'
    x, &nrx, y, &nry, &zero, z, &ncx FCONE FCONE);
                                     ^~~~~
make: *** [/home/eddie/bin/anaconda3/lib/R/etc/Makeconf:160: prod.o] Error 1
ERROR: compilation failed for package ‘minpack.lm’
* removing ‘/home/eddie/bin/anaconda3/lib/R/library/minpack.lm’
* restoring previous ‘/home/eddie/bin/anaconda3/lib/R/library/minpack.lm’

The downloaded source packages are in
        ‘/tmp/RtmpQKYnHk/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning message:
In install.packages("minpack.lm") :
  installation of package ‘minpack.lm’ had non-zero exit status

问题原因

  1. R版本过旧:使用的R 3.5.1是2018年发布的版本,minpack.lm的新版本已不再兼容该老旧版本,FCONE宏的语法在新R编译环境中有所调整,旧版R的头文件无法正确解析这种语法。
  2. 编译依赖缺失:Ubuntu系统缺少编译R包必需的基础工具和线性代数库,比如build-essential、liblapack-dev等,这些是编译minpack.lm这类依赖底层计算的包的必要条件。

解决办法

方法一:升级R版本(推荐)

  • Anaconda环境:在终端执行以下命令升级R到兼容版本:
    conda update r-base
    
    或指定安装稳定新版本:
    conda install r-base=4.2.0
    
  • 系统自带R:通过CRAN源升级:
    1. 添加CRAN源:
      echo "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" | sudo tee /etc/apt/sources.list.d/r-project.list
      
    2. 添加公钥:
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
      
    3. 更新并升级R:
      sudo apt update && sudo apt upgrade r-base
      
    升级完成后重新执行install.packages("minpack.lm")即可。

方法二:安装编译依赖并安装旧版包(无法升级R时适用)

  1. 先安装编译必需的工具和库:
    sudo apt install build-essential liblapack-dev libblas-dev libssl-dev libcurl4-openssl-dev
    
  2. 在R中安装兼容旧版本的minpack.lm:
    install.packages("devtools")
    library(devtools)
    # 安装兼容R 3.5.x的1.2-1版本
    install_version("minpack.lm", version = "1.2-1", repos = "http://cran.us.r-project.org")
    

方法三:Anaconda环境直接安装预编译包

通过conda安装预编译好的包,跳过编译步骤:

conda install -c conda-forge r-minpack.lm

内容的提问来源于stack exchange,提问作者Eddie Ackad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:17:54