ubuntu 8.04.1 LTS Desktop Editionのgccでコンパイル不可能とは思わなかった

今更ながらubuntuを7.10から8.04にアップグレードした。いつも使っているFirefoxのアドオンがFirefox 3に対応するのを待っていたのだ。まあアップグレードといっても途中で止まってしまってにっちもさっちもいかなくなったので、結局クリーンインストールしたのだが。パッケージ取得で止まるならともかく、その後の設定の更新の所で3時間以上も進捗無しでストップされても困る。

しかし8.04のデフォルトではgccでhello, worldすら通らないとは思わなかった。Unix系のOSとかLinuxディストリビューションって最初からANSI Cの範囲ならソースをコンパイルできるという思い込みがあるので、gccが「error: stdio.h: No such file or directory」という警告を出した瞬間に「もしかしてubuntuのインストールで何か失敗したの?」と一瞬疑った。しかしそれで正常らしい。

ubuntu 8.04ではデフォルトでgccはインストールされるが、肝心のビルド用のヘッダとライブラリがインストールされない。なのでgccにヘッダがないと怒られてしまう。

解決策はlibc6-devをインストールすること。ネット上に「build-essentialを入れたら解決された」という情報もあるが、これは要するにbuild-essentialの依存関係にlibc6-devが含まれているからだ。