概要
なんなん???
Debian で SoftEther を使ってると最新版、特に開発版を使ってみたくなりがちです。
ですが、、、「どうしても deb パッケージで管理したいなぁ」と思う人なのでやってみることにしました。
基本的に「GitHub Action」に掲載されている内容に+αしています。(ネタバレ
sid あるじゃん? あれを apt source から引っ張って stable で使わないの???
これですよね?
使おうと思ったんですけど、書いてる時点(2024年10月25日)の3年前から手入れされてないっぽいので困ったんですw
下準備
「GitHub Action」の linux.yml に掲載されている「Install dependencies」欄の他にビルドで必要なパッケージをインストールします。
事前に一般ユーザーでビルドするのでユーザーを作っておきます。 自分は「softether」というアカウントを作りました。
[root@vpn softether]# apt -y install cmake gcc g++ ninja-build libncurses5-dev libreadline-dev libsodium-dev libssl-dev make zlib1g-dev liblz4-dev libnl-genl-3-dev
[root@vpn softether]# apt -y install dpkg-dev pkg-config build-essential
pkg-config を入れたのは素の Debian でビルドしていると「pkg-config が入っていない」と怒られちゃうからです。
ビルド
ここでは「GitHub Action」の linux.yml に掲載されている「Build」欄に書いてる内容のまま実行します。
[softether@vpn ~]$ git clone --depth 1 https://github.com/SoftEtherVPN/SoftEtherVPN
[softether@vpn ~]$ cd SoftEtherVPN
[softether@vpn SoftEtherVPN]$ mkdir build
[softether@vpn SoftEtherVPN]$ cd build
[softether@vpn build]$ cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
[softether@vpn build]$ cmake --build .
環境変数を設定してビルドする場合は公式のビルドマニュアルに書いてあるとおりで、以下のようにします。
[softether@vpn ~]$ git clone --depth 1 https://github.com/SoftEtherVPN/SoftEtherVPN
[softether@vpn ~]$ cd SoftEtherVPN
[softether@vpn SoftEtherVPN]$ mkdir build
[softether@vpn SoftEtherVPN]$ cd build
[softether@vpn SoftEtherVPN]$ cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSKIP_CPU_FEATURES=ON -DSE_PIDDIR=/run/softether -DSE_LOGDIR=/var/log/softether -DSE_DBDIR=/var/lib/softether ..
[softether@vpn build]$ cmake --build .
パッケージ作り
ここでは「GitHub Action」の linux.yml に掲載されている「Build deb packages」欄に書いてる内容のまま実行して、生成した deb パッケージをホームディレクトリに移します。
[softether@vpn build]$ cpack -C Release -G DEB
[softether@vpn build]$ mv *.deb ~/
これでパッケージ作りはおしまいです。 出来上がったパッケージを dpkg でそのまま突っ込んだり煮るなり焼くなり(ry
なんとか2回目以降もできんのか???
初回のパッケージの作り方をまとめましたが2回目以降もパッケージ作りたいときはもうスクリプトにしてしまうのがいいでしょう。
#!/bin/bash
cd ~softether/SoftEtherVPN/
if [ -d build ]; then
rm -vrf build
fi
git pull
git submodule update --remote --init --recursive
mkdir -p build; cd build
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSKIP_CPU_FEATURES=ON -DSE_PIDDIR=/run/softether -DSE_LOGDIR=/var/log/softether -DSE_DBDIR=/var/lib/softether ..
cmake --build .
cpack -C Release -G DEB
mv *.deb ~/
まとめ
そんなわけで sid の進捗よくない状態で開発版を deb パッケージにしてみたお話でした。
今回は Debian 環境のみですが RHEL はじめ RPM パッケージな環境でも出来そうな気がします(試したとかこれから試すとは言ってない
いやぁ〜 GitHub Action のコンフィグには勉強になる項目があって本当にいいものですねぇ〜(水野晴郎さん風