nginxをコンパイルしようとしています...設定は問題ないようですが、makeと入力すると次のエラーが発生します。
make
make -f objs/Makefile
make[1]: Entering directory '/home/paul/src/ngxbuild/nginx-1.14.0'
cc -o objs/ngx_http_perl_module.so \
objs/src/http/modules/perl/ngx_http_perl_module.o \
objs/ngx_http_perl_module_modules.o \
-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC -Wl,-E -fstack-protector-strong -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu/perl/5.26/CORE -lperl -ldl -lm -lpthread -lc -lcrypt \
-shared
/usr/bin/x86_64-linux-gnu-ld: cannot find -lperl
collect2: error: ld returned 1 exit status
objs/Makefile:1670: recipe for target 'objs/ngx_http_perl_module.so' failed
make[1]: *** [objs/ngx_http_perl_module.so] Error 1
make[1]: Leaving directory '/home/paul/src/ngxbuild/nginx-1.14.0'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2
だからエラーは-lperlが見つかりません
/usr/lib/x86_64-linux-gnu/perl/5.26/
問題はディレクトリがないようですCORE
。 Ubuntu Server 18.0を使用していますが、アップデートとアップグレードを行いましたが、アップデート方法が見つかりません...
Debian StretchにはPerl 5.24.1が含まれており、COREディレクトリが存在するため、/usr/lib/x86_64-linux-gnu/perl/5.24/
Ubuntuでコアディレクトリをインストールしない理由とインストール方法
答え1
このCan not find -lperl
エラーは見つかりませんでしたlibperl
。
Debian Stretch では、以下が提供しています。libperl-dev
% apt-file list libperl-dev
libperl-dev: /usr/lib/x86_64-linux-gnu/libperl.a
libperl-dev: /usr/lib/x86_64-linux-gnu/libperl.so
libperl-dev: /usr/share/doc/libperl-dev/README.cross
libperl-dev: /usr/share/doc/libperl-dev/changelog.Debian.gz
libperl-dev: /usr/share/doc/libperl-dev/copyright
Ubuntuにも同様のパッケージが必要になると予想されます。