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 

ошибка: libpam требуется, но отсутствует

У меня просто нет прав для установки пакета с именем libpam, поэтому я могу собрать libpam и установить его в домашний каталог, а затем собрать openvpn на его основе?

3 ответа3

2

Да, конечно, вы можете скомпилировать материал как обычный пользователь и указать на него скрипт configure. Запустите configure --help и вы, вероятно, увидите, где говорится о настройке переменных среды, таких как LIBPAM_LIBS и LIBPAM_CFLAGS . Установите их вручную в место, где находятся совместно используемые библиотеки (файлы .so) и заголовки (файлы .h) для скомпилированной библиотеки libpam.

Я бы посоветовал вам установить "локальный префикс", в котором openvpn и все его зависимости могут быть агрегированы. Думайте об этом префиксе как о своем собственном каталоге /usr .

Похоже из вашей установки, что вы уже устанавливаете --prefix в /home /mirror /build /ins /ins_vpn, поэтому значение /home /mirror /build /ins /ins_vpn /include будет значением для переменной среды LIBPAM_CFLAGS и /home /mirror /build /ins /ins_vpn /lib будут значением для переменной среды LIBPAM_LIBS . Конечно, имена переменных среды могут отличаться в зависимости от того, что говорит configure --help . Так что запустите и прочитайте.

Вы также можете установить для переменной среды PKG_CONFIG_PATH значение /home/mirror/build/ins/ins_vpn/lib/pkg-config и при make install libpam при установке необходимо вставить libpam.pc в этот каталог (если вы настраиваете его с помощью --prefix=/home/mirror/build/ins/ins_vpn). Установив PKG_CONFIG_PATH, вы указываете утилите pkg-config искать в этом каталоге файлы .pc , которые содержат данные о флагах компиляции и связывания для программ. Многие стандартные библиотеки используют pkg-config и autoconfig, поэтому вы можете повторить эти шаги для любых других пакетов.

Чтобы получить правильную версию исходных текстов libpam, скорее всего, нужно просто загрузить исходный rpm и распаковать исходные коды, или просто выяснить, какую версию libpam upstream использует ваш дистрибутив, и взять эту версию (или более поздняя версия, вероятно, тоже будет работать).

Обратите внимание, что, поскольку у вас нет доступа с правами root на устройстве, вы, вероятно, не сможете управлять устройствами tun или tap (если системный администратор не предоставил вам привилегии), поэтому вы, вероятно, не сможете создать полезный VPN-туннель без root. в любом случае, даже если вы скомпилируете openvpn :)

1

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

Это разрешит все зависимости

0

Я пытался установить OpenVPN 2.3.0 с помощью команды ./configure от имени пользователя root и получал ту же ошибку о том, что libpam требуется, но отсутствует. Я установил пакет libpam0g-dev и снова успешно запустил ./configure .

Я знаю, что вы сказали, что у вас нет root, но если вы сможете установить этот пакет, он, вероятно, позволит вам завершить ./configure которую вы пытаетесь сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .