こんにちは、iijm-lです🐰
突然ですが、ここで問題です。
「Linuxを使ってバイオインフォマティクスを始めてみたい!」という方が、
" 1番最初に行き詰まる難関 "といえば、何でしょうか?
それは
解析環境構築
※ 個人の感想です
環境構築は慣れないと難しく、その壁を突破するのはかなりのエネルギーが必要です。
😩 インストールページと同じようにコマンドを打っているのに、入らない!
😩 なんかメッセージが出てるけど、何が原因なのかよく分からない!
😩 Error の文字を見ると、戦意喪失!
お気持ち、とても分かります。これは、誰もが通る道なのです。
今日は、よくあるビルドエラーの1つを紹介して、その対処法をまとめたいと思います!
***.h: No such file or directory
ソースコードファイルをダウンロードし、いざmake
コマンドでビルド。
こんな感じのコンパイルエラー、出会ったことありませんか?
(configure
コマンドでもよく見かけます)
make[1]: Entering directory '/home/amelieff/src/xxxx/xxxx' g++ -c -O2 -Wall readSet.c -o readSet.o readSet.c:35:10: fatal error: zlib.h: No such file or directory 35 | #include <zlib.h> | ^~~~~~~~ compilation terminated. make[1]: *** [Makefile:20: readSet.o] Error 1 make[1]: Leaving directory '/home/amelieff/src/xxxx/xxxx' make: *** [Makefile:62: lib-recur] Error 1
上記の例は、「zlib.h
というファイルを参照したいけど見つかりませんよ」というメッセージになります。
なるほどそうか。原因はわかりました。
apt-get
、dnf
、yum
などのLinuxパッケージマネージャでインストールすれば良いのですが、どんなコマンドを打てば良いのでしょうか?
そんな時は、どのパッケージにそのファイルが入っているのかを調べれば良いのです。
調べ方
Debian系(Ubuntu)
apt-file
コマンドで検索できます。
入っていない場合は、まずダウンロード&アップデートしてから使ってください。
$ sudo apt install apt-file $ sudo apt-file update
部分一致検索なので、多くの検索結果が出力されます。
$ apt-file search zlib.h . . . zlib1g-dev: /usr/include/zlib.h
多すぎてどれを入れればいいか迷ってしまう場合は、先頭に/usr/include/
を付けて再検索しましょう。
$ apt-file search /usr/include/zlib.h zlib1g-dev: /usr/include/zlib.h
ここで、zlib1g-dev
というパッケージに含まれることがわかりました。
あとは、apt-get
でダウンロードすればOKです。
$ sudo apt-get install zlib1g-dev
実は、コマンドを使わなくても、Ubuntuの公式サイトでも検索できます。
Ubuntu – Ubuntu パッケージ検索
RedHat系(CentOS 7)
RHELやCentOS 7以下では、yum provides
を使います。
こちらは完全一致検索のため、ワイルドカード(*
)を使ってパターンマッチさせることができます。
$ yum provides '*/zlib.h' . . . zlib-devel-1.2.7-18.el7.x86_64 : Header files and libraries for Zlib development リポジトリー : base 一致 : ファイル名 : /usr/include/zlib.h
パッケージ名zlib-devel
が分かったら、yum install
でダウンロードすればOKです。
$ sudo yum install zlib-devel
Fedora系(CentOS 8)
yumと同じで、provides
を用います。
こちらも、ワイルドカード(*)を使ってパターンマッチさせることができます。
$ dnf provides '*/zlib.h'
パッケージ名zlib-devel
が分かったら、dnf install
でダウンロードすればOKです。
$ sudo dnf install zlib-devel
まとめ
必要なソフトウェアはインストールドキュメントに書いてあることもありますが、はっきりとは書いてない場合が結構あります。
慣れないうちは、解析を始める前からエラーがたくさん出てしまい、挫折したくなりますよね。
つまづいている方のお役に立てたら幸いです✨
今まで様々な解析環境を構築してきたので、またブログにしたいと思います!