AppImage 创建快捷方式

AppImage是什么?

AppImage 是一个可下载的 Linux 文件,它内部包含一个应用程序和应用程序所需的一切(库、图标、字体等)。

官网

https://appimage.org/

如何运行 AppImage

很简单,下载一个 AppImage,给予它可执行权限,双击运行(或命令行 ./ 执行)。无需安装,也不需要安装依赖。

为什么要有 AppImage?

或者说 AppImage 的优势是什么?

Linux 各发行版之间,由于 glibc 版本不同,导致二进制可执行文件不能兼容。因为不同的 glibc 版本,API 不能完全兼容,再加上其它底层依赖的版本千差万别,各种因素交织在一起,导致了根本没办法使得同一个二进制文件能够完美地运行在所有的 Linux 发行版上。

AppImage 的目的就是解决这个问题,解决办法比较简单粗暴,直接带上二进制及其几乎所有的所需依赖,那么就能有效缓解二进制不能兼容的问题。和 docker 有异曲同工之妙,但是目前来看,解决效果并不如 docker 好。原因很简单,因为不管 AppImage 有多么强大,你总得有一个预编译的二进制版本,这个版本不是天上掉下来的,是编译出来的,既然有编译,就肯定有编译环境,就得引用固定版本的 API,例如在 ubuntu14.04 下编译的 C 程序,那么一定依赖了 ubuntu14.04 下的一些 API,可能来自 glibc,可能还包含其它 API。如果你在 ubuntu14.04 上运行打包好的 AppImage,应该是没有问题的。但是如果在 fedora26 上,可能会遇到一些问题,具体原因还不太清楚,可能跟内核还有关系,因为最常见的问题便是内核转储。你不可能在 AppImage 里再打包一个内核。

话说回来,尽管 AppImage 目前还无法做到完美,但是它已经做得足够好了。

Linus 都说,“这简直太酷了”。
在这里插入图片描述

AppImage 的愿景

让 Linux 应用随处运行。
“作为一名用户,我在从原作者处下载到应用后,我希望能直接在 Linux 桌面上运行它,就像运行一个 Windows 或者 Mac 应用程序一样。”
“作为一名应用开发者,我想为 Linux 桌面系统提供软件包的同时,不需要将其分发到每一个发行版中,也不必为不同的发行版编译多个版本。”

创建快捷方式

以上说了那么多 AppImage 的由来及优势。下面步入我们今天的主题:为 AppImage 创建快捷方式。
随便找个例子,
在这里插入图片描述
在我的 ubuntu 机器上,/home/liyongjun/appimage 目录下有个 PicGo AppImage,其实,双击它就可以直接运行,只不过有点太丑了,连个图标都没有,所以,我们索性给它创建个快捷方式,并添加图标。

创建 desktop 文件

[Desktop Entry]
Name=<程序/软件名>
Comment=<自定义的描述>
Exec=<程序运行的绝对路径>
Type=<类型,有Application和Link两种类型>
Terminal=<设置是否在终端运行,窗口应用程序填写false,命令行程序填true>
Icon=<程序图标的绝对路径>

上面是模版,我们创建的 PicGo.desktop 内容如下

[Desktop Entry]
Name=PicGo
Comment=PicGo
Exec=/home/liyongjun/appimage/PicGo-2.3.1.AppImage
Type=Application
Terminal=false
Icon=/home/liyongjun/appimage/icon/picgo.png

其中,picgo.png 这个图标哪来的呢?这就牵扯到 AppImage 的运行原理了。
AppImage 文件运行的本质是将 AppImage 文件解压到 /tmp 下运行,而在这个临时文件夹下我们可以查看到该软件相关的文件,其中就有 icon 文件。
在这里插入图片描述
我们把该图片保存到 /home/liyongjun/appimage/icon/ 目录,

允许启动

在桌面右击,点击允许启动后,图标就显示正常了,
在这里插入图片描述==>在这里插入图片描述

双击图标,就可以正常运行了
在这里插入图片描述

完美。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/9315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PowerShell ⇒ Excel 批量创建Excel

New-Object -ComObject Excel.Application&#xff1a;创建Excel对象[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null 用来显式释放 Excel COM 对象的资源&#xff0c;以确保在脚本执行完成后&#xff0c;释放 Excel 进程和相关资源&#xff0…

揭秘:让代码更优雅的七大面向对象设计秘诀

软件项目中&#xff0c;需求是不断变化的&#xff0c;需求也是项目中最难把控的&#xff0c;需求的变更也是无法避免的。我们写的软件程序&#xff0c;如何能实现拥抱变化&#xff0c;使我们的软件达到可维护和可复用&#xff0c;这是一代代软件工程师不断追寻的真理。 导致一个…

接口数据脱敏实现方案

背景 敏感信息如手机号、身份证、邮箱等信息需要脱敏后展示给前台&#xff0c;如果需要查看&#xff0c;则需要申请权限&#xff0c;查询时需要记录操作日志。 方案 通过JsonSerializer和注解&#xff0c;在json序列化的时候做脱敏操作 此处使用redis存储了加密后的key和明…

认养小游戏功能介绍

认养小游戏通常模拟了真实的农业生产过程&#xff0c;让玩家能够在线上体验种植、养殖的乐趣。以下是一些常见的认养小游戏功能介绍&#xff1a; 选择认养的农产品&#xff1a;首先&#xff0c;玩家可以从游戏中提供的多种农产品中选择自己想要认养的种类&#xff0c;如蔬菜、…

【Java一些注解知识】

RequestMapping RequestMapping是Spring框架中的一个注解&#xff0c;用于将HTTP请求映射到特定的处理方法上。通过使用RequestMapping注解&#xff0c;我们可以指定处理方法应该处理的URL路径和HTTP请求方法。 下面是一个简单的示例&#xff1a; 假设我们有一个UserControl…

[wp]第一届 “帕鲁杯“ --应急响应

1.前言&#xff1a; 第一次做这么大规模的应急响应靶场&#xff0c;收获许多 2.拓补图&#xff1a; 3.资产清单 4.解题 1. 签到[堡垒机的flag标签的值] [BrYeaVj54009rDIZzu4O] 2. 提交攻击者第一次登录时间 2024/04/11/14:21:18 3. 提交攻击者源IP 192.168.1.4 4. 提交…

网络隔离状态下,如何可以安全高效地进行研发文件外发?

研发部门的数据传输通常需要保证数据的安全性、完整性和保密性&#xff0c;尤其是当涉及到公司的核心技术、产品设计、源代码等重要信息时。研发文件外发&#xff0c;即研发资料的外部传输&#xff0c;通常涉及到公司的核心技术和商业机密&#xff0c;因此需要采取严格的安全措…

LayaAir引擎全面支持淘宝小游戏、小程序、小部件的发布

在最新的3.1版本和2.13版本中&#xff0c;LayaAir引擎已经全面支持了淘宝小游戏、小程序和小部件的开发和发布。这一重大更新&#xff0c;标志着LayaAir引擎与电商巨头阿里巴巴旗下的淘宝平台形成生态合作&#xff0c;在为广大开发者提供更加强大、高效的跨平台开发工具和解决方…

c++11 标准模板(STL)本地化库 - 平面类别(std::money_get) - 从输入字符序列中解析并构造货币值

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析&#xff0c;以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 从输入字符序列中解析并构造货币值 std::money_get template<…

Unity-NGUI爆错以后-导致不能多次点击,UI假卡死问题解决方法

太久没用&#xff0c;忘了&#xff0c;NGUI好像易出错&#xff0c;就再次点击不了 导致打开了UI关闭不了&#xff0c;每次都要重启就比较烦&#xff08;说的就是那种美术团队&#xff0c;一个 UI 打开几十层&#xff09; 就好比【左上角&#xff0c;箭头】点第二次是退出不了了…

【Mac】Hype 4 Pro for Mac(HTML5动画制作软件)v4.1.17安装激活教程

软件介绍 Hype 4 Pro是一款专业的HTML5动画和交互式内容制作软件&#xff0c;适用于Mac平台。它的主要特点和功能包括&#xff1a; 1.HTML5动画制作&#xff1a; Hype 4 Pro提供了直观的界面和丰富的工具&#xff0c;帮助用户轻松创建各种复杂的HTML5动画效果&#xff0c;包括…

每天五分钟计算机视觉:使用极大值抑制来寻找最优的目标检测对象

本文重点 在目标检测领域,当模型预测出多个候选框(bounding boxes)时,我们需要一种方法来确定哪些候选框最有可能表示真实的目标。由于模型的不完美性和图像中目标的重叠性,往往会有多个候选框对应于同一个目标。此时,极大值抑制(Non-Maximum Suppression,NMS)技术就…

Isaac Sim 6 仅使用isaacsim中自带的工具进行语义分割、实例分割(学习笔记5.09)

一.概要 建立场景&#xff0c;给场景内的物体赋予语义&#xff0c;使用Replicator进行分割操作&#xff0c;从而获得带标签信息的mask掩码图&#xff0c;可作为数据集、验证集等训练使用。 二.具体操作步骤 场景部分 1.搭建一个基础场景 这里建议在搭建的时候就按类别分好类…

变配电工程 变配电室智能监控系统 门禁 视频 环境 机器人

一、方案背景 要真正了解无人值守配电房的运行模式&#xff0c;我们必须对“无人值守”这一概念有准确的理解。它并不意味着完全没有工作人员管理&#xff0c;而是通过技术设备和人机协作来确保配电房的正常运行。 利用变配电室智能监控系统&#xff0c;可以实时获得配电室各…

44.乐理基础-音符的组合方式-附点

内容参考于&#xff1a; 三分钟音乐社 首先如下图&#xff0c;是之前的音符&#xff0c;但是它不全&#xff0c;比如想要一个三拍的音符改怎样表示&#xff1f; 在简谱中三拍&#xff0c;在以四分音符为一拍的情况下&#xff0c;在后面加两根横线就可以了&#xff0c;称为附点…

基于Unity为Vision Pro 构建游戏的4个关键

为Vision Pro开发游戏时需要考虑的四个关键概念:输入的自然性、物理尺寸的真实匹配、交互空间的充足性以及Unity组件的有效利用。 AVP交互小游戏(Capsule Critters)作者分享了使用Unity构建的几个核心关键: Bounded - 游戏定义:Bounded(有限)是Unity的术语,指的是游戏作…

利用“AnaTraf“网络流量分析仪轻松诊断和优化网络

网络性能监测和诊断(NPMD)是网络管理和优化的重要环节,准确快速地定位和排除网络故障对于保障业务正常运转至关重要。作为一款专业的网络流量分析设备,AnaTraf网络流量分析仪凭借其强大的流量分析和故障诊断功能,为网络管理者提供了一个高效的网络优化解决方案。 全面掌握网络…

【Ubuntu18.04+melodic】抓取环境设置

UR5_gripper_camera_gazebo&#xff08;无moveit&#xff09; 视频讲解 B站-我要一米八了-抓取不止&#xff01;Ubuntu 18.04下UR5机械臂搭建Gazebo环境&#xff5c;开源分享 运行步骤 1.创建工作空间 catkin_make2.激活环境变量 source devel/setup.bash3.1 rviz下查看模…

如何判断nat网络?如何内网穿透

大家都清楚&#xff0c;如果你想开车&#xff0c;就必须要给车上一个牌照&#xff0c;随着车辆越来越多&#xff0c;为了缓解拥堵&#xff0c;就需要摇号&#xff0c;随着摇号的人数越来越多&#xff0c;车牌对于想开车的人来说已经成为奢望。在如今的IPv4时代&#xff0c;我们…

TODESK怎么查看有人在远程访问

odesk怎么查看有人在远程访问 Todesk作为一款远程桌面控制软件&#xff0c;为用户提供了便捷的远程访问与控制功能。但在享受这种便利的同时&#xff0c;许多用户也关心如何确保自己设备的安全&#xff0c;特别是如何知道是否有人在未经授权的情况下远程访问自己的电脑。本文将…