Softether 開発版 on CentOS7 備忘録

Photo by hyt.

CentOS7 で Softether の開発版を使ってみる備忘録です.

はじめに

Softether って,通常は,

からダウンロードできるバイナリファイルを使うのが普通でしょう.でも,Linux 系の OS の場合,そもそもインストールするのに開発環境が必要です.さらに,少し前から

にソースコードが公開されていますので,Git ならアップデートもやりやすいということで,最近はソースコードからコンパイルして使っています.

で,しばらくアップデートかけて無かったので,アップデートしてみると……何と,素直にはコンパイルできなくなっています.と言うことで,若干,試行錯誤してみた結果のメモとなります.

Intel AES-NI ライブラリの導入

どうせ試行錯誤するんだから Intel AES-NI ライブラリも有効にしてみます.で,Intel AES-NI ライブラリも CentOS7 の最新版だと素直にコンパイルできません.

原因は gcc のオプションです.どうも gcc-4.8.5 以降の場合,-lpthread をコンパイル時にオプションとして渡しておかないと,エラーでコンパイルが止まってしまいます.要するに,gcc のオプションとして,-lpthread を追加で渡してやれば良いのですが,結構いろいろな場所に書換箇所がちらばっているので,以下 patch の形でそれを示しておきます.

実際のコンパイル手順は以下の通りです.

最終的に必要なのは,intel_aes64.a のみですが,正しく作れているか否かは以下の様にすれば分かります.

cmake3 の導入

次は,cmake を導入します.実は,これが Softether の configure スクリプトの中で使われるようになったことが素直にコンパイルできなくなった主原因です.で,さらに困ったことに,何と cmake ver 3.0 以上が要ります(CentOS7 の cmake は2系列).

仕方が無いので,

のように epel リポジトリを追加して,その他の必要パッケージと共に cmake3 を

のように追加しました.なお,cmake ver 2 系列と cmake ver 3 系列は同居可能です.ただし,cmake ver 3 系列を使う場合は cmake3 というコマンドとなります.

Softether の導入

され,これで準備ができましたので,まずは,/usr/local/src に Softether のソースコートをダウンロードします.

今回は,以下の条件に合うようソースコート(Configure スクリプト)を書き換えます.

  1. cmake ではなくて cmake3 を使う.
  2. /usr/local/vpn 以下にインストールする.
  3. Intel AES-NI ライブラリを使う.

書換箇所は以下の通りです(git diff の結果を示します.一部省略).なお,cmake って初めてなので,もっと適切な方法があるのかもしれません.

この書き換えを済ませれば,あとはいつもの通り,

とすることで,

  • /usr/local/vpn/vpnbridge
  • /usr/local/vpn/vpnclient
  • /usr/local/vpn/vpncmd
  • /usr/local/vpn/vpnserver

以下にバイナリファイルが配置され,/usr/local/bin 以下にそれらバイナリファイルを起動するスクリプトがインストールされます.

おわりに

まず,注意として,Softether 開発版じゃなければ,今のところこんな書き換えは必要ありません.安定板も,

に公開されていますので,本来ならばこちらを使うべきでしょう.

しかし,最近,CentOS7 だとこういうことが増えてきました.まぁ,既に7系列が公開されて3年経つので仕方がないんでしょうね…….この息の長さが CentOS の良いところですしね.

以上!

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement