não pode exportar o caminho do ambiente para configurar o script

0

Estou tentando compilar R-3.4.1 em um servidor ao qual tenho acesso (mas sem acesso root). A compilação do script falha devido a zlib version. Eu sigo as instruções aqui , e eu compilo zilb e está disponível no caminho /storage/users/<uname>/trm/zlib/lib Eu tentei adicionar esse caminho para $LD_LIBRARY_PATH e para $ LIBRARY_PATH $ e ele não funciona. Eu também tentei, conforme o link acima, executar o configure da seguinte forma:

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

mas o erro permanece. O script de configuração em si não possui o bug mencionado no link acima. Infelizmente, não sei qual é a distro no servidor. Claramente, estou sentindo falta de algo, mas não sei o quê.

editar 1

Estas são as linhas finais do comando ./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

(Eu tentei isso com a sugestão @PSkocik)

também, para confirmar, copio e colo o caminho que usei para o comando configure em ls :

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

Editar 2
Seguindo as instruções do @AmeyaVS, eu posto aqui o conteúdo de 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}
    
por Yotam 23.07.2017 / 23:14

1 resposta

0

Você precisa fornecer o script configure com o caminho de script pkg-config da biblioteca zlib .

Aqui está o que eu costumo fazer ao criar bibliotecas 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

Agora, tente configurar o pacote R dentro da mesma sessão de terminal.

Nota:
O que eu costumo fazer é adicionar a variável de ambiente para a biblioteca no meu arquivo $HOME/.bashrc ( supondo que você está usando o bash shell, gentilmente encontre o respectivo arquivo para sua sessão de terminal ) assim para a biblioteca ser persistente para instalação mais recente de outros pacotes que requerem esta biblioteca:

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

Atualização:
Você pode encontrar a versão e o caminho de inclusão especificados para qualquer biblioteca usando os seguintes comandos:

# 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

Se você está recebendo zlib versão como 1.2.11 e o gcc inclui o caminho como -I/storage/users/<uname>/trm/zlib/include e ainda o script de configuração para R relata a zlib versão como 1.2.5 , então provavelmente o O script configure está procurando a biblioteca dependente em um local muito especificado.

    
por 24.07.2017 / 08:50