古いApacheバージョン1.3をコンパイルする必要がありますが、次の理由でコンパイルプロセスが失敗します。
mod_auth_dbm.c:77:18: fatal error: ndbm.h: File or directory not found
このndbm.hファイルはどこにありますか?
ここのファイル(Fedora 18)はgdbm-devel
に属しており、Ubuntu用のファイルを含むパッケージにも同様の名前を付ける必要があります。ソースの依存関係を確認してください。おそらく、各依存関係に対応する-devel
パッケージのスワスが必要になります。
脆弱性が知られている古いApacheには何が必要ですか?ディストリビューションのApacheが機能しないのはなぜですか?先史時代にとらわれるよりも、Apacheを転送する必要があるものは何でも移植する方がおそらくはるかに良い考えです...
Ubuntuにはapt-file
パッケージがあり、指定したファイルを含むパッケージを見つけることができます。でインストールする必要があります
Sudo apt-get install apt-file
キャッシュを更新します
apt-file update
必要なパッケージを検索するよりも
apt-file search ndbm.h
そのような名前のファイルを含む tendra パッケージのみがあります。
また、libgdbm-devには/usr/include/gdbm-ndbm.hが含まれています。多分それはあなたが必要とするものです。あなたはそれでコンパイルを試みることができます。
ps。また、ubuntuサイトで search を使用することもできます。
Gdbmソースは、ヘッダーファイルを_/usr/include/gdbm
_に配置します。一部のパッケージングシステム(Arch Linuxなど)はそれらへのシンボリックリンクを配置します(したがって、_/usr/include/ndbm.h
_は_/usr/include/gdbm/ndbm.h
_を指します)が、少なくとも一部のDebianベースのシステムはディレクトリを省略し、_ndbm.h
_の名前を_gdbm-ndbm.h
_(つまり、_gdbm.h
_、_dbm.h
_、および_gdbm-ndbm.h
_があります)。
別のパッケージとの競合を回避するためだったと思いますが、それは不十分な解決策です。
このような問題を回避する1つの方法(特にシステムディレクトリを変更する権限がない場合)は、独自のディレクトリを作成することです。 compat、_compat/ndbm.h
_から_/usr/include/gdbm-ndbm.h
_へのリンクを挿入し、コンパイラにcompatディレクトリ(_-Icompat
_)を検索するように指示します。次に、システムライブラリでファイルが見つからない場合は、自分のディレクトリで正しい名前が見つかります。