一个独立运行软件包AppImage文件
Tofloor
poster avatar
中国新蔡
deepin
2018-12-11 00:15
Author
上次无意中看见一个老铁的文章,提到AppImage文件格式,百度搜索了一下,发现这个是独立运行文件格式,可以直接运行在Linux平台上,感觉挺好玩的,就研究了一下,现在记录一下过程,然后打包了三个我安装,测试成功的软件,其他更多软件,欢迎大家测试跟帖!
1、什么是Appimage
Appimage是一种Linux下的软件打包方式,对于开发者来说,开发者使用Appimage来封装打包自己的软件,可以使其直接在主流发行版上运行,不再需要为碎片化严重的每个主流Linux发行版而编译一个版本。对于用户来说,只需下载一个Appimage软件包,给予它运行权限,无需安装依赖,无需安装任何运行环境,直接双击便可以运行。
并且,AppImage支持大多数主流Linux桌面发行版,Ubuntu,Debian,CentOS,LinuxMint等等等等。
AppImage的宗旨亦在“一次打包,到处运行”,它就像Mac程序和Windows程序一样简单,更确切的描述是它更像Android的apk应用程序。总之,用一个词来概括,就是Easy。就算是刚刚安好Linux桌面的菜鸟,也能方便的使用AppImage应用程序。
Appimage的打包过程也十分简单,可以直接将二进制程序转换为AppImage应用程序,例如包含在tar.gz,deb,rpm包中的二进制文件,也可以将你的Travis CI版本应用打包为AppImage,也支持基于Qt的应用程序(这可能是最简单的)和基于Electron的应用程序打包为AppImage。在大多数情况下,打包都是由Appimage自动完成的,操作十分简单。
AppImage将应用程序所需要的运行环境和依赖库等等封装在包内,这正是它最大的优点,当然,换来的也是应用包体积的略微增大。当然,比起解决复杂的依赖问题和兼容问题,这点体积的增大当然是完全可以接受的。
如果各位大佬们想了解关于AppImage更多的技术细节,可以加入中国唯一的AppImage交流群,群号码:274328087,AppImage的作者,德国的Probono就在群内哦。
也可以访问由中国Gamux社区所翻译的官方wiki文档:https://github.com/Gamuxorg/AppImage-CN
AppImage的官方网站: https://appimage.org/
2、以安装一个文本编辑器为例:Typora

官网:https://www.typora.io/
下载链接:https://typora.io/linux/Typora-linux-x64.tar.gz

在家目录下,创建一个目录software和application,专门用来存放软件包和安装软件用,
mkdir ~/software
cd software
wget https://typora.io/linux/Typora-linux-x64.tar.gz
然后在解压到 ~/application目录下
tar xf Typora-linux-x64.tar.gz -C ~/application/
Typora 并没有提供 .desktop 的文件,也就是如果想要启动 Typora,就得进入 Terminal 以命令行的形式,虽然可以使用别名的方式快速打开,但是如果习惯点击图标,可以自己写一个 .desktop 文件

  1. [Desktop Entry]
  2. Encoding=UTF-8
  3. Version=1.0
  4. Type=Application
  5. Terminal=false
  6. Exec=/home/xiaoxie/application/Typora-linux-x64/Typora
  7. Name=Typora
  8. Icon=/home/xiaoxie/application/Typora-linux-x64/resources/app/asserts/icon/icon_128x128.png
Copy the Code
然后移动到 /usr/share/applications/ 目录下,这里需要管理员权限,请注意:
sudo cp ./Typora.desktop  /usr/share/applications/

此时就可以在 Deepin 的启动器界面看见 Typora 了!

以此类推,我安装的三个软件包,都测试可以运行!



我已经把这三个软件打包,下载链接:
链接:https://share.weiyun.com/5unKIup 密码:deepin
这个文件里面有两个压缩包,application.tar.gz 是软件目录打包,直接解压到上面创建的application目录就可以了;
app.desktop.tar.gz  是三个desktop文件,解压到/usr/share/applications/目录就可以了,注意需要管理员权限哦;

然后,你就安装了,三个软件分别是:AzPainter 、Typora、PicGo,哈哈。。。。。

发现更多Appimage软件:
https://bintray.com/probono/AppImages





Reply Favorite View the author
All Replies
avatar
rekols
deepin
2018-12-11 00:31
#1
老铁。。。
Reply View the author
avatar
要讲武德
deepin
2018-12-11 00:37
#2
没有desktop文件太不爽了, 对小白也很不友好
Reply View the author
avatar
HarryZhao
deepin
2018-12-11 03:55
#3
https://bbs.deepin.org/post/172224
没有desktop文件太不爽了, 对小白也很不友好

记得曾经有个Desktop文件的简单制作工具来着,不过没用过,都是自己copy文件改
Reply View the author
avatar
ylxdxx
deepin
2018-12-11 06:11
#4
能普及一下打包吗?
Reply View the author
avatar
中国新蔡
deepin
2018-12-11 15:59
#5
https://bbs.deepin.org/post/172224
能普及一下打包吗?

打包的方式,我还在研究,等研究明白了,来给大家普及一下哈!
Reply View the author
avatar
Gaoy9303
deepin
2018-12-11 17:21
#6
老铁
Reply View the author
avatar
successfully
deepin
2018-12-11 17:53
#7
这个格式貌似和flapak一样都是将运行库封装在一块。这个更便携
Reply View the author
avatar
NSFW
deepin
2019-11-22 14:12
#8
本帖最后由 gov360 于 2019-11-23 17:26 编辑

借个楼层分享一个游戏平台的打包过程
名称 itch
类型:游戏
本来是打算采用pkg2appimage脚本进行打包,使用网络(官方的)上提供的yml进行封装的,但是运行了几遍都有错误.索性自己动手尝试
由于游戏平台官方已经放弃DEB等发行版格式,所以采用官方客户端脚本进行重新封装.
第一步下载封装APPimage所需要的脚本
  1. wget -c https://github.com/AppImage/pkg2appimage/blob/master/pkg2appimage
Copy the Code
第二步编写用于打包转换的资源文件
这就是itch.yml文件
  1. app: Itch

  2. ingredients:
  3.   dist: wheezy
  4.   sources:
  5.    - deb http://ftp.de.debian.org/debian/ wheezy main
  6.   script:
  7.   - wget -c "http://nuts.itch.zone/download"
  8.   - mv download itch-setup
  9.   - chmod +x itch-setup && ./itch-setup
  10. script:
  11.   - cp -r ~/.itch/app-*/* ./usr/bin/
  12.   - cp ~/.itch/icon.png ./itch.png
  13.   - cat > itch.desktop <
  14.   - [Desktop Entry]
  15.   - Type=Application
  16.   - Name=itch
  17.   - Icon=itch
  18.   - Exec=itch %u
  19.   - Categories=Game;
  20.   - X-GNOME-Autostart-enabled=true
  21.   - MimeType=x-scheme-handler/itchio;x-scheme-handler/itch;
  22.   - Comment=Install and play itch.io games easily
  23.   - EOF
Copy the Code
有这个文件之后,就是进行接下来的正式封装操作
第三步确保你所下载的脚本和资源文件都在同一个目录,并在该目录执行封装命令.且必须要有该文件夹的写权限.因为后面后生成一个APPimage文件
执行命令封装
  1. ./pkg2appimage itch.yml
Copy the Code
封装完成之后会有一个out目录生成里面的就是刚刚运行命令打包好的文件.注意封装过程中可能因为网络的原因失败或者等待时间较长,可以换个时间重新尝试.

再来一个百度网盘的资源文件baidunetdisk.yml
  1. app: baidunetdisk

  2. ingredients:
  3.   dist: trusty
  4.   sources:
  5.   - deb http://cn.archive.ubuntu.com/ubuntu/ xenial main universe
  6.   script:
  7.   - wget -c "http://issuecdn.baidupcs.com/issue/netdisk/LinuxGuanjia/2.0.2/baidunetdisk_linux_2.0.2.deb"

  8. script:
  9.   - rm -rf ./baidunetdisk.desktop
  10.   - cat > usr/share/applications/baidunetdisk.desktop <<\EOF
  11.   - [Desktop Entry]
  12.   - Name=baidunetdisk
  13.   - Comment=百度网盘
  14.   - Exec=baidunetdisk %U
  15.   - Icon=baidunetdisk
  16.   - Terminal=false
  17.   - Type=Application
  18.   - Categories=Network;
  19.   - StartupWMClass=baidunetdisk
  20.   - MimeType=x-scheme-handler/baiduyunguanjia;
  21.   - EOF
  22.   - cp usr/share/applications/baidunetdisk.desktop .
  23.   - mv opt/baidunetdisk/* usr/bin/
Copy the Code
百度网盘这个文件还不是很完美,不能自动封包最新版.下次有机会在完善吧.

再来一个SSH链接工具资源文件finalshell.yml
  1. app:  finalshell
  2. ingredients:
  3. dist: trusty
  4. sources:
  5.   - deb http://ftp.de.debian.org/debian/ xenial main universe
  6. script:
  7.   - wget http://dl.hostbuf.com/finalshell2/finalshell_linux.zip
  8.   - unzip finalshell_linux.zip
  9.    
  10. script:
  11.   - cp -r ../FinalShell/* ./usr/bin/
  12.   - cp -r ../FinalShell/app/img/finalshell.png .
  13.   - chmod +x ./usr/bin/FinalShell
  14.   - cat > finalshell.desktop <
  15.   - [Desktop Entry]
  16.   - Type=Application
  17.   - Terminal=false
  18.   - Name=FinalShell
  19.   - Icon=finalshell
  20.   - Exec=FinalShell %u
  21.   - Categories=Development;
  22.   - X-GNOME-Autostart-enabled=true
  23.   - Comment=一个跨平台的SSH链接工具
  24.   - EOF
Copy the Code
官网在这里http://www.hostbuf.com/t/988.html
更多资源文件在这里



Reply View the author
avatar
刘艳彬de桌面电脑
deepin
2019-11-23 03:07
#9
技术操作本人一点不会,唯一的优势就是懂技术业务战略,略懂管理
Reply View the author
avatar
yaoyi
deepin
2020-04-17 16:31
#10
sudo cp ./Typora.desktop  /usr/share/applications/

进行到这步的时候提示没有那个文件或目录,这咋整?
Reply View the author
avatar
jerry79
deepin
2020-04-17 17:00
#11
https://github.com/TheAssassin/A ... releases/tag/v2.1.1
安装这个软件解决你的desktop问题
Reply View the author
avatar
^9星守辰^
Moderator
2020-04-17 17:24
#12
相比typora我更喜欢vnote
Reply View the author
avatar
xiaoz
deepin
2021-03-01 06:31
#13

感谢分享,又学习到了新知识。

Reply View the author