Ubuntu20.04にepgrecをインストール方法を書いておきます。Ubuntu20.04 Serverのインストールは「Ubuntu20.04 Serverのインストール」を参考にしてください。
epgrecを利用するうえで、Ubuntu20.04の大きな変更点は、phpが7.4になったことと、mysqlが8.0.19になったことによるDBサーバ側の挙動の変更点です。その他、epgrecに大きな影響のある変更点はありません。
実作業
sudo apt update ;sudo apt upgrade
sudo apt install apache2 php-fpm php-cli mysql-server mysql-client php-mysql mercurial php-xml php-mbstring libapache2-mod-php
sudo apt install pcscd libpcsclite1 libpcsclite-dev libccid pcsc-tools git build-essential autoconf unzip pkg-config samba
sudo apt install php7.4-mysql libmysqlclient-dev libmysqlclient21
sudo apt install wine ffmpeg ruby
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine32
sudo timedatectl set-timezone Asia/Tokyo
sudo sed -i 's/www-data//g' /etc/at.deny
sudo cp /etc/php/7.4/fpm/php.ini /etc/php/7.4/fpm/php.ini.bak
sudo sed -i 's/^disable_functions/;disable_functions/g' /etc/php/7.4/fpm/php.ini
sudo sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.4/fpm/php.ini
diff /etc/php/7.4/fpm/php.ini /etc/php/7.4/fpm/php.ini.bak
sudo cp /etc/php/7.4/cli/php.ini /etc/php/7.4/cli/php.ini.bak
sudo sed -i 's/^disable_functions/;disable_functions/g' /etc/php/7.4/cli/php.ini
sudo sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.4/cli/php.ini
diff /etc/php/7.4/cli/php.ini /etc/php/7.4/cli/php.ini.bak
sudo cp /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.bak
sudo sed -i 's/^disable_functions/;disable_functions/g' /etc/php/7.4/apache2/php.ini
sudo sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php/7.4/apache2/php.ini
diff /etc/php/7.4/apache2/php.ini /etc/php/7.4/apache2/php.ini.bak
sudo su -
mkdir ~/pt3
cd ~/pt3
echo "blacklist earth_pt3" >> /etc/modprobe.d/blacklist.conf
git clone https://github.com/m-tsudo/pt3.git ./
make clean ;make; make install
reboot
MySQLのインストールと設定
MySQL8.xでは、以下の設定をしないとキーワード予約時にエラーが発生するので、設定後にmysq1を再起動させてください。
/etc/mysql/mysql.conf.d/mysqld.cnfの中の[mysqld]の下に下記の設定を付け加えます。
[mysqld]
sql-mode = ''
sudo service mysql restart
DBを作成します。ポイントは「with mysql_native_password」を指定することです。
mysql -uroot -p
create database epgrec;
CREATE USER 'epgrec'@'localhost' IDENTIFIED with mysql_native_password BY 'yourpassword';
GRANT ALL ON epgrec.* TO 'epgrec'@'localhost';
flush privileges;
recpt1の準備
以下、暗号解除
cd /tmp
wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
tar -jxvf tip.tar.bz2
tar -zxvf recpt1-http-rev4.tar.gz
patch -p2 -d pt1-c8688d7d6382/recpt1/ recpt1-http-rev4/recpt1-http.diff
cd /tmp/pt1-c8688d7d6382/recpt1/
wget http://hg.honeyplanet.jp/pt1/archive/tip.tar.bz2
cd /tmp/pt1-c8688d7d6382/recpt1
# PT2/3混在環境の場合にはpt1_dev.hの/dev/pt1video**を
# 必要個数、pt3video**のようにPT3用に書き換えます。
# PT1/PT2のみの場合には、pt1_dev.hの書き換えの必要はありません。
# pt3のみの環境の場合には、sedで一括置換でOKです。
sed -i 's/pt1video/pt3video/g' pt1_dev.h
./autogen.sh
./configure --enable-b25; make ; sudo make install
recpt1 -version
# 下記のように出力されればOK。
# recpt1 1.2.0
# recorder command for PT1/2 digital tuner.
# 序に録画テストも行っておく
cd /tmp
recpt1 --b25 --strip 27 20 test.ts
UNA版の必要ソフトウェアのダウンロード
作者さんが公開してくださっているので、適当な何かの別館のこのページから次の3ファイルをダウンロードし、サーバの/tmpにコピー(Linuxホストからはscp、windowsからならwinscpを利用)して下さい。
ブラウザから設定を行う
http://ipアドレス/epgrec
にアクセスして画面の指示通りに設定を進めてください。
設定画面は非常に解り易く作られているので、説明を見ながらでも十分に設定可能です。

録画ファイル名の形式やその他の設定値について
私の場合は、『%YEAR%%MONTH%%DAY%_%HOUR%%MIN%_%TYPE%%CH%_%TITLE%』で運用してみます。
あと、ページに表示する番組表の長さは、24時間にしました。

番組表更新のgetepgをcronに登録する
sudo cp /var/www/html/epgrec/cron.d/shepherd /etc/cron.d/
sudo vi /etc/cron.d/shepherd
# getepgの実行時間は適宜変更します。
# デフォルトだと、2時間おきに○時29分になったら番組表の更新処理がされるみたいです。
# 作者さんのデフォルトの指定がベストチョイスだったのでそのままにしました。
# あと、/var/www/htmlのところのパスは、epgrecインストール先のパスとあっていることを確認してください。
29 */2 * * * www-data /var/www/epgrec/shepherd.php
最後に
上記手順のままだと録画失敗します。原因はarib25の導入が含まれていないためです。そちらは適宜対応してください。