当前位置: 首页 > article >正文

解决银河麒麟无SRS安装包的痛点:自己动手丰衣足食,rpm打包指南

大家好最近在搞国产化适配项目在银河麒麟高级服务器系统上需要部署 SRS 做流媒体分发。本来想着 yum install -y srs 一把梭结果你懂的官方源里压根没有网上倒是有几个 SRPM 包但版本老得能进博物馆。自己编译运行倒是简单可运维那边不干啊——没 rpm 包后续分发、升级、卸载全靠手搓这不符合生产环境的“洁癖”。得自己动手打一个 rpm 包吧。以前总觉得打 rpm 是件很“上古”的事一堆宏定义、spec 文件看着头大。但真走一遍下来发现只要理清了逻辑这玩意儿就是个编译动作的自动化脚本顺便帮你把文件收拾利索了。今天就把我在银河麒麟 V11 (2503 版本)上给SRS 7.0打 rpm 包的过程掰扯清楚。希望能给正在搞国产化信创的小伙伴一点参考。准备编译环境工欲善其事我用的系统版本是[rootk8s-master ~]# cat /etc/.kyinfo[dist]nameKylin-Server-V11milestone2503-Release-General-20250715archx86_64betaFalsetime2025-07-23 06:01:24dist_idKylin-Server-V11-2503-Release-General-20250715-x86_64-2025-07-23 06:01:24[servicekey]key0537044[os]toterm2026-10-27这就是我们常说的麒麟 V11 2503内核是 6.6 的生产环境很常见。首先你得有一台安装好银河麒麟V11-2503的机器物理机或虚拟机都行。确保系统能联网我们要把打包要用到的家伙事儿先请进来yuminstall-ygitgcc-cmakecmake perl openssl-devel automake ffmpeg-devel rpm-build rpmdevtoolsrpmdevtools 这个包很关键它能帮你快速建立打包工作目录不用自己 mkdir 一堆文件夹。装完跑一句rpmdev-setuptree这命令会在你家目录下生成一个 rpmbuild 文件夹里头长这样~/rpmbuild/ ├── BUILD# 编译源码的地方├── RPMS# 生成的二进制 rpm 包├── SOURCES# 放源码包和补丁文件├── SPECS# 放 spec 文件打包的核心剧本└── SRPMS# 源码 rpm 包这个结构记心里后面我们就在这“一亩三分地”里折腾。获取SRS源码我们直接从SRS的GitHub仓库获取最新的稳定版。如果网络访问受限可以从国内获取国内地址https://gitcode.com/GitHub_Trending/sr/srs?source_modulesearch_projectGitHub 地址https://github.com/ossrs/srs解压下载的源码包unzipsrs-develop.zip编译SRS 见证奇迹的时刻配置编译配置项SRS的编译脚本做得很友好直接./configure 就行。但注意默认配置会开启很多功能比如HTTP API、HLS、DASH等如果你不需要可以禁用以减少依赖我这里关闭了ffmpeg-fit。cdsrs-develop/trunk/ ./configure --ffmpeg-fitoff预编译出现的问题我们先前其实安装了只是找不到库文件建立软连接解决cd/usr/include/ln-sffmpeg/libavcodec libavcodecln-sffmpeg/libavutil libavutilln-sffmpeg/libavformat libavformatln-sffmpeg/libswscale libswscaleln-sffmpeg/libswresample libswresample# 验证ls-lalibavcodec编译安装SRSmakemakeinstall手动启动SRSSRS默认的安装目录在/usr/local/srs下面。手动启动SRS可能出现的问题这是因为**Linux 系统对单个进程允许打开的最大文件描述符数量max open files限制为 1024**而 SRS 需要的连接数包含文件描述符超过了这个限制导致配置校验失败。解决方案编辑文件 /etc/security/limits.conf 在文件末尾添加以下内容替换为运行 SRS 的用户如 rootroot soft nofile10000root hard nofile10000* soft nofile10000* hard nofile10000修改完成之后重启系统生效。RPM打包整理 SRS 编译产物创建临时目录存放待打包的 SRS 文件# 创建临时目录存放待打包的 SRS 文件mkdir-p/tmp/srs-package/usr/local/mkdir-p/tmp/srs-package/etc/systemd/system/mkdir-p/tmp/srs-package/var/log/srs# 复制编译后的二进制文件核心执行文件等文件cp-ra/usr/local/srs /tmp/srs-package/usr/local/创建systemd 服务启动文件方便管理srs服务。vim/tmp/srs-package/etc/systemd/system/srs.service[Unit]DescriptionSRS Streaming ServerAfternetwork.target[Service]TypesimpleWorkingDirectory/usr/local/srsExecStart/usr/local/srs/objs/srs-c/usr/local/srs/conf/https.rtmp2rtc.confRestarton-failureRestartSec5PIDFile/var/run/srs.pidLimitNOFILE65536[Install]WantedBymulti-user.target初始化 RPM 打包目录结构# 自动生成 ~/rpmbuild 目录rpmdev-setuptree编写 RPM 规格文件.spec创建 spec 文件vim~/rpmbuild/SPECS/srs.spec这是最难搞也是最有意思的一步。在 ~/rpmbuild/SPECS 目录下新建一个 srs.spec 文件。别被它吓着本质上就是定义从哪里拿源码 - 怎么编译 - 生成哪些文件 - 安装前后执行啥命令。下面是我的 srs.spec加了注释方便你理解# 基础信息Name: srs Version:7.0.137 Release:1%{?dist}Summary: Simple Real-Time Server(SRS)- Open Source RTMP/HLS/RTSP/WebRTC Server License: MIT URL: https://github.com/ossrs/srs Source0: srs-package.tar.gz# 依赖确保系统有基础依赖# Requires: glibc, systemd# BuildRequires: rpm-build, gcc, gcc-c%description SRS is a simple, high-efficiency, real-time video server supporting RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181. %prep# 解压源码包自动读取 Source0%setup-q-nsrs-package %install# 将临时目录的文件复制到 RPM 安装根目录%{buildroot} 是 RPM 构建临时根cp-r* %{buildroot}/ %files# 定义 RPM 包包含的文件路径需与 install 一致/usr/local/srs /etc/systemd/system/srs.service /var/log/srs/# 权限设置%defattr(-,root,root)%post# 安装后操作重新加载 systemd、设置开机自启systemctl daemon-reload systemctl start srs systemctlenablesrs--now%preun# 卸载前操作停止服务if[$1-eq0];thensystemctl stop srs systemctl disable srsfi%changelog * Tue Mar102026Alex2467813384qq.com-7.0.137-1 - Initial RPM packageforSRS打包并生成 RPM 包打包待安装文件为 tar.gz# 进入临时目录打包为源码包cd/tmptar-zcvfsrs-package.tar.gz srs-package/# 将源码包移动到 rpmbuild 的 SOURCES 目录mvsrs-package.tar.gz ~/rpmbuild/SOURCES/构建 RPM 包spec 文件写好了源码也放到位了执行打包命令# 进入 SPECS 目录执行打包命令cd~/rpmbuild/SPECS/ rpmbuild-basrs.spec获取生成的 RPM 包打包成功后RPM 包会生成在 ~/rpmbuild/RPMS/x86_64/需根据系统架构调整# 查看生成的 RPM 包ls~/rpmbuild/RPMS/x86_64/验证与安装 RPM 包安装生成的 RPM 包把打好的包传到一台测试机上试试rpm-ivhsrsr软件包包名验证安装查看srs服务状态systemctl status srs查看SRS监听端口使用 netstat -nplt 查看端口如果看到1935RTMP、1985HTTP API、8080HTTP Server等端口在监听恭喜你打包成功netstat-nplt小小总结一下折腾了大半天终于把SRS的rpm包打出来了。对于信创项目而言很多软件都需要这样“手搓”rpm包。整个过程不算复杂但细节不少。尤其是spec文件的编写需要反复调整。不过一旦成功后续再编译新版本就轻车熟路了。希望这篇文章能帮助到正在国产系统上折腾的你。如果你在打包过程中遇到问题欢迎在评论区留言交流。原创不易如果觉得有用请点个赞、转发、关注支持一下让更多人看到。

相关文章:

解决银河麒麟无SRS安装包的痛点:自己动手丰衣足食,rpm打包指南

大家好,最近在搞国产化适配,项目在银河麒麟高级服务器系统上,需要部署 SRS 做流媒体分发。 本来想着 yum install -y srs 一把梭,结果你懂的,官方源里压根没有,网上倒是有几个 SRPM 包,但版本老…...

计算机毕业设计源码:python房产大数据可视化分析平台 Django框架 可视化 Requests爬虫 房屋 房子 房源 数据分析 (建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...

计算机毕业设计源码:python二手房市场数据可视化系统 Django框架 可视化 Requests爬虫 房屋 房子 房源 数据分析 (建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...

计算机毕业设计源码:python链家二手房数据采集分析平台 Django框架 可视化 Requests爬虫 房屋 房子 房源 数据分析 (建议收藏)✅

博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战8年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...

【2026年滴滴春招- 3月15日 -第二题- 开心食堂】(题目+思路+JavaC++Python解析+在线测试)

题目内容 你开了一家食堂。新的一天的营业从第 000 时刻开始,这一天食堂将迎来 nnn 个顾客,其中第 iii</...

搭建调度中心->XXL_JOB

XXL-JOB 是一个轻量级分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 1.克隆代码 使用 IDEA &#xff0c;从码云 https://gitee.com/xuxueli0323/xxl-job 克隆源码。从码云克隆的原因是&#xff0c;速度比较快。 克隆完成后&#xff0…...

【2026年拼多多春招- 3月15日 -第三题- 多多的配送轨迹】(题目+思路+JavaC++Python解析+在线测试)

题目内容 多多正在检查一段配送轨迹日志。日志长度为nnn,从起点(0,0)(0,0)(0,0)出发,按顺序记录了每一步移动指令。日志是一个长度为...

功率分流混联式混合动力车辆热管理建模与性能计算分析,对标丰田混合动力EVT构型,利用Simul...

功率分流混联式混合动力车辆热管理建模与性能计算分析&#xff0c;对标丰田混合动力EVT构型&#xff0c;利用Simulink建模&#xff0c;采用成熟软件架构&#xff0c;考虑驾驶乘员舱产热与空调调节系统&#xff0c;发动机产热建模与热管理系统&#xff0c;电动产热模型&#xff…...

机器视觉学习总结

一、视觉行业引入机器视觉是传感器技术的一个重要分支&#xff0c;其核心在于利用机器系统替代人眼和大脑进行测量与判断&#xff0c;实现非接触式的自动化检测。从技术本质上讲&#xff0c;机器视觉通过光 学装置和非接触传感器接收和处理真实物体的图像&#xff0c;从而获取所…...

SWD/JTAG Communication Failure的解决方法

以下是我的设备及环境。环境配置&#xff1a;1.keil已下载安装2.芯片pack包已导入3.下载安装NsLink调试器已完成4.CMSIS-DAP驱动已装好有几种解决方法&#xff1a;1.debug设置是否正确&#xff0c;我需要通过Debug USB进行烧录&#xff0c;所以debug设置选择CMSIS-DAP-NSLink&a…...

从实验室到生产线:YOLOv11多任务统一框架(检测+分割+姿态估计)行业应用

前言 “产线上需要同时检测零件缺陷、分割裂纹区域、还要估算机械臂抓取姿态,结果部署了三套不同的模型(YOLOv8, Mask R-CNN, HRNet),显存爆满,延迟叠加,系统根本跑不动?” “算法团队在实验室刷榜mAP很开心,但工程团队面对三个模型的同步、对齐、后处理冲突,头发都掉…...

YOLO26实战全流程:从数据集标注到端到端无NMS推理(附ProgLoss调参技巧)

前言 “训练YOLO模型,调参调到头秃,mAP还是卡在瓶颈上不去?” “部署时NMS后处理耗时占比30%,边缘设备上根本跑不满帧率?” “小目标检测一直是弱项,无论怎么调整Anchor或增加层数,漏检率依然居高不下?” 2026年1月,Ultralytics正式发布了YOLO26,这不仅仅是一次版本号…...

YOLOv8.3.133工业级实战:OpenVINO导出优化+Intel CPU推理,帧率突破120FPS

前言 “工厂产线只有Intel CPU工控机,没有独立显卡,跑YOLOv8只有15 FPS,根本跟不上流水线速度?” “想部署到边缘端,但NVIDIA Jetson成本太高,希望利用现有的Intel Core i7/i9或Xeon服务器资源?” “导出ONNX后推理还是慢,量化精度损失太大,业务方无法接受漏检?” 在…...

Vllm快速入门

背景 vLLM 是一个用于 LLM 推理和服务的快速易用的库。 vLLM 最初是在加州大学伯克利分校的 Sky Computing Lab 开发的&#xff0c;现已发展成为一个社区驱动的项目&#xff0c;融合了学术界和工业界的贡献。 核心细节参考官网&#xff1a;https://docs.vllm.com.cn/en/late…...

Aurogen:告别命令行,纯 Web 可视化快速上手 Claw 养殖,零基础也能轻松配置 Claw

一、前言 前段时间我开始沉迷于 OpenClaw 养殖。随着装上的 Skills 越来越多&#xff0c;问题也慢慢暴露出来了&#xff1a;当短期记忆、海量 Skills 和各种系统指令被一起塞进 System Prompt 后&#xff0c;上下文长度迅速膨胀&#xff0c;结果就是 回复速度明显变慢逻辑偶尔…...

【京东云云服务器部署Openclaw】简单、傻瓜三步部署成功流程

【京东云服务器部署Openclaw】简单、傻瓜三步部署成功流程 前言 最近发现京东云有个超值活动——9块9就能买一个月的轻量云服务器&#xff0c;正好可以用来部署最近很火的OpenClaw AI助手。本文将详细记录从购买服务器到成功运行OpenClaw的完整过程&#xff0c;希望对大家有所帮…...

Linux系统密码破解

环境准备&#xff1a; 虚拟机&#xff1a;VMware Workstation 17&#xff0c;系统&#xff1a;Red Hat&#xff0c;配置&#xff1a;16GB内存/8核处理器。通过登录界面修改root密码&#xff08;已知旧密码&#xff09;&#xff1a; 1. 在登录界面点击“未列出”或“其他” 2. 输…...

k8s问答题----初始化版

1.ca-certificates, gnupg, lsb-release 三个包的解释。答&#xff1a;ca-certificates 软件包提供常用的 SSL 证书&#xff0c;用于在 Linux 系统中进行安全的网络通信。 gnupg 软件包提供一系列用于保护数据安全的加密和解密的工具。 lsb-release 软件包包含了 Linux 发行版相…...

计科-软工13-计算实例「整理」

修改一个已有的库存清单系统&#xff0c;估计需要8000元&#xff0c;系统修改后使用5年。每年可节省3000元。请进行成本/效益分析&#xff0c;并计算投资回收期和纯收入&#xff08;利率按12%计算&#xff09;。假设某软件的生产性工作量是150人月&#xff0c;复杂程度指数是18…...

GTE中文-large惊艳效果展示:事件抽取+关系识别双任务高精度输出案例

GTE中文-large惊艳效果展示&#xff1a;事件抽取关系识别双任务高精度输出案例 安全声明&#xff1a;本文仅展示技术效果与应用案例&#xff0c;所有示例内容均为技术演示用途&#xff0c;不涉及任何真实数据或敏感信息。 1. 多任务NLP模型的强大能力 GTE文本向量-中文-通用领…...

鸿蒙智能WiFi开关硬件与分布式控制实现

1. 项目概述鸿蒙智能WiFi开关是一套面向家庭与宿舍场景的嵌入式物联网终端设备&#xff0c;其核心功能是通过Wi-Fi网络实现对交流负载&#xff08;如照明灯具、风扇、插座类电器&#xff09;的远程通断控制&#xff0c;并支持本地物理按键操作与状态指示。该设备并非通用型智能…...

Qwen2-VL-2B-Instruct与卷积神经网络结合:提升图像特征提取与描述精度

Qwen2-VL-2B-Instruct与卷积神经网络结合&#xff1a;提升图像特征提取与描述精度 1. 引言 你有没有遇到过这样的情况&#xff1f;给一个AI模型看一张复杂的医学影像&#xff0c;比如CT扫描图&#xff0c;希望它能告诉你哪里可能有问题。结果它要么说得太笼统&#xff0c;要么…...

Phi-3-vision-128k-instruct效果展示:表格截图→结构化数据提取→趋势分析文字生成

Phi-3-vision-128k-instruct效果展示&#xff1a;表格截图→结构化数据提取→趋势分析文字生成 1. 模型简介 Phi-3-Vision-128K-Instruct是当前最先进的轻量级开放多模态模型&#xff0c;属于Phi-3模型家族。这个模型特别擅长处理图文对话任务&#xff0c;支持长达128K的上下…...

Phi-3-vision-128k-instruct入门必看:128K上下文多模态模型快速上手教程

Phi-3-vision-128k-instruct入门必看&#xff1a;128K上下文多模态模型快速上手教程 1. 认识Phi-3-vision-128k-instruct模型 Phi-3-Vision-128K-Instruct是微软推出的轻量级多模态模型&#xff0c;属于Phi-3系列的最新成员。这个模型最大的特点是支持128K的超长上下文窗口&a…...

Phi-3-vision-128k-instruct镜像免配置:Docker一键拉起+Chainlit前端自动对接

Phi-3-vision-128k-instruct镜像免配置&#xff1a;Docker一键拉起Chainlit前端自动对接 1. 模型简介 Phi-3-Vision-128K-Instruct是一个轻量级的多模态模型&#xff0c;支持图文对话功能。这个模型基于高质量的训练数据构建&#xff0c;特别擅长处理需要复杂推理的文本和视觉…...

亚洲美女-造相Z-Turbo效果对比:Z-Image-Turbo基模 vs LoRA微调版亚洲特征强化分析

亚洲美女-造相Z-Turbo效果对比&#xff1a;Z-Image-Turbo基模 vs LoRA微调版亚洲特征强化分析 1. 模型介绍与部署 亚洲美女-造相Z-Turbo是基于Z-Image-Turbo模型的LoRA微调版本&#xff0c;专门针对亚洲女性特征进行了优化训练。这个模型在保持原版Z-Image-Turbo强大文生图能…...

通义千问3-Reranker-0.6B优化电商产品评论分析

通义千问3-Reranker-0.6B优化电商产品评论分析 电商平台每天产生海量用户评论&#xff0c;如何从中快速提取有价值的信息&#xff0c;一直是商家和平台面临的挑战。传统方法往往只能做到简单的情感分析&#xff0c;难以深入理解评论背后的真实意图和细节反馈。 1. 电商评论分析…...

Face Analysis WebUI模型微调指南:定制化人脸识别系统开发

Face Analysis WebUI模型微调指南&#xff1a;定制化人脸识别系统开发 1. 引言 你是否遇到过这样的情况&#xff1a;使用现成的人脸识别系统时&#xff0c;发现它对特定人群的识别准确率不高&#xff1f;或者想要为你的业务场景定制一个专门的人脸识别模型&#xff0c;却不知…...

在线式UPS设计:双输入无感切换与数字模拟混合控制

1. 项目概述2020年全国大学生电子设计竞赛B题要求设计一款在线式不间断电源&#xff08;UPS&#xff09;&#xff0c;核心指标为&#xff1a;双输入&#xff08;220V AC市电与24V DC储能电池&#xff09;、单路30V AC/1A正弦波输出、市电断电时实现无感切换、具备输出电压闭环调…...

BV电视版 0.3.14.r877 | 纯净好用的第三方B站TV,支持8K视频

BV是一款专为B站用户设计的第三方TV版应用&#xff0c;以其惊人的8K60帧画质和Hi-Res音质著称。无需任何复杂设置&#xff0c;即可直接畅享高品质视频体验。该应用界面简洁清爽&#xff0c;没有任何广告干扰&#xff0c;非常适合二次元爱好者使用。支持多种设备操作&#xff0c…...