统信uos系统下,现在有一个qt编译生成的release可执行程序,怎么制作成uos deb安装包,并且支持安装完自动在桌面和启动器中显示程序桌面图标,重复安装和启动器卸载卸载
时间: 2024-03-19 14:44:09 浏览: 19
首先,需要在统信uos系统中安装dpkg-dev和devscripts这两个软件包,用于生成和打包deb包。可以使用以下命令进行安装:
```shell
sudo apt-get install dpkg-dev devscripts
```
接下来,将编译生成的可执行程序和相关的资源文件放在一个文件夹中,例如/usr/local/myapp。
然后,进入该文件夹,创建一个DEBIAN文件夹,并在其中创建一个control文件,用于描述软件包的信息和依赖关系。示例control文件内容如下:
```text
Package: myapp
Version: 1.0
Architecture: amd64
Maintainer: Your Name <your@email.com>
Depends: libc6 (>= 2.15), libqt5gui5 (>= 5.5), libqt5widgets5 (>= 5.5)
Description: My App Description
```
其中,Package字段表示软件包名称,Version表示版本号,Architecture表示架构,Maintainer表示维护者信息,Depends表示依赖关系,Description表示软件包描述。
接着,在DEBIAN文件夹中创建一个postinst文件,用于安装完成后的操作,例如在桌面和启动器中创建快捷方式。示例postinst文件内容如下:
```shell
#!/bin/sh
set -e
# Add desktop shortcut
cat > /usr/share/applications/myapp.desktop <<EOL
[Desktop Entry]
Name=My App
Exec=/usr/local/myapp/myapp
Icon=/usr/local/myapp/myapp.png
Terminal=false
Type=Application
Categories=Utility;
EOL
# Add launcher shortcut
cat > /usr/share/applications/myapp-launcher.desktop <<EOL
[Desktop Entry]
Name=My App
Exec=/usr/local/myapp/myapp
Icon=/usr/local/myapp/myapp.png
Terminal=false
Type=Application
Categories=Utility;
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=0
EOL
# Reload desktop environment
if [ -n "$(pidof gnome-shell)" ]; then
dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval "string:global.reexec_self()"
elif [ -n "$(pidof xfce4-panel)" ]; then
xfce4-panel --restart
fi
exit 0
```
其中,第1行#!/bin/sh表示使用shell脚本语言,set -e表示在出现错误时立即退出脚本,接下来的两个cat命令用于创建桌面和启动器快捷方式,最后的if语句用于重新加载桌面环境。
最后,使用dpkg-deb命令将整个文件夹打包成deb包:
```shell
sudo dpkg-deb --build /usr/local/myapp
```
生成的deb包在/usr/local目录下,可以使用dpkg命令进行安装和卸载:
```shell
sudo dpkg -i myapp_1.0_amd64.deb # 安装
sudo dpkg -r myapp # 卸载
```