Como corrigir o Openvpn com direitos elevados enquanto usuário comum?

0
checking tap-windows.h presence... no
checking for tap-windows.h... no
checking whether TUNSETPERSIST is declared... yes
checking for setcon in -lselinux... yes
checking for pam_start in -lpam... no
checking for OPENSSL_CRYPTO... yes
checking for OPENSSL_SSL... yes
checking for EVP_CIPHER_CTX_set_key_length... yes
checking for ENGINE_load_builtin_engines... yes
checking for ENGINE_register_all_complete... yes
checking for ENGINE_cleanup... yes
checking for ssl_init in -lpolarssl... no
checking for aes_crypt_cbc in -lpolarssl... no
checking for lzo1x_1_15_compress in -llzo2... no
checking for lzo1x_1_15_compress in -llzo... no
checking for PKCS11_HELPER... no
checking git checkout... yes
configure: error: libpam required but missing
[mirror@innov openvpn]$ ./configure --help | grep libpam
  --enable-pam-dlopen     dlopen libpam [default=no]
              C compiler flags for libpam
  LIBPAM_LIBS linker flags for libpam
[mirror@xxx openvpn]$ ./configure --prefix=/home/mirror/build/ins/ins_vpn --disable-lzo 

erro: libpam obrigatório, mas ausente

Eu apenas não tenho privilégios para instalar o pacote chamado libpam, então eu posso construir a libpam e instalá-la no diretório home, e então construir o openvpn baseado nela?

    
por hugemeow 25.09.2012 / 22:07

3 respostas

2

Sim, é claro que você pode compilar coisas como um usuário comum e apontar o script de configuração para ele. Execute configure --help e você provavelmente verá onde fala sobre como configurar variáveis de ambiente como LIBPAM_LIBS e LIBPAM_CFLAGS . Configure-os manualmente para o local onde estão as bibliotecas compartilhadas (arquivos .so) e os cabeçalhos (arquivos .h) para uma libpam compilada.

Eu aconselho que você configure um "prefixo local" onde o openvpn e todas as suas dependências possam ser agregadas. Pense nesse prefixo como seu próprio diretório /usr .

Parece que a sua configuração já está definida --prefix para / home / mirror / build / ins / ins_vpn, portanto, / home / mirror / build / ins / ins_vpn / include seria o valor a ser definido para a variável de ambiente LIBPAM_CFLAGS e / home / mirror / build / ins / ins_vpn / lib seria o valor a ser definido para a variável de ambiente LIBPAM_LIBS . Naturalmente, os nomes das variáveis de ambiente podem variar dependendo de qual configure --help diz. Então, corra e leia.

Você também pode definir a variável de ambiente PKG_CONFIG_PATH como /home/mirror/build/ins/ins_vpn/lib/pkg-config e a libpam make install step deve enviar a libpam.pc para esse diretório durante a instalação (se você configurá-la com --prefix=/home/mirror/build/ins/ins_vpn ) . Configurando PKG_CONFIG_PATH, você está instruindo o utilitário pkg-config a procurar nesse diretório por .pc files, que contêm dados sobre os sinalizadores de compilação e vinculação para programas. Muitas bibliotecas padrão usam o pkg-config e o autoconfig, portanto, você deve conseguir repetir essas etapas para qualquer outro pacote.

Obter uma versão apropriada de fontes libpam é provavelmente apenas uma questão de baixar o rpm fonte e descompactar os fontes, ou apenas descobrir qual versão do libpam upstream sua distro usa e pegar essa versão (ou uma versão posterior provavelmente funcionará também ).

Observe que, como você não tem acesso root na caixa, provavelmente não é possível manipular tun ou tap devices (a menos que o administrador do sistema tenha concedido privilégios), então você provavelmente não conseguirá crie um túnel VPN útil sem raiz, mesmo se você compilar openvpn:)

    
por 25.09.2012 / 22:14
1

yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y

Isso resolverá todas as dependências

    
por 05.08.2014 / 15:00
0

Eu estava tentando instalar o OpenVPN 2.3.0 através de um comando ./configure como root e estava recebendo o mesmo erro sobre a libpam requerida, mas ausente. Eu instalei o pacote libpam0g-dev e executei o ./configure novamente com sucesso.

Eu sei que você disse que não tem root, mas se você puder instalar o pacote, ele provavelmente permitirá que você termine o ./configure que você está tentando fazer.

    
por 06.02.2013 / 22:15