必须先识别系统底层架构类型再匹配安装路径:原生rpm系(如服务器版)可直装.rpm包并自动注册服务;debian衍生桌面版(如v10 sp1)须用apt装.deb包,否则导致图形集成失败、服务注册异常及开机自启失效。

在银河麒麟系统上部署企业自研的私有RPM或DEB应用,必须先识别系统底层架构类型,再匹配对应安装路径——误将Debian系桌面版当RPM系直装.rpm包,会导致服务注册失败、桌面菜单不显示、开机自启失效;反之,在原生RPM系服务器版上强行转.deb,会破坏rpmdb一致性并引发后续yum操作异常。
第一步:确认系统底座与CPU架构
打开终端,依次执行:
cat /etc/os-release | grep -E "(NAME|VERSION_ID|ID_LIKE)"
uname -m
若第一行输出含【ID_LIKE="rhel fedora"】或【NAME="Kylin Linux Advanced Server"】,且第二行返回x86_64/aarch64/loongarch64,说明是原生RPM系;若输出含【ID_LIKE="debian ubuntu"】或【NAME="Ubuntu"】,则为Debian衍生桌面版。注意:V10 SP1之后的桌面版虽预装rpm命令,但【服务注册、图标集成、权限策略全部依赖dpkg/apt机制】,不能跳过格式转换。
原生RPM系系统安装私有RPM包
方法一:用dnf自动解析依赖(推荐联网环境)
cd ~/Downloads && sudo dnf install ./myapp-2.3.1-1.kylin.x86_64.rpm
看到“Is this ok [y/N]?”时输入y回车,等待出现“Complete!”即完成。此方式会自动拉取glibc、openssl等基础运行时,并注册systemd服务单元。
方法二:rpm手动安装(仅限离线或已知依赖完备)
sudo rpm -ivh --replacepkgs ./myapp-2.3.1-1.kylin.x86_64.rpm
加--replacepkgs可覆盖同名旧版本,避免“file conflicts”报错;若提示“Failed dependencies”,必须记下缺失包名(如libcrypto.so.10),再执行sudo yum install -y 对应包名后重试。
Debian衍生桌面版安装私有DEB包
第一步:确保apt源可用且已更新
sudo apt update
第二步:安装本地deb包并自动补全依赖
sudo apt install ./myapp_2.3.1_amd64.deb
注意路径前的./不可省略,否则apt会当成远程包名去查源;若系统提示“unmet dependencies”,说明你的私有包声明了高版本qt5或glib依赖,而麒麟V10默认只提供qt5.12.8,此时需联系研发团队降级编译或同步升级基础库。
第三步:验证服务是否注册成功
systemctl list-unit-files | grep myapp
若返回enabled状态,说明kylin-activation服务已自动注入开机自启;若为空,则需检查deb包control文件中是否包含“XB-Kylin-Service: yes”字段——这是麒麟桌面版识别服务型应用的关键标记。
跨架构私有包部署补救方案
方法一:ARM64平台误装AMD64 deb包
执行dpkg --info myapp_2.3.1_amd64.deb查看Architecture字段,确认为amd64后立即卸载:sudo dpkg -r myapp;再从研发处获取aarch64构建版,或使用qemu-user-static临时启用跨架构执行(不推荐生产环境)。
方法二:私有RPM包签名未被麒麟信任
若安装时报错“no valid openpgp signature”,不要加--nogpgcheck硬装——这会绕过国密SM2证书链校验,导致后续无法通过麒麟软件中心管理该应用。正确做法是让研发团队用银河麒麟CA签发的GPG密钥重新签署RPM包,或由运维将公钥导入:rpm --import /path/to/kylin-ca.pub。











