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

CentOS 7.9环境下安装R包hydroPSO、sf时proj报错的解决方法

问题根源

proj_normalize_for_visualization 是PROJ 7.0.0及以上版本新增的函数,你当前使用的PROJ 6.0.0不包含该函数,而你要安装的sf版本依赖这个函数,导致编译失败。以下是CentOS Linux release 7.9.2009 (Core)环境下的两种解决方案:

方案一:降级sf到兼容PROJ 6.x的版本

该方案无需升级系统库,操作更简单:

  • 先卸载已安装的sf包(如果有):
    在R终端执行:
    remove.packages("sf")
    
  • 安装remotes包(用于指定版本安装):
    install.packages("remotes")
    
  • 安装兼容PROJ 6.x的sf版本(推荐1.0-14,这是最后一批支持PROJ6的稳定版本):
    remotes::install_version("sf", version = "1.0-14")
    
  • 安装hydroPSO:
    install.packages("hydroPSO", dependencies = TRUE)
    

方案二:升级PROJ到7.x及以上版本

如果需要使用新版sf,可手动编译升级PROJ:

  1. 安装编译依赖:
    sudo yum install -y gcc gcc-c++ cmake make libtiff-devel libcurl-devel sqlite-devel
    
  2. 从OSGeo官网下载PROJ 7.2.1稳定版源码包,解压后进入目录,执行编译安装:
    tar -zxvf proj-7.2.1.tar.gz
    cd proj-7.2.1 && mkdir build && cd build
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/proj7
    make -j4
    sudo make install
    
  3. 配置环境变量,让R识别新PROJ:
    echo 'export PROJ_DIR=/usr/local/proj7' >> ~/.bashrc
    echo 'export LD_LIBRARY_PATH=/usr/local/proj7/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
    source ~/.bashrc
    
  4. 重新安装sf:
    在R终端执行:
    install.packages("sf", configure.args = "--with-proj-lib=/usr/local/proj7/lib --with-proj-include=/usr/local/proj7/include")
    
  5. 安装hydroPSO:
    install.packages("hydroPSO")
    

额外注意

如果你的R版本低于4.0.0,可能无法兼容新版sf或hydroPSO,建议升级到4.x版本,可通过添加对应第三方软件源完成安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:57