Damn!linux想做单细胞想下载Seurat,依赖包stringi要怎么安装

简介: **摘要:**《R包stringi安装挑战与解决方案》`stringi`是R中的关键字符串处理包,基于ICU库,常用于生物信息学和统计分析。安装时常遇到问题,特别是在Linux上,因平台依赖和C库版本而复杂。解决办法包括检查GCC版本、网络和环境。当常规方法失败时,可尝试手动下载ICUDT,设置`configure.vars`或通过源码安装:下载zip,构建,然后使用R CMD安装。遇到类似问题的开发者可参考提供的链接和步骤。安装问题多样,需灵活应对。

Homies~,该文章非万能解决方案,一况一论!

[toc]

说在前面

stringi这个包麻烦这个是大家都知道的,win、macos麻烦,linux的更麻烦...

image.png

stringi 是 R 语言中的一个非常流行和强大的字符串处理包。它提供了一系列的功能,用于处理和操作字符串数据,特别是对于国际化和本地化的文本处理。stringi 基于 ICU(International Components for Unicode)库,这是一个广泛使用的、跨平台的、针对 Unicode 标准的 C 库。
stringi 是许多 R 包的依赖包。由于它提供了一系列强大且灵活的字符串处理功能,stringi 成为了许多开发者的首选包来处理字符串相关的任务。这些功能包括但不限于字符串的搜索、替换、排序、分割和国际化处理。

上述是引用GPT的话来凑字数,大家记住两点即可:

  • stringi是基于C/C++开发的二进制分发包,跟源码,平台依赖性强,所以说linux安装起来挺麻烦,如果报错起来不同发行版不同C库不同版本号都可能会有不同的情况,M3~
  • stringi、stringr这些,是几乎,God的,所有生信/统计分析所用到的R包的依赖包,绕不过去的,只能解决报错,乖乖安装。

这个包笔者曾经刚学R的时候也苦受折磨,自己本地的win本安装无问题,但是实验室服务安装,;后面入坑了黑苹果,;换了macbook,

怎么办

怎么办,八仙过海各显神通,随机应变灵活解决。

1st:GCC版本问题

这是笔者第一次记录过的解决方案,当时是用的服务器,用jupyter死活装不成功捣鼓了几天:

在C站有blog这里就不重复了,可以参考一下,那一次是版本问题好像是,https://blog.csdn.net/weixin_48093827/article/details/130066097

image.png

2st:不确定是环境还是网络问题

报错内容:

> install.packages("stringi")
Installing package into ‘/home/xu_zw/R/x86_64-pc-linux-gnu-library/4.2(as ‘lib’ is unspecified)
trying URL 'https://mirrors.e-ducation.cn/CRAN/src/contrib/stringi_1.7.12.tar.gz'
Content type 'application/x-gzip' length 7602365 bytes (7.3 MB)
==================================================
downloaded 7.3 MB

* installing *source* package ‘stringi’ ...
** package ‘stringi’ successfully unpacked and MD5 sums checked
** using staged installation
checking for R_HOME... /opt/R/4.2.1/lib/R
checking for R... /opt/R/4.2.1/lib/R/bin/R
checking for endianness... little
checking for R >= 3.1.0 for C++11 use... yes
checking for R < 3.4.0 for CXX1X flag use... no
checking for cat... /usr/bin/cat
checking for local ICUDT_DIR... icu69/data
checking for gcc... gcc -std=gnu11
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc -std=gnu11 accepts -g... yes
checking for gcc -std=gnu11 option to enable C11 features... none needed
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for elf.h... yes
checking whether the compiler supports GNU C++... yes
checking whether g++ -std=gnu++11 accepts -g... yes
checking for g++ -std=gnu++11 option to enable C++11 features... none needed
checking whether the C++ compiler supports the long long type... yes
checking whether the compiler implements namespaces... yes
checking whether the compiler supports the Standard Template Library... yes
checking whether std::map is available... yes
checking for pkg-config... /usr/bin/pkg-config
checking with pkg-config for the system ICU4C... 50.2
checking for ICU4C >= 55... no
*** ICU4C 50.2 has been detected
*** Minimal requirements, i.e., ICU4C >= 55, are not met
*** Trying with 'standard' fallback flags
checking whether an ICU4C-based project can be built... yes
checking programmatically for sufficient U_ICU_VERSION_MAJOR_NUM... no
*** This version of ICU4C cannot be used.
*** Using the ICU 69 bundle.
checking whether we may compile src/icu69/common/putil.cpp... yes
checking whether we may compile src/icu69/i18n/number_affixutils.cpp... yes
checking whether alignof(std::max_align_t) is available... yes
checking whether the ICU data library can be downloaded... downloading the ICU data library (icudt)
output path: icu69/data/icu4c-69_1-data-bin-l.zip
trying URL 'https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip'
Error in download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb"): cannot open URL 'https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip'

trying URL 'http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip'
Error in download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb"): cannot open URL 'http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip'

icudt download failed
Error: Stopping on error
In addition: Warning messages:
1: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  URL 'https://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': status was 'Couldn't connect to server'
2: In download.file(paste(href, fname, sep = ""), icudtzipfname, mode = "wb") :
  URL 'http://raw.githubusercontent.com/gagolews/stringi/master/src/icu69/data/icu4c-69_1-data-bin-l.zip': status was 'Couldn't connect to server'
Execution halted
*** *********************************************************************
*** stringi cannot be built.
*** Failed to download the ICU data library (icudt). Stopping now.
*** For build environments that have no internet access,
*** see the INSTALL file for a workaround.
*** *********************************************************************
ERROR: configuration failed for package ‘stringi’
* removing ‘/home/xu_zw/R/x86_64-pc-linux-gnu-library/4.2/stringi’
* restoring previous ‘/home/xu_zw/R/x86_64-pc-linux-gnu-library/4.2/stringi’

The downloaded source packages are in/tmp/Rtmp1tLgZj/downloaded_packages’
Warning message:
In install.packages("stringi") :
  installation of package ‘stringi’ had non-zero exit status

这次的报错,不确定是环境问题还是网络问题,单看报错内容,应该是网络问题,但是我尝试ping一下github是有回应的。谷歌了一下,有说版本问题的,以及还是库的,问题。

版本的问题也看了,非也

image.png

type shit~ Conda也是过了,装不成功的

大家留意报错内容ERROR的部分,不尽相同的!!M3~
这环节可以参考一下官网的方法:
https://stringi.gagolewski.com/install.html

image.png

本篇的成功解决方法

直接点题了,也是愚了,关键就是本地安装

1.加载ICUDT安装,官方文件https://raw.githubusercontent.com/gagolews/stringi/master/INSTALL,应该要科学上网

install.packages("stringi", configure.vars="ICUDT_DIR=<icudt_dir>")

2.不行没关系,自己下载安装解压

wget https://github.com/gagolews/stringi/archive/master.zip -O stringi.zip
unzip stringi.zip
sed -i '/\/icu..\/data/d' stringi-master/.Rbuildignore
R CMD build stringi-master

image.png

3.终端或者在R中下载r包,xyz换成第二步结果的版本号,例如这里是1.8.1

# bash
R CMD INSTALL stringi_x.y.z.tar.gz
# R
install.packages("stringi_x.y.z.tar.gz", repos=NULL)

4.over~

image.png

如有其他情况或者其他解决方案,欢迎大家私信交流,my heart~

目录
相关文章
|
9天前
|
Linux 数据安全/隐私保护
适用于 Linux 的最佳命令行下载加速器
适用于 Linux 的最佳命令行下载加速器
25 3
|
6天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
13 5
|
18天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
45 2
|
19天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
28 3
|
2天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
17 0
|
8天前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
19 0
Damn Vulnerable Linux
 http://www.damnvulnerablelinux.org/
872 0
|
9天前
|
缓存 监控 Linux
|
2天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
11 3
|
2天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
9 3