스크립트를 구성하기 위해 환경 경로를 내보낼 수 없습니다.

스크립트를 구성하기 위해 환경 경로를 내보낼 수 없습니다.

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이 제안한대로 이것을 시도했습니다)

또한 확인을 위해 명령 경로를 다음 위치에 복사하여 붙여넣었 configure습니다 ls.

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/.bashrc(bash 쉘을 사용한다고 가정하고 터미널 세션에 해당하는 파일을 찾으십시오.) 라이브러리가 필요한 다른 패키지의 최신 설치를 위해 라이브러리를 유지할 수 있도록 다음을 수행합니다.

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

관련 정보