一般ユーザーでありながら、昇格された権限で Openvpn を修正するにはどうすればよいですか?

一般ユーザーでありながら、昇格された権限で Openvpn を修正するにはどうすればよいですか?
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 スクリプトでそのスクリプトを指定することができます。 を実行すると、やconfigure --helpなどの環境変数の設定について説明されている箇所が表示されるはずです。これらを、コンパイルされた libpam の共有ライブラリ (.so ファイル) とヘッダー (.h ファイル) がある場所に手動で設定します。LIBPAM_LIBSLIBPAM_CFLAGS

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-configlibpammake installステップに設定することもできますすべきインストール時に libpam.pc をそのディレクトリにプッシュします ( で設定した場合--prefix=/home/mirror/build/ins/ins_vpn)。PKG_CONFIG_PATH を設定すると、pkg-configユーティリティにそのディレクトリ内でプログラムのコンパイルおよびリンク フラグに関するデータを含むファイルを検索するように指示する.pcことになります。多くの標準ライブラリは pkg-config と autoconfig を使用するため、他のパッケージに対してもこれらの手順を繰り返すことができます。

適切なバージョンの libpam ソースを入手するには、ソース rpm をダウンロードしてソースを解凍するか、ディストリビューションが使用している libpam アップストリームのバージョンを調べてそのバージョン (またはそれ以降のバージョンでもおそらく動作する) を取得するだけで十分です。

ボックスのルート アクセス権がないため、デバイスを操作することはできない可能性がありますtun(tapシステム管理者が権限を与えていない限り)。そのため、openvpn をコンパイルしたとしても、ルート権限なしでは有用な VPN トンネルを作成できない可能性があります :)

答え2

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

これにより、すべての依存関係が解決されます

答え3

私はルートとしてコマンドでOpenVPN 2.3.0をインストールしようとしました./configureが、必要なlibpamが見つからないという同じエラーが発生しました。パッケージをインストールしましたlibpam0g-devそして./configure再度実行して正常に終了しました。

ルート権限がないとおっしゃっていますが、そのパッケージをインストールできれば、おそらくあなたが./configureやろうとしていることを完了できるでしょう。

関連情報