質問: ふと疑問に思ったこと ---------- Linuxカーネルを再構築の際に、Cプログラムをコンパイルしようとしたら**「こんなライブラリーないよ!」**みたいなエラー文言が幾度となく表示されました(下に記載しているのはそのうちの1つです) `sl.c:39:20: fatal error: curses.h: そのようなファイルやディレクトリはありません` `#include ` その都度Googleさんでエラー文言を検索し、同じエラーを解決した人のブログ等に行き当たり、解決!といったプロセスを踏んでいるのが現状です。 これを何回か繰り返しているうちに疑問に思ったのですが、**こういったCライブラリーが何か必要かっていうのはWebで検索して解決する**くらいしか解決策はないのでしょうか。 ちょっと話がずれるかもしれませんが、LinuxコマンドはmanコマンドでLinux操作内で完結できますよね?また、yum等でモジュールをインストールする際もどのモジュールがインストールされているか、されていないのか等分かると思います。 Cライブラリーにもそういった便利機能のようなものってないのでしょうか。漠然とした質問となってしまいますが、
回答: 言語処理系によって、独自のパッケージマネージャを持っているものはあります。 perl なら CPAN, node.js なら npm など。 しかし、Linux 上の C言語のパッケージマネージャはなくて、結局、yum とか apt とかで管理することになります。たとえば、centos で curses.h を含むパッケージを探すなら、以下のコマンドで探せます。 ``` yum provides \*/curses.h ``` 出力例は以下のとおり。 ``` 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp ncurses-devel-5.9-13.20130511.el7.i686 : Development files for the ncurses library リポジトリー : base 一致 : ファイル名 : /usr/include/ncurses/curses.h ファイル名 : /usr/include/ncursesw/curses.h ファイル名 : /usr/include/curses.h ncurses-devel-5.9-13.20130511.el7.x86_64 : Development files for the ncurses library リポジトリー : base 一致 : ファイル名 : /usr/include/ncurses/curses.h ファイル名 : /usr/include/ncursesw/curses.h ファイル名 : /usr/include/curses.h ``` これで、`yum install ncurses-devel`を実行すれば、 curses.h がインストールされることがわかります。