在安装我的.rpm期间,我需要添加到我的.spec文件以创建桌面快捷方式并为快捷方式指定图标? 如果需要脚本,那么示例将非常有用。

===============>>#1 票数:5

您在linux下使用.desktop文件作为图标。 放置图标的位置取决于您使用的分发和桌面环境。 由于我目前在Fedora 9上运行Gnome,我将用这些术语回答它。

一个示例foo.desktop文件将是:

[Desktop Entry]
Encoding=UTF-8
GenericName=Generic Piece Of Software
Name=FooBar
Exec=/usr/bin/foo.sh
Icon=foo.png
Terminal=false
Type=Application
Categories=Qt;Gnome;Applications;

.desktop文件应该在Fedora 9 Gnome下位于/ usr / share / applications /中,你可以在.desktop上运行一个locate来找出你​​应该放在你的发行版上的位置。 Gnome通常会查看KDE图标目录,看看是否还有其他图标....

编码,名称和执行应该说明一切。

  • 通用名称==应用程序的简要说明。
  • 图标==要显示图标的图像
  • 终端==这是一个终端应用程序,我应该作为一个应用程序启动吗?
  • Type ==这是程序类型,可用于将图标放在菜单中。
  • 类别==如果不存在要指定的XML文件,则此信息主要用于将图标放置在给定菜单中。 菜单设置的处理方式略有不同。

您可以设置更多属性,但它们并非绝对必要。

使用的图像文件位于/ usr / share / icons /目录的某处。 你可以通过解析来找到这些东西如何工作的所有奇迹,但基本的是你选择图标类型的目录(在我的情况下是gnome)并将图像放在适当的目录中(有一个可扩展的目录.svg图像,以及特定尺寸,例如光栅图像的48x48。在Gnome下,所有图像通常都是.png)。

===============>>#2 票数:3

akdom给出了一个相当不错的答案,但没有做出相关正义。

许多常见的桌面,包括相关的Gnome,KDE和XFCE,都实现了freedesktop.org制定的规范。 其中, 桌面条目规范描述了定义桌面图标的文件格式, 桌面基础目录规范描述了桌面环境查找这些文件的位置。

您的RPM需要包含一个.desktop文件,由桌面条目规范指定,并将其安装在桌面基础目录规范指定的正确位置,或者在特定于分发的位置(我想会有别名使用)在此位置的spec文件中)。

===============>>#3 票数:0

要为应用程序创建桌面图标,请按照以下两个步骤操作。

  1. 在编辑器中创建一个新文件。

     gedit ~/.local/share/applications/NameYouWantForApplication.desktop 
  2. 将此部分放在文件中并保存。

     [Desktop Entry] Type=Application Encoding=UTF-8 Name=JeremysPentaho Comment=Whatever Comment You want Exec=/home/yourname@yourdomain.com/Source/Pentaho/data-integration/spoon.sh Icon=/home/yourname@yourdomain.com/Source/Pentaho/data-integration/NameOfmyIconFile.jpg Terminal=false 

  ask by translate from so

未解决问题?本站智能推荐:

3回复

rpm将图标安装到桌面

在Fedora Gnome ...... 在我的rpm中使用.desktop文件,我已成功将我的gui软件放入gnome应用程序菜单中。 我想知道是否有办法在安装rpm时将图标放到gnome桌面上? 更新: 现在我可以让rpmbuild在%install成功使用带有xdg
2回复

使用ssh在linux上安装java

我想使用ssh在许多计算机上安装java,所以我想编写一个bash脚本(大致): 问题是在java安装期间我需要“读取”通知并在结尾处输入“是”。 我该怎么做? 有没有比“期待”更简单的方法? 如果不是我如何在bash脚本中使用它? 非常感谢
3回复

Linux rpm安装但无法擦除。为什么? [关闭]

我的Perl代码以root身份安装了几(4)个rpm文件。 在安装新版本之前,下一次安装将删除它们( rpm -e )。 一个不会删除, rpm -e给出错误,它没有安装。 但是,稍后在安装更新的文件时,会给出已安装的消息。 手动尝试删除会产生相同的结果。 我的问题是如何强制从rp
1回复

在Oracle Linux(OEL)上安装本地rpm软件包的Chef问题

我正在努力以本地下载的rpm文件的形式安装可用的软件包-仅在Oracle Linux(OEL)上。 有错误吗? 有没有人观察到这个? 这将是一个巨大的错误,所以我感到很惊讶。 厨师的食谱很简单: 可从https://github.com/r2oro/oel_pkg_test.
2回复

我无法在Oracle Enterprise Linux中安装Google Chrome

我创建了一个google.repo文件,并将该文件存储在yum.repos.d中,google.repo的内容为: 我以root用户身份在shell中执行以下命令: 已执行: 输出: 我也找不到lsb软件包,发现安装了以下软件包:redhat-lsb.x86_64
1回复

在访问权限非常有限的不同Linux机器上安装程序

我必须从不同的客户登录到Linux服务器,并使用诸如SVN等必不可少的工具。大多数情况下,我没有root访问权限,并且通常管理员在节假日:)所以我必须找到使用该工具的方式那里。 有时,这是一个非常简单的过程,只需编译代码即可。 但是在某些情况下,我必须先准备好许多不同的工具,然后才能轻松地花
4回复

如何在没有root用户自动依赖处理的情况下在Linux(CentOS)中安装软件包?

是否可以在Linux中使用RPM或YUM或任何其他软件包管理器(特别是CentOS)来安装已下载的软件包或从repo到没有admin / root访问权限的自定义位置? 我尝试从源代码构建,使用cmake,configure,make,make install等,但是,它最终依次拥有如此多
3回复

在Linux RPM安装/升级期间设置错误状态

我目前正在开发我的第一个Linux RPM软件包以供发布。 在%post挂钩期间,我想确保特定文件驻留在目标系统上。 如果此文件存在,我希望安装继续。 如果缺少此文件,我希望RPM中止安装并报告错误代码。 .spec文件中的条件逻辑工作正常,但在错误情况下添加“返回1”会导致RPM抛
1回复

如何在64位Linux Red Hat 6.2服务器上安装32位软件包

我的操作系统是Red Hat 6.2服务器64位 我正在尝试安装Oracle 11要求的软件包,但无法安装i686软件包。 样品 要么 要么 我无法在64位红色帽子上安装i686 Packges。
1回复

安装RPM之前验证Linux软件包[关闭]

我有一个需要安装的RPM文件,在安装之前我想检查其中包含的软件包的版本。 如果已经安装了软件包,我可以使用rpm -qi来了解版本号,但是如果没有安装软件包,我会用什么选项来查找版本?