Ubuntu 制作SRS安装包 制作deb包

Ubuntu 制作SRS安装包

一、安装制作工具

安装checkinstall工具,Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:”make install”、”make install_modules”等)并建立一个标准的二进制包。

脚本如下:

apt-get install checkinstall

二、编译

上传代码包,也可以中Git拉取。
下载地址:https://github.com/ossrs/srs/releases

编译过程脚本如下

# 1 解压
tar -zxvf srs-3.0.tar.gz
cd srs-3.0

# 2 编译
chmod +x ./configure
./configure --prefix=/usr/local/srs3
make -j12 && make install

三、第一次构建Deb安装包

构建期间会让填入一些信息或则修改一些信息,名词、版本、维护者、架构、描述等
构建脚本如下:

# 命令           包名称        版本号                         刚刚的解压地址 
checkinstall -D --pkgname=srs --pkgversion=3.0-1 --install=no  --pkgsource=../srs-3.0 

这个时候已经可以编译好安装包了srs_3.0-1_arm64.deb,不过这个包只有运行程序,没有添加为系统服务。

在这里插入图片描述

四、修正Deb安装包

1、解压deb

解压脚本如下:

# 创建临时文件夹
mkdir srsdeb

# 解压deb
dpkg-deb -R srs_3.0-1_arm64.deb srsdeb

2、添加postinst文件

注:安装deb文件时,解压deb文件后会执行这个文件

# 进入控制文件目录
cd srsdeb/DEBIAN/
# 编辑postinst文件,文件内容看下一步(第四点 -> 第3点)
vim postinst

# 编辑后修改权限
chmod +x postinst

3、postinst文件内容

  1. 修改srs配置
  2. 创建系统服务
  3. 设置开启自启
  4. 启动srs服务

已经配置好了,可以直接使用

#!/bin/sh

cat >/usr/local/srs3/conf/srs.conf <<EOF
listen              1935;
max_connections     1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
stats {
    network         0;
    disk            sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    min_latency    on;
    mr {
        enable    off;
    }
    mw_latency    100;
    gop_cache    off;
    queue_length    10;
}
EOF

cd /usr/local/srs3/etc/init.d
chmod +x ./srs

cat >/etc/init.d/srs <<'EOF'
#!/bin/sh
### BEGIN INIT INFO
# Provides:          srs
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: srs service
# Description:       Start the srs service , Made by yiquan
### END INIT INFO
 
case "$1" in
  start)
    /usr/local/srs3/etc/init.d/srs start
    ;;
  stop)
    /usr/local/srs3/etc/init.d/srs stop 
    ;;
  restart)
    /usr/local/srs3/etc/init.d/srs restart
    ;;
  status)
    /usr/local/srs3/etc/init.d/srs status 
    ;;
  reload)
    /usr/local/srs3/etc/init.d/srs reload
    ;;
  rotate)
    /usr/local/srs3/etc/init.d/srs rotate
    ;;  
  grace)
    /usr/local/srs3/etc/init.d/srs grace
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart|reload|rotate|grace}"
        echo "    reload    Apply log file by not restarting SRS"
        echo "    rotate    For log rotate, to send SIGUSR1 to SRS to reopen the log file."
        echo "    grace    For gracefully quit, to send SIGQUIT to SRS."

    exit 1
    ;;
esac
 
exit 0
EOF

chmod +x /etc/init.d/srs
update-rc.d srs defaults
systemctl start srs.service

4、删除帮助文档

如果不删除文档,那么整个包非常大,没有删快30M,删除之后不到1M

# 退回到deb解压目录
cd ..
# 删除所有文档
rm -rf usr/share

在这里插入图片描述

5、重新打包

打包脚本如下:

# 这里更改了包名,是因为在ContOS下打包,包名自动生成。
# 保持名称一致,后缀不同  rpm和deb
# --------------   srs-3.0-1.el7.aarch64.rpm 
cd ..
dpkg-deb -b srsdeb srs-3.0-1.el7.aarch64.deb
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作Ubuntudeb,需要以下步骤: 1. 准备工作:确保安装了必要的软件括dpkg、debhelper、build-essential等。 2. 创建一个工程目录,并在其中进行工作。例如,可以在home目录下创建一个名为"myproject"的目录。 3. 将项目的文件和文件夹复制到"myproject"目录中。这些文件应该括你想要在deb中安装的应用程序源代码、库文件、配置文件等。 4. 在"myproject"目录中创建一个名为"debian"的子目录。这个目录将含控制文件和规则文件。 5. 在"debian"目录中,创建一个名为"control"的文本文件,用于描述软件的基本信息,如软件的名称、版本、作者、依赖项等。可以使用文本编辑器打开该文件进行编辑。 6. 创建一个名为"rules"的文本文件,用于描述软件的构建规则。该文件告诉构建系统如何编译和构建软件。同样,可以使用文本编辑器进行编辑。 7. 编辑完"control"和"rules"文件后,可以使用dpkg-buildpackage命令构建deb。在"myproject"目录中打开终端,运行命令"dpkg-buildpackage -us -uc"。 8. 构建过程可能需要一些时间,运行完命令后,deb将生成在"myproject"目录中的上层目录中。 9. 现在,你可以使用生成的deb进行安装和分发了。 以上是制作Ubuntudeb的基本步骤。具体的操作和配置可能根据项目的需求而有所不同,但这个过程为你提供了一个基本的框架来创建和构建deb

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值