我有一个 Qt 应用程序,我想将其部署为 deb 包。我读过很多资料,都略有不同 - 我所做的大部分工作都遵循这个如何:准备提交到 Ubuntu 软件中心的应用程序
我的文件是一个可执行的 MainProject、一些依赖库、Qt 库和许多其他系统库,我必须将它们包含在内,以便在没有安装任何内容的情况下部署到其他系统上。我创建了一个 sh 文件来设置库路径,然后执行该程序 - 所以我猜每次都必须启动 sh 文件。
我必须创建一个文件夹结构/usr/share/MyCompanyFolder/
并将可执行文件与图标关联起来。(路径中的空格和特殊字符是一个不幸的要求;大写名称也是如此……该程序是从 Windows 移植过来的)。
/usr/share/我公司的文件夹/MainProject/content
我创建了一个包...它似乎可以工作,安装在正确的位置,而且令人惊讶的是该程序甚至在那之后就可以工作了。
问题:“MainProject.desktop”似乎没有效果- 我希望看到一个看起来像 ico 文件的链接,放在启动器上(也许是桌面?为什么它被称为 .desktop?)...
设置:
~/working_directory
mainproject-1.0
mainproject_1
content
MainProject
MainProject.sh
MainProject.ico
MainProject.desktop
mainproject-1.0.tar.gz
主项目.桌面:
[Desktop Entry]
Name=MainProject
Icon=MyCompanyFolder/MainProject.ico
Type=Application
Categories=Text;
Exec=bash /usr/share/MyCompanyFolder/MainProject/MainProject.sh
Version=1.0
Comment=MainProject is awesome.
Path=/usr/share/MyCompanyFolder/MainProject/
Terminal=false
mainproject-1.0
我跑了进去
dh_make --copyright gpl -f ../mainproject-1.0.tar.gz
选择 s,按回车键...然后我修改了创建的 debian 文件夹中的文件。
dpkg-buildpackage -rfakeroot [email protected]
结果:它起作用了,创建了安装程序,安装程序起作用了......
- MainProject.desktop 文件位于 /usr/share/applications 中(但它是空白的,没有图标)
- 该图标已添加到 /usr/share/icons/MyCompanyFolder - 但是...没用
- 启动器或桌面上没有任何内容
- MainProject.desktop 确实启动了该应用程序。
缺少什么?据我所知,将 *.desktop 项目放在应用程序文件夹中就足以创建启动器项目...图标如何与其关联?
答案1
我注意到用于快捷方式的所有图标都是 png 文件而不是 ico......
我为我的图标创建了一个 png,它神奇地起作用了。
这修复了与启动器的关联以及启动器无法工作的事实