ViennaRNA的安装使用

安装最新版

可以在github链接找到最新版本,结下来我会以安装最新版,作为例子进行介绍

下载最新版:

https://github.com/ViennaRNA/ViennaRNA/releases/download/v2.6.4/ViennaRNA-2.6.4.tar.gz

解压并且安装(官网安装)

tar -zxvf ViennaRNA-2.6.4.tar.gz
cd ViennaRNA-2.6.4
./configure --prefix=/home/xxx/ViennaRNA-2.6.4
make install

报错并相关的解决方法:

存在perl的问题,利用conda 安装新的perl,不用系统自身的。

问题类似这个blog:blog

conda install -c conda-forge perl

编译的时候strings.h文件中的strdup函数声明冲突。

问题:
make[1]: Entering directory /home/xxxx/ViennaRNA-2.6.4/src/RNAxplorer' Making install in src make[2]: Entering directory /home/xxxx/ViennaRNA-2.6.4/src/RNAxplorer/src’
CC RNAxplorer_cmdl.o
CC RNAxplorer.o
In file included from /usr/include/string.h:633,
from RNAxplorer.c:3:
…/…/…/src/ViennaRNA/utils/strings.h:64:1: error: expected identifier or ‘(’ before ‘extension
strdup(const char *s);
^~~~~~
make[2]: *** [RNAxplorer.o] Error 1

解释:
这个错误信息表明在编译ViennaRNA包的RNAxplorer部分时遇到了问题。错误是由于strings.h文件中的strdup函数声明冲突。在包含了系统的string.h头文件之后,strdup的声明与ViennaRNA包自己的strings.h中的声明发生了冲突。

这可能是因为strdup是一个标准的库函数,而在某些系统中,比如GNU libc,它是非标准的扩展,可能会被条件编译指令保护起来。
因此:
检查ViennaRNA的strings.h是否有条件编译指令来防止与标准库的strdup冲突。

1。 找到strings.h文件的位置。如果您已经知道ViennaRNA的安装目录,您可以在其中搜索该文件。

2。 打开strings.h文件并查看文件内容。您可以使用文本编辑器打开它,例如:
vim /path/to/ViennaRNA/src/ViennaRNA/utils/strings.h

3。在文件中查找strdup相关的定义和声明。特别是寻找#ifdef或#ifndef预处理器指令,这些指令可能用来检查某个宏是否已定义,以决定是否需要声明strdup。例如:
#ifndef HAVE_STRDUP
char *
strdup(const char *s);
#endif
分析原因:
既然strings.h中的strdup函数是用条件编译宏#ifndef HAVE_STRDUP包围的,这意味着如果HAVE_STRDUP没有在编译前定义,ViennaRNA就会尝试自己声明strdup函数。这通常会导致和系统的string.h头文件中的声明冲突。

4。 解决办法:
添加编译选项:
如果您直接使用make来编译ViennaRNA,可以尝试在make命令中添加CFLAGS:
make CFLAGS='-DHAVE_STRDUP'
这会将HAVE_STRDUP定义传递给编译器。

找不到链接器(ld)找不到系统上的LAPACK库(-llapack)

1) 首先利用conda 安装

conda install -c conda-forge liblapack

2)需要将包含LAPACK库的目录添加到您的LD_LIBRARY_PATH环境变量中

export LD_LIBRARY_PATH=/home/xxxx/condaenvs/xxxx/lib:$LD_LIBRARY_PATH

就是将下面两个文件放入LD_LIBRARY_PATH中:
原因:
liblapack.so 和 liblapack.so.3 是LAPACK库在Linux系统中的共享库文件。共享库(或动态链接库)是一种包含可以被其他程序调用的代码和数据的文件。在这种情况下,LAPACK库的功能被封装在这些共享库文件中,以便其他程序可以在运行时链接和使用它们。

在Linux系统中,共享库文件通常有以下几种类型:

.so 文件:这是一个“共享对象”(shared object)文件,它是在编译时用于动态链接的文件。
版本化的 .so 文件:例如 liblapack.so.3,这表示库的特定版本,确保软件链接到正确的库版本。这样可以防止软件更新后因为库版本不兼容而产生问题。
当链接器在编译过程中发出错误,提示找不到 -llapack 时,它通常是在寻找名为 liblapack.so 的文件。如果您已经有了这些文件,那么您可能需要确保它们位于链接器查找共享库的路径上,或者在编译时指定它们的位置。

如果这些文件不在标准的库路径下,您可以:

使用 -L 选项在编译时指定库的路径。
将库的路径添加到 LD_LIBRARY_PATH 环境变量中。
配置 /etc/ld.so.conf 或 /etc/ld.so.conf.d/ 中的文件,然后运行 ldconfig 来更新运行时链接器的配置。

但是好像还是会出现相同的错误当重新make install

ldconfig -p | grep lapack
如果运行 ldconfig -p | grep lapack 没有任何输出,说明 liblapack.so 没有在系统的链接器缓存中注册。这可能是因为:
1. LAPACK库没有安装在标准库路径:系统链接器可能只会自动扫描某些标准路径(如 /lib, /usr/lib, /usr/local/lib),如果LAPACK库不在这些路径中,链接器就不会自动找到它。
2. /etc/ld.so.conf 和 /etc/ld.so.conf.d/ 没有正确配置:这些文件控制了链接器应该扫描哪些路径。如果您将库安装在非标准路径,您需要将该路径添加到这些配置文件中,然后运行 sudo ldconfig 来更新链接器的缓存。

3. 运行 ldconfig 需要管理员权限:更新系统链接器缓存通常需要管理员权限。确保您使用 sudo ldconfig 来刷新缓存。
综上所有错误,提供的最终的解决措施

在使用 ./configure 脚本配置源代码包时,您可以通过设置环境变量 LDFLAGS 来指定链接器应该在哪里查找库文件。LDFLAGS 可以用来添加链接器的选项,-L 用于添加库的搜索路径,-Wl,-rpath 用于设置运行时的库搜索路径。

以下是如何在 ./configure 命令中指定库路径的步骤:
1。 设置 LDFLAGS:

LDFLAGS="-L/home/xxxx/condaenvs/xxxxx/lib -Wl,-rpath,/home/xxxx/condaenvs/xxxx/lib"

2。运行 ./configure:

./configure LDFLAGS="$LDFLAGS" --prefix=/home/xxxx/ViennaRNA-2.6.4

3。编译并安装:

make CFLAGS='-DHAVE_STRDUP'
make install

确保在运行 ./configure 命令之前,已经设置了 LDFLAGS 环境变量,并且包含了LAPACK库的正确路径。

successfully!!!
所有可执行文件都在:
/home/xxxx/ViennaRNA-2.6.4/bin

总结

一般需要编译的时候,可以先安装conda环境,安装gcc/g++,安装perl等重要信息.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ViennaRNA是一个用于RNA二级结构预测、分析和设计的软件包。你可以按照以下步骤在Linux系统上安装ViennaRNA: 1. 打开终端窗口并更新软件包列表: ``` sudo apt-get update ``` 2. 安装ViennaRNA软件包: ``` sudo apt-get install viennarna ``` 3. 安装完毕后,你可以在终端窗口中通过以下命令检查ViennaRNA的版本: ``` RNAfold -v ``` 如果提示未安装,可以尝试重新启动终端窗口,或使用以下命令重新安装: ``` sudo apt-get install --reinstall viennarna ``` 希望这些步骤可以帮助你在Linux系统上安装ViennaRNA。 ### 回答2: ViennaRNA是一款用于RNA序列分析的软件套件,主要用于预测和比较RNA二级结构,以及预测RNA二级结构的自由能和稳定性等。 要安装ViennaRNA,首先需要下载合适的安装软件包。可以从ViennaRNA官方网站上下载适用于不同操作系统的软件包,如Windows、Mac和Linux。 一旦下载完成,根据操作系统的不同,可以选择不同的安装方法。 在Windows系统中,可以直接运行下载的安装程序,并按照提示进行安装。通常安装程序会自动将ViennaRNA安装到默认的目录中,并设置好所需的环境变量。安装完成后,可以在命令行中输入相应的ViennaRNA命令来使用软件。 在Mac系统中,可以双击下载的安装包,将ViennaRNA软件包解压到自定义的文件夹中。然后,可以通过命令行或终端访问该文件夹,并运行其中的可执行文件来使用ViennaRNA。 对于Linux系统,可以使用终端进入下载的软件包所在的目录,并使用特定的命令来解压文件。然后切换到解压后的文件夹中,并运行其中的安装脚本,该脚本将会自动完成ViennaRNA安装安装完成后,可以使用命令行中的ViennaRNA命令来使用软件。 总结来说,安装ViennaRNA主要分为下载适用于不同操作系统的软件包以及按照系统要求进行安装安装完成后,用户就可以开始使用ViennaRNA进行RNA序列分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值