利用 appimagetool 工具对开发好的项目进行打包 (***带笔记*)

176 篇文章 12 订阅
118 篇文章 8 订阅

目录

什么是AppImage?

利用appimage工具对开发好的项目进行打包
linux下将qt程序打包成appimage程序 (高参考价值)

使用 AppImageLauncher (管理appimage工具)轻松运行和集成 AppImage 文件

简明操作步骤 ******

问题与解决1 /2  ******

官网仓库::用户自己的、应用发布与下载https://appimage.github.io/apps/

用户手册:https://docs.appimage.org/packaging-guide/manual.html

论坛支持https://discourse.appimage.org/

比较: Linux下制作.run安装包

https://blog.csdn.net/ken2232/article/details/129397454

Linux 普通 app 到哪里下载 ?(**)  https://blog.csdn.net/ken2232/article/details/136988526

参考:

linuxdeployqt + appimagetool 工具 Qt打包问题 汇总
https://blog.csdn.net/ken2232/article/details/132027214

利用 appimagetool 工具对开发好的项目进行打包 (***带笔记*)
https://blog.csdn.net/ken2232/article/details/131313613

dpkg-repack / apt-clone:重新打包 已安装的 软件,一键迁移 (***)  https://blog.csdn.net/ken2232/article/details/132515160

扩展:

 Linux中的目录、文件系统结构大全  https://zhuanlan.zhihu.com/p/632905282?utm_id=0

@ 10. /opt

/opt目录用于安装第三方软件包。一些应用程序将其安装在/opt目录下,以便与系统的其他部分分离。

说明:

1. win OS 的软件安装方法,与此类似:/opt目录用于安装第三方软件包。

因此,软件打包,绿色,便于移植;对于桌面系统来说,还是很方便的。

对于服务器来说,如果都采用这种软件安装方式,那么,就太占用磁盘空间了。

2. 在服务器上,apt 安装软件时,软件被分散到不同的目录中,便于对软件进行模块化管理,安装、删除、升级等等。

用途:

1. 当在服务器端没有安装软件的权限时,可以在自己的电脑上安装一个与服务器端相同的 Linux发行版(不同一般也是可以的吧?),然后,使用 appimagetool 工具打包,制作成绿色软件;再上传到服务器上使用。

参考:不用看管理员脸色,Linux 服务器装软件也能自给自足  https://sspai.com/post/73822

----------------------------------------------------------

总结:   单一的、绿色免安装的跨 linux发行版执行的、只读的可执行文件。

1. appimagetool 和 linuxdeploy /linuxdeployqt的区别

1.1. linuxdeploy /linuxdeployqt 的用途:将用户程序所用到的 库(在 OS中的库) 打包到同一个目标文件夹下。

对相关的配置文件进行设置,可以保证用户 app的搜索路径 会优先(或只扫描)目标文件夹下的 库。

linuxdeploy:为linux OS的通用型 app deploy工具。不能用于对 Qt打包。

linuxdeployqt:针对 Qt的个性化工具。

1.2. appimagetool 的用途:将可在同一个应用程序文件夹中(无需再依赖不在这个文件夹中的其他库)就可以运行的用户 app程序,打包成一个单一的、绿色免安装的跨 linux发行版执行的、只读的可执行文件。

AppImage 是一种把应用打包成单一文件的格式,允许在各种不同的目标系统(基础系统(Debian、RHEL等),发行版(Ubuntu、Deepin等))上运行,无需进一步修改

2. 在打包的应用程序文件夹中的文件,不应该再被修改?

2.1. appimagetool 的作用:相当于将应用app及其库函数打包在一起,生成一个只读的可执行文件

与其他目录之间的路径位置关系:

等同于就是原来的 应用app的路径位置:即将新生成的应用app 替换掉原来的应用app;又或者说: 将原来的应用app 改名,并将其内容替换成新生成的应用app 。

相当于将原来的、依赖于操作系统库的、应用app,转换成一个不依赖于操作系统库的、捆绑了操作系统库的、新的应用app

appimagetool 在打包的时候:

在打包目标目录下,只需要、应该包含:应用app,系统库,以及其他 appimagetool 的支持文件。

其他需要修改的文件,此时不应该存在于这个目录中。因为在打包之后,生成的 .Appimage

文件是只读的;并且应用app应该也不会访问到这些多余的、导致打包后臃肿的、可能随时会被应用app 修改的文件。

2.2. 可能需要被用户修改的文件,不要放在这个文件夹中。

因为用户 app文件夹中的所有文件,被打包成了一个只读的可执行文件??????

3.0 简明操作步骤:******

3.0.1. 步骤1:

配置 Qt qmake的运行环境。默认的环境变量,使得 Qt qmake不需要带路径就可以在终端上运行。

    ## 修改文件 ~/.bashrc              

    #add qt env
    export PATH=/opt/Qt5.13.0/5.13.0/gcc_64/bin:$PATH
    export LIB_PATH=/同上/lib:$LIB_PATH
    export PLUGIN_PATH=/同上/plugins:$PLUGIN_PATH
    export QML2_PATH=/同上/qml:$QML2_PATH

    vim ~/.bashrc
    source ~/.bashrc
    qmake -v

配置 Qt Creator:

Qt Creator 修改 可执行文件 的输出路径 (**)
https://blog.csdn.net/ken2232/article/details/131338285

  

appimagetool 会将可执行文件目录下的所有的东西,都会打包在一起。

当打包包含了需要在运行时修改的文件时,就会出错;因为 appimagetool 打包出来的文件,是只读的。

3.0.2. 步骤2:

目的:打包到同一个文件夹:将宿主操着系统中的库函数,与用户 app打包到一个文件夹中运行。

//在制作 用户app-7-x86_64.AppImage 时,用户app应该是可以放在任意可以的文件夹中,都可以制作?????

                  

//当该目录下存在多个可执行程序时?直接指明 app的名称?

./linuxdeployqt-7-x86_64.AppImage  程序目录/程序  -appimage 

3.0.x. 附加插入步骤2.5:需要人工修改 .desktop文件,以及如需要处理.desktop的 Icon图标等。

3.0.3 步骤3:

目的:打包到一个单一的只读可执行文件:将已经打包在一个文件夹中的用户 app,及其支持的库文件等等,打包成一个只读的、可执行文件。

./appimagetool-x86_64.AppImage APPDIR/

注意:

1. .desktop文件的修改 << 在 linuxdeployqt运行完成后,需要人工处理

1.1. 使用  linuxdeployqt-continuous-x86_64.AppImage Apr 24 这个版本进行的打包。在执行 appimagetool之前,必须人工自行修改 .desktop文件,增加 "Categories=" 项的 key值。key值必须符合标准规定的名称。参见:

https://specifications.freedesktop.org/menu-spec/latest/apa.html

https://specifications.freedesktop.org/menu-spec/latest/apas02.html

1.2. 其他 key值的修改。

1.3 增加用户的 Icon图标。<< 在 linuxdeployqt运行完成后,需要人工处理

          

2. 当 app应用使用到外部(不包含在.AppImage内部)的文件时,各个文件夹的名称、及相对路径必须与 app成功编译时的文件路径结构场景,相一致。

         

3. AppImage包的后期维护:自解压,修改,以便重新打包。

3.1. 可以使用“–appimage-extract”参数来自解压应用,例如

    ./typora.AppImage --appimage-extract

3.2. 例子:解决 Krita 中无法启动 Fxcit 的问题

https://zhuanlan.zhihu.com/p/100952461?utm_id=0

------------- 

参考:

linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件_爱文我的妻的博客-CSDN博客

1、打包步骤参考

https://github.com/probonopd/linuxdeployqt/blob/master/BUILDING.md

打包过程中需要的软件 linuxdeployqt   patchelf    appimagetool   AppRun

集成包linuxdeployqt-5-x86_64.AppImage-----集成了linuxdeployqt   patchelf    等

集成包appimagetool-x86_64.AppImage----------集成了appimagetool   AppRun 等

将qt5.8 打包成  QtCreator-5.8.0-x86_64.AppImage https://bintray.com/probono/AppImages/QtCreator/5.8.0#files
————————————————
版权声明:本文为CSDN博主「爱文我的妻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bkbliu/article/details/88090465

问题与解决 1:

1. 使用到外部文件,与app一起工作时

1.1. 运行.AppImage开始时,显示会被重新挂载到: "/tmp/.mount_Applic6V4d4E/abc/cde.text"

这种场景,打包成一个单一文件后,似乎不能运行了。

1.2. 只是使用 ./linuxdeployqt-7-x86_64.AppImage  程序目录/程序  -appimage ,这是 OK的。

问题:******

用户App-x86_64.AppImage文件,在运行时,会被挂载到其他地方。比如: "/tmp/.mount_Applic6V4d4E/abc/cde.text"。

这就导致 Qt QCoreApplication::applicationFilePath()函数所获得的 用户App的当前运行路径,与用户设计时的路径,是不一样的。

也就是:用户App所设定的当前运行路径,被“appimagetool-x86_64.AppImage”给修改了;从而导致了读取外部文件的错误。

错误信息:

QCoreApplication::applicationFilePath() 0000BBBB:::    "/tmp/.mount_Abc6S3paM"

解决方案:

如何?????????

方法1:外部文件使用绝对路径。

由于 app xxx-x86_64.AppImage的运行路径是变化的,因此,外部文件需要使用绝对路径。

方法2:???

Appimage无法打开的bug

  Appimage无法打开的bug_appimagetool挂在失败_me,too的博客-CSDN博客

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

3. linux deploy操作步骤 补充说明:

3.1. 步骤1:将宿主操着系统中的库函数,与用户 app打包到一个文件夹中运行。

运行 : linuxdeploy /linuxdeployqt

//典型命令格式 1:

                 

./linuxdeployqt-7-x86_64.AppImage  程序目录/程序  -appimage

./linuxdeployqt-7-x86_64.AppImage  程序目录/  -appimage //当目录下只有1个用户app时?

//典型命令格式 2:

         

./linuxdeploy-x86_64.AppImage --appdir=APPDIR -e FastFusionV2 -l /lib/x86_64-linux-gnu/libm.so.6 --create-desktop-file --icon-file=FastFusionV2.png

将 app所使用到的操作系统中的库,打包到 app所在的目录下;以及配置有关路径方面的处理文件,等等。

注:

用户 app总会调用到操作系统的函数库的。

当然有特例,就是没有调用到系统库的 app,将会是太简单了,没有实用价值,不做讨论。

还有就是将系统库人工直接拷贝到 app的同级目录下,这个应该也是可以的??人工就是麻烦事了。

3.2 步骤2:将已经打包在一个文件夹中的用户 app,及其支持的库文件等等,打包成一个只读的、可执行文件。

运行 :appimagetool

//典型命令格式:

         

./appimagetool-x86_64.AppImage APPDIR/

将整个 app目录下的应用打包成单一文件的格式,允许在各种不同的目标系统(基础系统(Debian、RHEL等),发行版(Ubuntu、Deepin等))上运行,无需进一步修改。

3.3 问题与解决

a. 见下部。

b. 当仍然提示缺少某个支持库时,可以将该版本的支持库,直接拷贝到 app目录里,应该就可以运行了吗??

4. 其他更高级的打包支持:安全,隔离,轻量,可移植

4.1 打包后,可以传送到官方的仓库中。

Snap :安全,彼此隔离,宿主系统使用了类似 AppArmor 的技术,它们跨平台且自足的,让开发者可以准确地将应用所需要的依赖打包到一起。沙盒隔离也加强了安全,并允许应用和整个基于 snap 的系统,在出现问题的时候可以回滚。

---------------------------

flatpak,snap与appimage作为linux新的打包方式谁更有前景?

Snap:是Canonical做的,也就是维护Ubuntu的公司。它有自己的软件源,安装后会创建一个永久的挂载点。和AppImage不同的是,它的运行环境是容器化的沙箱,所以安全性上更好一些。但是一些硬件,比如摄像头和音频设备,也需要通过特殊的方法连接进去。

用户不能自己控制 Snap 包的更新。

Flatpak:我用得不多,没仔细研究过原理。至于谁更有前景,也不好说。我个人比较喜

AppImage:( 文件名翻译:app镜像,就表明了这个可执行文件是只读的。? )比较简单易用,不需要安装额外的工具,整个软件都在一个文件里,下载后可以直接运行。里面有个SquashFS的文件系统,运行的时候会挂在到一个临时的地方,里面有所有只读的文件,包括可执行文件、库文件、静态数据等。除此之外都和普通的软件运行环境是一样的

AppImage,因为限制比较少,不容易出现奇怪的问题。snap 会自动更新你的软件并导致其损坏,而且无法关闭,你如果软件用着突然出问题,死活找不到问题出在哪。就这点而言,snap 好意思说自己是 linux 平台的工具吗?恶心人的玩意儿。

appimage 剩下的那两个还不如直接用容器。

---------------

Linux - SquashFS文件系统

http://t.csdn.cn/soS00

使用“–appimage-extract”参数来自解压应用,就获得如下文件。

注意:squashfs-root 文件夹是自动生成的。说明 appimage采用了squashfs。

本质上,appimage 相当于一个 不需要启动文件的 类似于 livecd那样的东西?可以运行它。

在运行之前,需要(自动)挂载??

----

app image是一个绿色免安装单文件程序的方案,连root权限都不需要。

没有竞争对手,不是一个层面的:Snap /Flatpak 关注于服务器上的应用;需要考虑“安全,彼此隔离,等等因素”,而 app image关注于个人电脑上的应用;不需要过度考虑安全问题,不需要考虑隔离问题。

----

应用场景的不同:

appimage:更适合于偏重于个人电脑的应用场景,不需要考虑安全与隔离问题。也可以使用例如Firejail的沙箱中运行。  https://appimage.org/

Snap /Flatpak /Docker:更适合于偏重于服务器的应用场景,需要考虑安全与隔离问题。

由于它们之间的应用场景的不同,不是在一个层面上的东西,严格来说:没有可比性。

比如:桌面操作系统与服务器操作系统,它们之间,好像都能完成彼此的工作。但是,严格来说:它们可比性吗?

如果:

桌面操作系统中使用:Snap /Flatpak /Docker;则感觉:好麻烦,好繁琐。

服务器操作系统中使用:appimage,没有安全与隔离机制;则感觉:随时可以被.Appimage应用搞到系统崩溃

假如:

采用桌面系统来给服务器使用,会如何?

采用服务器操作系统来作为日常的桌面系统来使用,又会如何?

链接:https://www.zhihu.com/question/418865290/answer/1449113473

---------------------------

4.2 . Docker: 考虑到更庞大的应用软件的移植和管理

Docker相比虚拟机的交付速度更快, 资源消耗更低, Docker采用客户端/服务器端架构, 使用远程API来管理和创建容器, 其可以轻松的创建一个轻量级的, 可移植的, 自给自足的容器. Docker的三大理念就是build, ship, run. Docker通过namespace和cgroup来提供容器的资源隔离与安全保障等, 所以Docker容器在运行时, 不需要类似虚拟机的额外资源开销, 因此可以大幅度提供资源利用率

5. 通过实际的应用场景来选择

5.1. 不复杂的、不太关心安全与隔离问题的小程序,优选使用 appimage。

5.2. 需要考虑安全与隔离的、复杂的中大程序,则可优选考虑 Docker吗???

适合使用、就好:杀鸡用牛刀,杀牛用鸡刀。

参考:

一次AppImage打包过程

https://www.bilibili.com/read/cv21703822/

解决 Krita 中无法启动 Fxcit 的问题:要点,解压 AppImage文件,修改,再生成 AppImage

https://zhuanlan.zhihu.com/p/100952461?utm_id=0

问题:运行 Krita 的 AppImage 打包的程序,由于无法启动 Fxcit 所以无法使用中文输入法,也就无法将图层标题设置为非英文的内容。

解决方法:重新打包 Krita,将 platforminputcontext 插件加入到 AppImage 程序包中相应路径即可.

在 Linux 下运行 Mathematica 记事本时,无法输入中文的解决方法类似.。

linux下将qt程序打包成appimage程序高参考价值

https://blog.csdn.net/qq_43081702/article/details/115668609

报错了,因为glic版本问题

如果glic>=2.27,你就需要加上参数 -unsupported-allow-new-glibc (意思就是不再低版本发行版使用了)或 -unsupported-bundle-everything(大概的意思是尝试兼容,实际测试,到其他发行版直接用不了了,有可能是发行版的原因,还是建议用前者,虽然放弃了低版本)

-unsupported-bundle-everything: 捆绑所有依赖库,包括 ld-linux.so 加载器和 glibc。这将允许构建在较新系统上的应用程序在较旧的目标系统上运行,但不建议这样做,因为它会导致捆绑包超出所需的大小(并且可能到其他发行版无法使用)
-unsupported-allow-new-glibc:允许 linuxdeployqt 在比仍受支持的最旧 Ubuntu LTS 版本更新的发行版上运行。这将导致 AppImage无法在所有仍受支持的发行版上运行,既不推荐也不测试或支持

./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage -unsupported-allow-new-glibc

./linuxdeployqt-7-x86_64.AppImage 程序目录/程序 -appimage -unsupported-bundle-everything

大部分的依赖项都到了该程序目录内
————————————————
版权声明:本文为CSDN博主「夏有凉风,冬有雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43081702/article/details/115668609

=================================

官网: https://appimage.org/

官网下载转移链接: https://subsurface-divelog.org/downloads/

AppImageKit: https://github.com/AppImage/AppImageKit

github下载:  https://github.com/AppImage/AppImageKit/releases

什么是AppImage?

https://doc.appimage.cn/docs/appimage/

目标:

让 Linux 应用随处运行

"作为一名用户,我在从原作者处下载到应用后,我希望能直接在Linux桌面上运行它,就像运行一个Windows或者Mac应用程序一样。"

"作为一名应用开发者,我想为Linux桌面系统提供软件包的同时,不需要将其分发到每一个发行版中,也不必为不同的发行版编译多个版本。"

 简单.

AppImage的核心思想是一个应用程序 = 一个文件 。每个AppImage都包含应用程序以及应用程序运行所需的所有文件。换句话说,除了操作系统本身的基础组件,Appimage不需要依赖包即可运行。

可靠.

AppImage 格式是上游应用打包的理想选择,这意味着你可以直接从开发者那里获取软件,而不需要任何中间步骤,这完全符合开发者意图。非常迅速。

快速.

AppImage应用可以直接下载并且运行,无需安装,并且不需要root权限。

领先的Linux应用打包方式

下载一个应用程序,给予运行权限,双击运行!无需安装!不需要改变依赖或系统配置。 也可以使用例如Firejail的沙箱中运行

AppImage 是一种把应用打包成单一文件的格式,允许在各种不同的目标系统(基础系统(Debian、RHEL等),发行版(Ubuntu、Deepin等))上运行,无需进一步修改。

https://en.wikipedia.org/wiki/AppImage

AppImageKit 是AppImage的构建工具包,提供了 appimagetool appimaged等工具来方便地处理AppImage。

appimagetool将AppDir目录转换成自挂载的文件系统镜像。 appimaged是一个守护进程,用于处理AppImage与系统(菜单条目,图标,MIME类型,二进制增量更新等)的注册或注销。

提供AppImage格式的包用于分发应用相对于其他格式,具有以下优点:

  • 使用AppImage打包的应用程序可以在许多发行版上运行(包括Ubuntu,Fedora,openSUSE,CentOS,basicOS,Linux Mint等)
  • 一个应用程序 = 一个文件 = 对用户超级简单:只需下载一个AppImage文件,使其可执行 ,然后运行
  • 不需要解压或安装
  • 不需要root权限(通常在Debian及其衍生版你需要sudo apt install来安装软件并需要输入密码)
  • 不会改变系统的依赖库
  • 开箱即用,无需安装运行库(使用snap和flatpak却需要)
  • 可选的appimaged桌面集成功能(注册快捷方式等)
  • 可以二进制增量更新,例如,用于连续构建(仅下载二进制比较)的AppImageUpdate工具
  • 可以使用GPG2 - (在文件内)签署你的AppImage应用
  • 在Live ISOs上运行
  • 系统安装多个发行版时可以使用相同的AppImage应用
  • 可以在AppImage的应用中心 AppImageHub 发布下载应用
  • 可以使用“–appimage-extract”参数来自解压应用,例如
    ./typora.AppImage --appimage-extract
    

这里是官方上游已分发的AppImage格式应用的概览

利用appimage工具对开发好的项目进行打包

appimage打包方法

本篇记录了自己在ubuntu系统上开发好了一个项目(C++)后,想要对工程进行一个发布,使得该工程只通过一个可执行文件和相应的一个初始化指令,便使得整个工程可以运行。
可以通过利用appimage工具对项目进行一个打包。

整体介绍:

打包需要两个工具:

(1)appimagetool,
下载地址: https://appimage.github.io/appimagetool/

(2)linuxdeploy,
下载地址:https://github.com/linuxdeploy/linuxdeploy

流程简介:

利用linuxdeploy工具首先生成一个方便打包的文件夹,在利用appimagetol来利用上一步生成的文件夹再来对整个工程进行打包。

具体方法如下:

(1)下载appimagetool和linuxdeploy。

使用前确保两个工具具有可执行文件的权限。

(2)在含有这两个的文件的终端中输入:

    ./linuxdeploy-x86_64.AppImage --appdir=APPDIR -e FastFusionV2 -l /lib/x86_64-linux-gnu/libm.so.6 --create-desktop-file --icon-file=FastFusionV2.png

注:

说明:
该命令生成一个叫APPDIR的文件夹。
该命令中
–appdir= 生成的文件名,
-e 后接可执行文件,
-l 后接该打包系统在其他系统执行过程中所缺的文件(一般不用)
–create-desktop-file 生成桌面文件,不知道为什么一定要加。
–icon-file=FastFusionV2.png 给桌面文件加上一个图标, (也是第一次用的时候必须操作)

(3)在终端中输入

    ./appimagetool-x86_64.AppImage APPDIR/

说明: 该步的输入参数是上一步中生成的文件, 然后会输出一个可执行的打包文件和第一步中加入的可执行文件是同名的(第一次用一个要赋予相应的权限)

    有想要这两个工具的小伙伴,可以在下面评论中留下邮箱,我也直接发给你们也好。但还是推荐你们从官方途径进行下载。
————————————————
版权声明:本文为CSDN博主「种花家的德棍」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41918369/article/details/113385650

============================

问题与解决 2 :

1.  WARNING: appstreamcli command is missing, please install it if you want to use AppStream metadata

https://www.suramya.com/blog/2018/08/fixing-the-appstreamcli-error-when-running-apt-get-update/

sudo apt install appstream

2. file command is missing but required, please install it

https://www.cyberciti.biz/faq/bash-file-command-not-found-how-to-install-file/

sudo apt install file

3. Categories entry not found in desktop file .desktop file is missing a Categories= key

非原始的生成目录, .desktop数据修改了

3.1. azubieta / AppImageInfo

https://github.com/azubieta/AppImageInfo/issues/1

  https://specifications.freedesktop.org/menu-spec/latest/apas02.html

注:当前版本,要求 .deaktop文件,需要有 Categories=这个key。(appimagetool-x86_64.AppImage Dec 31, 2020)

解决:自己加上,即可。

可能原因:官网提供了一个用户 app应用的发布与下载平台,因此,被强制加上了 Categories= 这项。

https://appimage.github.io/apps/

Categories= missing in desktop file #1

注:Categories 的key必须与 Main Category规定的相同,这是软件设定的要求而已。

Hence, please add at least one of the following in the Categories= key.

Main CategoryDescriptionNotes
AudioVideoApplication for presenting, creating, or processing multimedia (audio/video)
AudioAn audio applicationDesktop entry must include AudioVideo as well
VideoA video applicationDesktop entry must include AudioVideo as well
DevelopmentAn application for development
EducationEducational software
GameA game
GraphicsApplication for viewing, creating, or processing graphics
NetworkNetwork application such as a web browser
OfficeAn office type application
ScienceScientific software
SettingsSettings applicationsEntries may appear in a separate menu or as part of a "Control Center"
SystemSystem application, "System Tools" such as say a log viewer or network monitor
UtilitySmall utility application, "Accessories"

In addition, you could specify one or more from the longer list of Additional Categories.

4. 当仍然提示缺少某个支持库时,可以将该版本的支持库,直接拷贝到 app目录里,应该就可以运行了吗??

参考:

https://askubuntu.com/questions/1237042/desktop-files-not-launching-from-desktop-in-ubuntu-20-04-lts

https://help.gnome.org/admin//system-admin-guide/2.32/menustructure-desktopentry.html.en

引用:

利用 appimagetool 工具对开发好的项目进行打包 (***)
利用 appimagetool 工具对开发好的项目进行打包 (***)_ken2232的博客-CSDN博客

使用linuxdeployqt在linux下进行Qt打包发布(超详细)

使用linuxdeployqt在linux下进行Qt打包发布 (超详细) (*****)_ken2232的博客-CSDN博客

使用linuxdeployqt在linux下进行Qt打包发布(超详细)_百里杨的博客-CSDN博客

Linux下的QT程序的打包、运行、和关闭程序教程整理

Linux下的QT程序的打包、运行、和关闭程序教程整理_linux下qt打包工具_ken2232的博客-CSDN博客

使用 AppImageLauncher 轻松运行和集成 AppImage 文件

https://zhuanlan.zhihu.com/p/37035598


在Ubuntu中运行和管理AppImage

https://www.cnblogs.com/fenggwsx/p/16578263.html

什么是AppImage#

AppImage 是一种把应用打包成单一文件的格式,允许在各种不同的Linux系统上运行,无需进一步修改

本文主要讲如何在Ubuntu中运行和管理它

如何运行AppImage#

要运行AppImage,为其添加可执行权限即可

假如当前目录下有一个名为app.appimage的文件,运行下面命令赋予其可执行权限:

chmod +x app.appimage

然后运行该AppImage

sudo ./app.appimage

如何管理AppImage#

AppImage可以在任何位置运行,但是这样运行起来非常不方便,我们希望可以有程序来统一管理这些AppImage,并且为它们添加到开始菜单中以方便启动,AppImageLauncher就是这样一个程序

安装AppImageLauncher#

从Github中获取AppImageLauncher的最新发布版:Releases · TheAssassin/AppImageLauncher · GitHub

根据自己的系统架构,下载对应的deb安装包,下载后进行安装:

sudo dpkg -i  appimagelauncher*.deb

添加AppImage#

安装完成后,再运行任何未安装的AppImage程序文件,都会询问是单次运行Run once或是集成并运行Intergrate and run,选择后者就会将AppImage移至统一的文件夹下(默认为~/Applications/,可以在AppImageLauncher的设置中修改),并且为其添加到开始菜单中,这样以后运行就会方便许多.

点击 “Integrate and run”,这个 AppImage 就被复制到 ~/.bin/ (家目录中的隐藏文件夹)并添加到菜单中,然后启动该程序。  使用 AppImageLauncher 轻松运行和集成 AppImage 文件 - 知乎

移除AppImage#

如果通过AppImageLauncher管理的某个AppImage不想要了,可直接对开始菜单中该程序的图标右键,选择从系统中移除Remove from system即可

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值