我刚刚阅读了Meet Etcher, 一个时尚的开源USB镜像写入工具。它讲述了下载AppImage的内容。
是的,是Linux;Linux软件包以.appimage的形式分发,适用于32位和64位发行版,并且应该可以在所有主要Linux发行版上运行而无需任何问题。目前团队没有提供本地.deb(或.rpm)安装程序的计划。
什么是AppImages?它们与Snaps有何不同?
我刚刚阅读了Meet Etcher, 一个时尚的开源USB镜像写入工具。它讲述了下载AppImage的内容。
是的,是Linux;Linux软件包以.appimage的形式分发,适用于32位和64位发行版,并且应该可以在所有主要Linux发行版上运行而无需任何问题。目前团队没有提供本地.deb(或.rpm)安装程序的计划。
什么是AppImages?它们与Snaps有何不同?
以下是从appImage项目页面引用的内容:
AppImages可以下载并运行,无需安装或需要root权限。
您可以按照以下步骤使appImage可执行:
chmod a+x exampleName.AppImage
您可以按照以下步骤执行一个AppImage:
./exampleName.AppImage
你可以在这里找到一些关于appImage的一般信息here。
我在这里引用了appImage项目页面的内容:
AppImage格式的关键思想是一个应用程序=一个文件。每个AppImage都包含一个应用程序以及应用程序运行所需的所有文件。换句话说,每个AppImage除了目标基本操作系统中包含的内容外,没有其他依赖项。
维基百科补充道
AppImage(以及其前身klik和portablelinuxapps)不是以传统意义上的方式安装软件(即它不会在系统中随处放置文件)。安全性, 就 confinement 方面而言:Snap 包在沙盒中运行,不允许逃离沙盒并触及系统的其他部分,这是一个更强大的安全层,与权限系统并行运行。显然,在开始时(以及之后)处理它可能有点令人沮丧,但如果从系统管理的角度来考虑,这正是管理员希望为其用户提供的。
安全性:从网络上下载的软件的安全性就像在街上舔杆子一样安全。有时候什么都不会发生,有时候会遇到很大的健康问题。Snap 包有自己的存储库,由 Canonical 控制,就像通常的标准 Ubuntu 存储库一样。你可以继续安装来自其他地方的 .deb 文件,但那将是你的选择,而不是设计问题。
安装:AppImages 相当于“便携式 Windows 可执行文件”。所有的库都是自包含的,任何用户只需下载并执行其中之一即可。另一方面,snap 包是真正的软件包,需要通过适当的软件包管理器(使用 root 或 sudo)进行安装(例如,snap install tic-tac-toe 会抛出错误:需要 sudo!)。
卸载:要删除 snap 包,您需要使用带有正确权限的软件包管理器 snap remove ... 进行操作。而 AppImages 只是“存在”而已。所以任何用户不想要那个 AppImage?只需删除文件即可。
虽然我强烈建议在使用AppImages时要小心谨慎,但我个人也在使用其中的一些。
我发现它们在我的工作系统上特别有用,因为我没有root
访问权限(只有管理员有),但我需要最新版本的特定软件,幸运的是开发者提供了Appimage形式。
我有点担心其中可能包含了一些恶意代码,所以我尽可能地核实了发布者的身份。虽然我不能百分之百确定这个软件是无害的,但我已经尽力了。
chmod a+x ./yourAppImage
命令),然后只需双击即可运行该应用程序。许多发行版已经默认安装了FUSE。但是如果它对您不起作用,您可能需要手动安装和配置FUSE。
例如,在Ubuntu上:
sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER
sudo zypper install fuse
如果您不想安装FUSE,您可以选择挂载或提取AppImage。
要挂载AppImage并运行应用程序,只需运行以下命令:
sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun
mount
命令中传递-o offset=...
。运行AppImage并使用--appimage-offset
来找到正确的偏移量数值。sudo usermod -a -G fuse
)后,跟着我的用户名,我一直收到usermod: group 'fuse' does not exist
的错误信息... 你有什么想法为什么会这样? - Martinsudo apt-get install fuse
、sudo modprobe fuse
和sudo usermod -a -G fuse $USER
这几行命令。我正在评论的答案没有提到任何32/64位的规定,我也不知道我应该在哪里指定或为什么要指定... - Martin以上的答案都没有帮到我,因为没有一个真正展示了如何安装AppImage。对于安装,我通常指的是:将可执行文件放在磁盘上通常存储可执行文件的位置,并通过应用程序启动器使其可访问。
以Arduino IDE为例:
chmod +x ./arduino-ide_nightly-20230209_Linux_64bit.AppImage
mv arduino-ide_nightly-20230209_Linux_64bit.AppImage ~/Applications/
为了做到这一点,我们需要添加桌面入口(更多信息请点击这里)。
touch ~/.local/share/applications/arduino-ide.desktop
[Desktop Entry]
Version=1.0
Name=Arduino IDE
Exec=/home/piotrek/Applications/arduino-ide_nightly-20230209_Linux_64bit.AppImage
Terminal=false
Type=Application
Categories=Utility;Development;
chmod +x ~/.local/share/applications/arduino-ide.desktop
$ sudo apt-get install digikam
然后打开 菜单编辑器
。
...现在来整理一下:
你想要删除旧的软件包,但仍然保留其桌面和图标文件。
找到任何digikam的桌面文件。一种方法是使用locate
命令:
$ locate digikam.desktop
/usr/share/applications/org.kde.digikam.desktop
~/.local/share/applications/org.kde.digikam.desktop
第一个是系统默认值(适用于所有用户),第二个只适用于你自己。如果两者都存在,通常第二个(本地的)会覆盖第一个。
而且,如果你对它们进行比较,你会注意到你只编辑了.local的那个,而没有编辑/usr目录下的那个...
此外,你不需要两个都保留。所以如果你愿意,你可以删除.local的那个,只依赖于/usr目录下的那个。这样会更简单。
修复这个问题最简单的方法是使用移动命令进行覆盖,如下所示:
$ cd /usr/share/applications
$ sudo mv ~/.local/share/applications/org.kde.digikam.desktop .
/usr/share/icons/
目录下。$ cd /usr/share
$ sudo mv icons icons~ # save icons tree
$ sudo apt-get purge digikam && sudo mv icons~ icons #uninstall & restore tree