ORFfinder: 0.4.1linux
本地化ORFfinder原本是一件至關簡單的事情,NCBI已經作的足夠簡潔,下載ORFfinder二進制文件,而後就能夠了。c++
可是我這邊卻出現了兩個問題:bash
系統版本的libstdc++版本爲libstdc++.so.6.0.19
,而ORFfinder依賴的CXXABI_1.3.8
和GLIBCXX_3.4.20
在libstdc++.so.6.0.19
中的版本過低服務器
$ strings /lib64/libstdc++.so.6 | grep -i cxxabi CXXABI_1.3 CXXABI_1.3.1 CXXABI_1.3.2 CXXABI_1.3.3 CXXABI_1.3.4 CXXABI_1.3.5 CXXABI_1.3.6 CXXABI_1.3.7 CXXABI_TM_1
因此運行ORFfinder會出現以下問題:網絡
$ /opt/orf-finder/ORFfinder -dryrun /opt/orf-finder/bin/ORFfinder: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /opt/orf-finder/bin/ORFfinder) /opt/orf-finder/bin/ORFfinder: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /opt/orf-finder/bin/ORFfinder)
這個問題比較好解決,直接安裝新版的libgcc
,而後把安裝位置加入到LD_LIBRAY_PATH
裏面就好了。ui
安裝了新版的libgcc
,ORFfinder的運行仍是不能成功,顯示錯誤爲:code
Error: (308.5) [ID2] Service not found Error: (315.2) CConn_Streambuf::CConn_Streambuf(): NULL connector: Unknown Error: (308.5) [ID2] Service not found Error: (315.2) CConn_Streambuf::CConn_Streambuf(): NULL connector: Unknown Error: (308.5) [ID2] Service not found Error: (315.2) CConn_Streambuf::CConn_Streambuf(): NULL connector: Unknown Error: (308.5) [ID2] Service not found Error: (315.2) CConn_Streambuf::CConn_Streambuf(): NULL connector: Unknown Error: (308.5) [ID2] Service not found Error: (315.2) CConn_Streambuf::CConn_Streambuf(): NULL connector: Unknown Error () : cannot open initial connection
顯示錯誤爲不能初始化鏈接
,我想着多是服務器的網絡問題(由於我本地的電腦是能夠正常運行ORFfinder的),可是服務器是能夠正常的訪問NCBI
的,我靈機一動,有多是DNS污染
問題(純屬猜想),因而我在本身電腦上解析了一下NCBI
的域名:get
$ dig ncbi.nlm.nih.gov ; <<>> DiG 9.11.1-P2-RedHat-9.11.1-2.P2.fc26 <<>> ncbi.nlm.nih.gov ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 105 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ncbi.nlm.nih.gov. IN A ;; ANSWER SECTION: ncbi.nlm.nih.gov. 16456 IN A 130.14.29.110 ;; Query time: 4 msec ;; SERVER: ***.***.***.***#53(***.***.***.***) ;; WHEN: Mon Sep 18 19:27:20 CST 2017 ;; MSG SIZE rcvd: 61
能夠發現,個人電腦解析到了:130.14.29.110
這個IP,再在服務器上運行一下:cmd
$ dig ncbi.nlm.nih.gov ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> ncbi.nlm.nih.gov ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41493 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ncbi.nlm.nih.gov. IN A 101.200.194.167 ;; Query time: 3 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: 一 9月 18 19:34:21 CST 2017 ;; MSG SIZE rcvd: 45
能夠看到域名被解析到:101.200.194.167
了,那麼問題就浮出水面了。string
由於個人電腦是用的ISP提供的DNS
,可是服務器的DNS
被設置成了114.114.114.114
,可能就是這個問題致使ORFfinder找不到正確的服務器(話說ORFfinder一個離線應用爲何要鏈接NCBI的服務器?)。
這時我把服務器的DNS
也設置爲ISP提供的DNS
,問題解決!