如何在 Linux 中使用 AppImage [完整指南]
什么是AppImage?如何运行它?它是如何工作的?这是有关在 Linux 中使用 AppImage 的完整指南。
简介:此 AppImage 教程向您展示如何使用 AppImage 安装软件以及如何删除它安装的应用程序。
有多种方法可以在 Ubuntu 或任何其他 Linux 发行版中安装该软件。下载 .deb 或 .rpm 文件并双击它们来安装软件是最方便的方法之一。
最近,您可能已经注意到,某些应用程序的下载扩展名为 .appimage。您可能想知道这些 .appimage 文件是什么。
在本教程中,我将向您展示什么是 AppImage 以及如何使用 AppImage 在 Linux 中安装应用程序。另外,我还会告诉大家一些使用AppImage时需要注意的事项。
什么是AppImage?
AppImage 是一种相对较新的打包格式,为您提供了一种在 Linux 中运行应用程序的即点即用方式。与传统的 DEB/RPM 软件包不同,AppImages 可以在任何发行版上使用,这就是它们对 Linux 用户如此有吸引力的原因。
多年来,我们为基于 Debian/Ubuntu 的 Linux 发行版提供 DEB 软件包,为基于 Fedora/SUSE 的 Linux 发行版提供 RPM 软件包。
虽然这些软件包为各自的发行版用户提供了一种方便的安装软件的方法,但对于应用程序开发人员来说并不是最方便的。开发人员必须为多个发行版创建多个包。这就是 AppImage 发挥作用的地方。
AppImage 是一种通用软件包格式。通过将软件打包在 AppImage 中,开发人员只需提供一个文件即可“统治所有软件”。最终用户,即您可以在大多数(如果不是全部)现代 Linux 发行版中使用它。
AppImage不以传统方式安装软件
典型的 Linux 软件会在不同位置创建文件,需要 root 权限才能对系统进行这些更改。
AppImage 不这样做。事实上,AppImage并没有真正安装软件。它是一个压缩映像,包含运行所需软件所需的所有依赖项和库。
您执行AppImage 文件,即可运行该软件。无需提取,无需安装。您删除 AppImage 文件,软件就会被删除(我们稍后会看到)。您可以将其与 Windows 中的 .exe 文件进行比较,后者允许您运行该软件而无需实际执行安装过程。
让我列出 AppImage 的一些功能或优点。
应用图像功能
与发行版无关:可以在各种不同的 Linux 发行版上运行
无需安装编译软件:点击即玩
无需root权限:不触及系统文件
可移植性:可以在任何地方运行,包括实时磁盘
应用程序处于只读模式
只需删除AppImage文件即可删除软件
默认情况下,打包在 AppImage 中的应用程序不会被沙箱化。
如何在 Linux 中使用 AppImage
使用 AppImage 非常简单。这是通过以下三个简单步骤完成的:
下载AppImage文件
使其可执行
运行
别担心,我将详细向您展示如何运行 AppImage。我在本 AppImage 教程中使用 Ubuntu 22.04,但您也可以在其他 Linux 发行版上使用相同的步骤。毕竟,AppImage 的全部意义在于独立于发行版。
步骤1:下载.appimage包
有很多软件都以 AppImage 格式提供。 Krita、Kdenlive 和 OpenShot 只是其中几个名字。您可以在此处找到 AppImage 格式的广泛应用程序列表。
我将在本教程中使用 OpenShot 视频编辑器。您可以从其网站下载它。
第 2 步:使其可执行
默认情况下,下载的AppImage文件没有执行权限。您必须更改文件的权限才能使其可执行。您不需要 root 权限即可执行此操作。
如果您喜欢图形方式,只需右键单击下载的 .appimage 文件并选择属性。
在下一个屏幕中,转到“权限”选项卡并选中“允许将文件作为程序执行”框。
或者,如果您更喜欢命令行,则可以简单地使用以下命令使 AppImage 文件可执行:
chmod u+x <AppImage File>
步骤 3:运行 AppImage 文件
一旦您使 AppImage 文件可执行,只需双击它即可运行它。它将看到软件正在运行,就像您将其安装在系统上一样。很酷,不是吗?
如果您在 Ubuntu 中遇到 AppImage 问题,这篇故障排除文章可能会对您有所帮助。
如何卸载AppImage软件
由于该软件从未安装过,因此无需“卸载”它。对于按照方法1使用的AppImage,只需删除关联的AppImage文件,您的软件就会从系统中删除。
如果您通过 AppImage Launcher 集成了 AppImage,则可以右键单击该应用程序并选择从系统中删除 AppImage 选项。
这将要求您确认。
按“确定”将从系统中删除 AppImage 和关联文件。
可选:使用 AppImage Launcher 来增强您的体验
在前面的方法中,为了运行AppImage,您需要知道AppImage文件的位置,并且每次都应该去那里打开它。这是一个耗时的过程。
因此,有一个名为 AppImage Launcher for Linux 的实用程序,它允许您管理 AppImage。
AppImage Launcher 将您的 AppImage 软件与应用程序启动器集成。这意味着现在可以通过系统应用程序菜单搜索应用程序,而无需每次都转到 AppImage 文件。
对于 Ubuntu,有一个稳定的 PPA 可用于安装 AppImage Launcher。
sudo add-apt-repository ppa:appimagelauncher-team/stable
sudo apt update
sudo apt install appimagelauncher
安装后,您可以双击打开下载的任何 AppImage 文件。将弹出AppImage Launcher界面并请求许可将AppImage与系统菜单集成。
您可以通过按自定义按钮将集中的AppImage文件位置更改为您喜欢的位置。另外,在上面的屏幕截图中,您可以关闭该复选框,这将自动将新的 AppImage 移动到指定位置。按“确定”按钮将询问是否允许运行一次或集成并运行。
如果您按一次运行,应用程序将运行,但不会集成。因此,为了获得好处,请按“集成并运行”。这会将 AppImage 移动到指定位置,现在可以从系统菜单访问该应用程序,也可以将其固定到仪表板或扩展坞上。
这里的一个便利是,您甚至不需要使文件可执行。一切都将由 AppImage Launcher 完成。
在 Linux 中使用 AppImage 时要记住的事情
您还应该了解有关 AppImage 的一些其他信息。
1. 打包不好的AppImage即使有执行权限也无法运行
AppImage 的概念是将所有依赖项包含在包本身内。但是,如果开发人员认为他已经打包了所有依赖项,但实际上并没有发生怎么办?
在这种情况下,您会发现即使向 AppImage 授予执行权限也无济于事。您单击 AppImage,但没有任何反应。
您可以通过打开终端并像运行 shell 脚本一样运行 AppImage 来检查是否存在此类错误。这是一个例子:
abhishek@linux:~/Downloads$ ./compress-pdf-v0.1-x86_64\ \(1\).AppImage
/tmp/.mount_compreWhr2rq/check: line 3: xterm: command not found
Traceback (most recent call last):
File "compress-pdf_Qt.py", line 5, in <module>
from PyQt5 import QtCore, QtGui, QtWidgets
ModuleNotFoundError: No module named 'PyQt5'
如您所见,我尝试运行的 AppImage 存在一些打包问题。如果您遇到类似情况,您应该联系开发人员并告知她/他该问题。
2. 无需AppImage Launcher的桌面集成
当您运行 AppImage 文件时,某些软件可能会提示您“安装桌面文件”。如果您选择 yes,您的 AppImage 将像常规安装的应用程序一样与您的 Linux 系统集成。
您的软件可以通过 GNOME 或任何应用程序启动器进行搜索。您可以在菜单中找到它并将其锁定到仪表板或启动器。
但是,您可以使用上面讨论的 AppImage Launcher 使(大多数)AppImage 应用程序与桌面集成。
3. 没有 AppImage Launcher 的桌面集成可能需要手动清理后删除
如果您选择桌面集成,您将在系统中创建一些文件。不过,文件大小只有几 Kb。与 AppImage Launcher 不同,当您删除 AppImage 文件时,这些桌面文件仍保留在您的系统中。您可以保留原样或手动删除它。
4. 选择放置 AppImage 文件的位置
下载的 AppImage 文件应位于“下载”文件夹中。但这可能不是保存它的最佳位置,因为随着时间的推移它会变得混乱。最好将它们保存在单独的目录中,以便于管理。
另外,请记住,如果您选择桌面集成,然后将 AppImage 文件移动到另一个位置,则必须先删除桌面文件。否则桌面集成可能无法工作。
5. 更新并不总是一种选择
也许某些软件会自动检查更新并通知您有新版本可用。但大多数时候这种情况不会发生。
有一个命令行选项可以检查和更新软件,但这也取决于开发人员是否提供此选项。
简而言之,自动更新并不总是可行。这取决于开发者是否添加了该功能。大多数时候,您必须自行查找是否有更新版本的软件可用。
结论
还有其他“通用 Linux 应用程序”,例如 Ubuntu 的 Snap 和 Fedora 的 Flatpak。由于本文是关于使用 AppImage 的,因此我没有讨论 Snap、Flatpak 和 AppImage 的争论。
对我来说,AppImage 是跨 Linux 发行版使用软件的好方法。我确实希望改进这里的更新过程,使其对最终用户更加有用。
您对 AppImage 有何看法?与其他格式相比,您更喜欢在 Linux 中使用 AppImage 吗?在下面的评论中分享您的观点。