スクリプトを構成するために環境パスをエクスポートできません。

スクリプトを構成するために環境パスをエクスポートできません。

R-3.4.1アクセス権はあるがルートアクセス権はないサーバーでコンパイルしようとしています。バージョンの問題によりスクリプトのコンパイルに失敗しましたzlib。私は指示に従った。ここ、コンパイルし、zilbこのパスを$ LIBRARY_PATH $の両方に追加しようとしましたが、機能しないパスで使用できます。また、上記のリンクに従って次のコマンドを実行してみました。/storage/users/<uname>/trm/zlib/lib$LD_LIBRARY_PATHconfigure

$ ./configure --prefix=/storage/users/<uname>/trm/R LDFLAGS="-L/storage/users/<uname>/trm/zlib/lib"

しかし、エラーはまだ存在します。構成スクリプト自体には、上記のリンクに記載されているエラーはありません。残念ながら、サーバー上のディストリビューションが何であるかわかりません。明らかに何か抜けたものがありますが、何なのかわかりません。


編集1

./configure以下は、コマンドの最後の数行です。

checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking if zlib version >= 1.2.5... no
checking whether zlib support suffices... configure: error: zlib library and headers are required

(@PSkocikが提案したようにこれを試しました)

また、確認のためにコマンドパスを次の場所にコピーして貼り付けましconfigurels

libz.a  libz.so  libz.so.1  libz.so.1.2.11  pkgconfig

編集2
@AmeyaVSの指示に従ってここに投稿したものzlib.pc

prefix=/storage/users/<uname>/trm/zlib
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
sharedlibdir=${libdir}
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.11

Requires:
Libs: -L${libdir} -L${sharedlibdir} -lz
Cflags: -I${includedir}

答え1

configureライブラリへのpkg-configスクリプトパスでスクリプトを提供する必要がありますzlib

GNU Autotools私が図書館を建てるときに通常行うことは次のとおりです。

# First unzip the files from the library zipped file.
tar xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
# if it has **configure** script in the source directory
mkdir objdir
cd objdir
# Set this environment variable from where you want to install the library.
# export ZLIB_HOME=<path where you want to install zlib>
export ZLIB_HOME=$HOME/apps/zlib
../configure --prefix=$ZLIB_HOME
# Build the library
make
# Install the library
make install
# Set the PKG_CONFIG_PATH if PKG_CONFIG_PATH is not set for pkgconfig to locate the build flags for the library.
export PKG_CONFIG_PATH=$ZLIB_HOME/lib/pkgconfig
# or use this in-case the PKG_CONFIG_PATH is not empty:
# export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$ZLIB_HOME/lib/pkgconfig

さて、R同じターミナルセッションでパッケージを設定してみてください。

メモ:
私がよくやっていることは、ライブラリの環境変数です$HOME/.bashrcbashシェルを使用しているとし、端末セッションに対応するファイルを見つけます。)ライブラリが必要な他のパッケージの最新のインストール用にライブラリを維持できるようにするには、次の手順を実行します。

export ZLIB_HOME=$HOME/apps/zlib
# Assuming LD_LIBRARY_PATH is already populated.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ZLIB_HOME/lib
# Assuming PKG_CONFIG_PATH is already populated.
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$ZLIB_HOME/lib/pkgconfig

修正する:
以下を使用して、指定されたバージョンを検索し、すべてのライブラリへのパスを含めることができます。

# Check module/library version
# pkg-config --modversion <library_name>
pkg-config --modversion zlib
# Check compiler include flag for the specified library.
# pkg-config --cflags <library_name>
pkg-config --cflags zlib

zlibバージョンをasにインポートし、1.2.11gccインクルードパスはasであり、構成スクリプトが
-I/storage/users/<uname>/trm/zlib/includeまだバージョンを次にR報告している場合、構成スクリプトは非常に特定の場所で依存ライブラリを見つける可能性が高くなります。zlib1.2.5

関連情報