目录

  • 方式1:conda-forge安装
    • 错误:缺乏libnsl.so.1
      • ✅ 方法一:查找系统中是否已有此库
      • 替补方案:采用libnsl.so.3链接 libnsl.so.1
      • ✅ 方法二:系统中没有安装 libnsl.so.1 → 手动安装
      • ✅ 方法三:使用 Conda 安装 libnsl
  • 方式2:手动安装
    • 🧱 步骤一:激活 Conda 环境
    • 📥 步骤二:下载并编译 PROJ
  • 参考

CRAN-Package rgdal
在这里插入图片描述
根据CRAN所述,rgdal库被移除。

方式1:conda-forge安装

conda-forge / packages / r-rgdal
在这里插入图片描述

错误:缺乏libnsl.so.1

在加载rgdal库,执行以下命令时:

installed <- installed.packages()
"rgdal" %in% rownames(installed)

报错,遇到的问题是:

library(rgdal) 加载失败,报错提示缺少共享库文件:
libnsl.so.1: cannot open shared object file: No such file or directory

在这里插入图片描述

这是一个典型的 系统动态链接库缺失(或路径未配置)问题,但完全可以解决 ✅。

🔍 问题分析

  • rgdal.so 动态库在加载时依赖 libnsl.so.1。
  • 这是一个 系统级别的网络库(libnsl = “Network Services Library”)。
  • 它不属于 R 或 rgdal 包,而是由操作系统提供,通常在 Linux 上由 glibc 系统库安装。

✅ 方法一:查找系统中是否已有此库

在终端中运行:

find /lib /usr/lib /lib64 /usr/lib64 -name "libnsl.so*"

或者用更快的方式:

locate libnsl.so

情况 A:如果找到了 libnsl.so.1,例如路径为:

/usr/lib64/libnsl.so.1

那么你可以创建一个软链接到你的 Conda 环境中:

ln -s /usr/lib64/libnsl.so.1 ~/miniconda3/envs/r_env/lib/libnsl.so.1

确保 R 能找到这个库时可以加载 rgdal。

替补方案:采用libnsl.so.3链接 libnsl.so.1

创建软链接模拟 libnsl.so.1,进入 Conda 的 lib 目录:

cd /home/wanzhou/miniconda3/envs/r_env/libln -s libnsl.so.3 libnsl.so.1

创建一个名为 libnsl.so.1 的链接,指向已有的 libnsl.so.3。

📌 注意事项
这种方式虽然是“绕过法”,在大多数情况下是安全的,特别是 libnsl.so.1 和 .so.3 基本兼容。
如果你要部署到生产环境,建议尽量使用与 rgdal 相匹配的系统动态库(例如:安装真正的 libnsl.so.1,或使用更兼容的 Conda 包构建)。

✅ 方法二:系统中没有安装 libnsl.so.1 → 手动安装

如果你有 sudo 权限(推荐):

CentOS / RHEL:

sudo yum install libnsl

Ubuntu / Debian:

sudo apt-get install libnsl1

✅ 方法三:使用 Conda 安装 libnsl

如果你 没有 sudo 权限,可以通过 Conda 安装 libnsl:

conda activate r_envconda install -c conda-forge libnslconda list libnsl

这会自动将 libnsl.so.1 安装到你的 Conda 环境中,并由 Conda 管理,无需手动软链接。
在这里插入图片描述

🧪 验证是否解决

安装或软链接完成后,在 R 中重新尝试加载:

library(rgdal)

如果不再报 libnsl.so.1 错误,说明问题已解决 ✅

方式2:手动安装

cd /home/wanzhou/Packages/

🧱 步骤一:激活 Conda 环境

source ~/miniconda3/bin/activate r_env

📥 步骤二:下载并编译 PROJ

mkdir -p ~/src && cd ~/src
wget https://download.osgeo.org/proj/proj-9.3.1.tar.gz
tar -xzf proj-9.3.1.tar.gz
cd proj-9.3.1./configure --prefix=$HOME/local
./configure --prefix=/home/wanzhou/Packages/r_local
make -j$(nproc)
make install

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88311.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88311.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88311.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教育技术学读计算机论文的提示词

角色: 你是一位经验丰富的计算机专业教授,擅长用通俗易懂的语言向初学者解释复杂概念。我现在正在学习阅读计算机科学领域的算法论文,但我的基础比较薄弱(了解编程基础如变量、循环、函数,了解一点数据结构和算法概念如数组、链表、排序,但对高级术语和数学证明不熟悉)。…

棋盘格标定板和圆形标定板的优劣性

来源&#xff1a;deepseek 在相机标定中&#xff0c;棋盘格标定板和圆形标定板&#xff08;或圆点阵列标定板&#xff09;是最常用的两种类型。它们各有优劣&#xff0c;选择哪种取决于具体的应用场景、需求以及使用的标定算法。以下是它们的主要优劣对比&#xff1a; &#…

2025年UDP洪水攻击防御指南:从7.3Tbps攻防战看原理与实战

45秒37.4TB流量&#xff01;一场刷新历史纪录的DDoS攻击正在颠覆传统防御体系 一、什么是UDP洪水攻击&#xff1f; UDP洪水攻击&#xff08;UDP Flood&#xff09;是一种利用用户数据报协议&#xff08;UDP&#xff09; 的无连接特性发起的分布式拒绝服务&#xff08;DDoS&…

一种集成统计、视觉和基于规则方法的新型可解释医学图像分类人工智能框架|文献速递-最新论文分享

Title 题目 A novel explainable AI framework for medical image classificationintegrating statistical, visual, and rule-based methods 一种集成统计、视觉和基于规则方法的新型可解释医学图像分类人工智能框架 01 文献速递介绍 人工智能&#xff08;AI&#xff09;…

洛谷 P10113 [GESP202312 八级] 大量的工作沟通-普及/提高-

题目描述 某公司有 N N N 名员工&#xff0c;编号从 0 0 0 至 N − 1 N-1 N−1。其中&#xff0c;除了 0 0 0 号员工是老板&#xff0c;其余每名员工都有一个直接领导。我们假设编号为 i i i 的员工的直接领导是 f i f_i fi​。 该公司有严格的管理制度&#xff0c;每位…

数组题解——移除元素​【LeetCode】

27. 移除元素 快慢指针法 算法思路 使用双指针&#xff08;fast和slow&#xff09;遍历数组。 fast指针遍历每一个元素。slow指针指向下一个将被保留的位置。 如果nums[fast] ! val&#xff0c;就把nums[fast]赋值到nums[slow]&#xff0c;并将slow向前移动一位。遍历结束后…

ubuntu20.04安装多版本python时,如何使用sudo python3.10

sudo 命令只会加载基本的path和动态库&#xff0c;自己定义的不会加入&#xff0c;因此会出现使用sudo运行多版本python出现奇怪的现象&#xff0c;进行如下操作就可以使用 sudo vi ~/.bashrc alias sudosudo env PATH$PATH LD_LIBRARY_PATH$LD_LIBRARY_PATH 使用 sudo visud…

统计学纯基础(1)

⛄统计分析分为统计描述与统计推断&#xff0c;统计推断分为总体估计与假设检验 &#x1f3c2;16&#xff1a;45 医学研究--基础研究、转化医学研究、临床研究 临床研究--病因学研究、诊断准确性试验、预后研究、疗效研究 一般认为3个月以内的预后属于近期预后&#xff0c;…

接口自动化测试之pytest 运行方式及前置后置封装

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、Pytest 优点认知 1.可以结合所有的自动化测试工具 2.跳过失败用例以及失败重跑 3.结合allure生产美观报告 4.和Jenkins持续集成 5.很多强大的插件 pytest-htm…

利用folium实现全国高校分布地图显示

智汇中国 | 揭秘!一张地图带你遨游全国高校殿堂 大家好,这期我们来利用folium模块实现全国高校分布的地图显示。 什么是Folium Folium为Python用户提供了便捷的方式来利用Leaflet.js的强大地图可视化功能,而无需直接编写JavaScript代码。它允许开发者以Pythonic的方式处理…

【和春笋一起学C++】(二十二)C++函数新特性——函数重载

目录 函数重载的含义 重载函数使用注意事项 几种特殊情况 函数重载的含义 函数重载使得能够用不同的参数列表调用多个同名的函数。可以通过函数重载设计一系列函数,它们完成相同的工作,但使用不同的参数列表。 函数重载的关键是函数的参数列表——也被称为函数特征标。如…

CrewAI多智能体框架的实操教程-旅行规划-2

1、创建一个新的 CrewAI 项目 surprise_trip crewai create crew surprise_trip 选择模型厂商和模型 生成.env MODELgpt-4o OPENAI_API_KEY你的api_keySERPER_API_KEY你的SERPER api_key 2、探索项目结构 3、配置代理 修改 agents.yaml文件。 # 个性化活动规划师 Agent p…

vue脚手架与前后端交互

前言 。Vue.js作为一种流行的前端框架&#xff0c;提供了丰富的功能和灵活的架构&#xff0c;方便了开发者进行高效的开发。为了更好地使用Vue&#xff0c;Vue CLI&#xff08;脚手架工具&#xff09;成为了开发者进行项目创建和管理的重要工具。本文将结合Vue脚手架的使用场景…

【麻省理工】《how to speaking》笔记

【【麻省理工】《如何说话》一节课教你成为表达的王者】 开始 在演讲最开始的时候&#xff0c;你要告诉观众&#xff0c;在接下来的15分钟或一个小时之内&#xff0c;他们将会学到什么东西。这会让观众集中注意力去倾听。 PPT 你的幻灯片上的字要越少越好。因为听众的大脑一…

ESP32-HTML-08

一、html显示图片 1.工程包含Html需要显示的图片 2、CMakeLists.txt包含图片资源 举例&#xff1a; idf_component_register(SRCS main.cEMBED_FILES root.html favicon.ico) 3.html中图片的标签 <img src"motus.ico"> 4.后台代码的添加 static esp_e…

前端后端文件下载防抖实现方案

在 Vue 3 中实现下载文件防抖&#xff0c;可以通过封装一个防抖函数来控制下载请求的触发频率。以下是完整的实现方案&#xff1a; 1. 封装防抖工具函数 javascript 复制 下载 // utils/debounce.js export function debounce(func, delay) {let timer null;return funct…

【Linux网络与网络编程】15.DNS与ICMP协议

1. DNS 1.1 DNS介绍 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆&#xff0c;于是人们发明了一种叫主机名的字符串&#xff0c;并使用 hosts 文件来描述主机名和 IP 地址的关系。最初, 通过互连网信息中心(SRI-NIC)来…

Python打卡:Day35

复习日 浙大疏锦行

GoAdmin代码生成器实践

文章目录 前言创建SQL表格使用在线生成工具应用自动生成的代码数据变更时附加新的逻辑总结 前言 开源项目 go-admin&#xff0c;我一直用的是这个地址 https://github.com/GoAdminGroup/go-admin&#xff0c;不过最近发现了一个 Gin Vue 版本的 go-admin&#xff0c;对我解决…

web布局13

在 CSS 中有很多种类型的函数&#xff0c;其中可用于尺寸属性的函数主要有 calc() 、min() 、max() 、clamp() 等。这些 CSS 函数都可用来设置网格轨道尺寸&#xff0c;除此之外&#xff0c;还有一些专门用于设置网格轨道的函数&#xff0c;比如 repeat() 、minmax() 和 fit-co…