解决error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32 数据库位数不匹配问题
问题
[root@zch ~]# /root/app/viroblast/blast+/bin/makeblastdb -help
/root/app/viroblast/blast+/bin/makeblastdb: error while loading shared libraries: libnsl.so.1: wrong ELF class: ELFCLASS32
在云服务器上使用BLAST时出现如上错误。百度发现数据库位数不匹配,uname命令发现自己的服务器是64位系统,而yum安装的libnsl.so.1是32位
[root@zch lib64]# uname -a
Linux zch 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
解决方案
去 pkgs.org下载64位的libnsl.so.1源码包手动安装
[root@zch lib64]# wget http://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/glibc-2.28-127.el8.src.rpm
--2021-04-19 09:38:57-- http://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/glibc-2.28-127.el8.src.rpm
Resolving vault.centos.org (vault.centos.org)... 54.186.51.210
Connecting to vault.centos.org (vault.centos.org)|54.186.51.210|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/glibc-2.28-127.el8.src.rpm [following]
--2021-04-19 09:38:57-- https://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/glibc-2.28-127.el8.src.rpm
Connecting to vault.centos.org (vault.centos.org)|54.186.51.210|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17200862 (16M) [application/x-rpm]
Saving to: ‘glibc-2.28-127.el8.src.rpm’
glibc-2.28-127.el8.src.r 100%[================================>] 16.40M 1.54MB/s in 11s
2021-04-19 09:39:10 (1.44 MB/s) - ‘glibc-2.28-127.el8.src.rpm’ saved [17200862/17200862]
下载完成后按照官网说明安装即可
[root@zch lib64]# dnf install libnsl
Last metadata expiration check: 0:39:35 ago on Mon 19 Apr 2021 09:00:13 AM CST.
Package libnsl-2.28-127.el8.i686 is already installed.
Dependencies resolved.
==================================================================================================
Package Architecture Version Repository Size
==================================================================================================
Installing:
libnsl x86_64 2.28-127.el8 BaseOS 99 k
Transaction Summary
==================================================================================================
Install 1 Package
Total download size: 99 k
Installed size: 160 k
Is this ok [y/N]: y
Downloading Packages:
libnsl-2.28-127.el8.x86_64.rpm 684 kB/s | 99 kB 00:00
--------------------------------------------------------------------------------------------------
Total 680 kB/s | 99 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : libnsl-2.28-127.el8.x86_64 1/1
Running scriptlet: libnsl-2.28-127.el8.x86_64 1/1
Verifying : libnsl-2.28-127.el8.x86_64 1/1
Installed:
libnsl-2.28-127.el8.x86_64
Complete!
测试
[root@zch lib64]# /root/app/viroblast/blast+/bin/makeblastdb -help
USAGE
makeblastdb [-h] [-help] [-in input_file] [-input_type type]
-dbtype molecule_type [-title database_title] [-parse_seqids]
[-hash_index] [-mask_data mask_data_files] [-gi_mask]
[-gi_mask_name gi_based_mask_names] [-out database_name]
[-max_file_sz number_of_bytes] [-taxid TaxID] [-taxid_map TaxIDMapFile]
[-logfile File_Name] [-version]
DESCRIPTION
Application to create BLAST databases, version 2.2.28+
REQUIRED ARGUMENTS
-dbtype <String, `nucl', `prot'>
Molecule type of target db
问题解决
后记
貌似不用下载glibc,不知道是否可以直接dnf install libnsl