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 на его основе?
решение1
Да, конечно, вы можете скомпилировать все как обычный пользователь и указать скрипту конфигурации на это. Запустите, 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
libpammake install
долженпоместите libpam.pc в этот каталог при установке (если вы настроили его с помощью --prefix=/home/mirror/build/ins/ins_vpn
). Установив PKG_CONFIG_PATH, вы указываете утилите pkg-config
искать в этом каталоге .pc
файлы, содержащие данные о флагах компиляции и компоновки для программ. Многие стандартные библиотеки используют pkg-config и autoconfig, поэтому вы сможете повторить эти шаги для любых других пакетов.
Для получения подходящей версии исходных кодов libpam, скорее всего, достаточно просто загрузить исходный RPM-файл и распаковать исходные коды, или просто выяснить, какую версию libpam использует ваш дистрибутив, и взять эту версию (или, возможно, подойдет и более поздняя версия).
Обратите внимание, что поскольку у вас нет прав root на устройстве, вы, вероятно, не сможете манипулировать tun
устройствами tap
(если только системный администратор не предоставил вам соответствующих привилегий), поэтому вы, вероятно, в любом случае не сможете создать полезный VPN-туннель без прав root, даже если вы скомпилируете OpenVPN :)
решение2
yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y
Это разрешит все зависимости.
решение3
Я пытался установить OpenVPN 2.3.0 через ./configure
команду от имени root и получал ту же ошибку о том, что libpam требуется, но отсутствует. Я установил пакетlibpam0g-devи снова успешно запустил ./configure
.
Я знаю, что вы сказали, что у вас нет прав root, но если вы сможете установить этот пакет, он, вероятно, позволит вам завершить то, что ./configure
вы пытаетесь сделать.