“AM” 应用程序管理器
适用于所有 AppImage 和便携式应用的数据库与解决方案,面向 GNU/Linux!
![]() | ![]() | ![]() |
|---|---|---|
| sandbox AppImages | list available apps | info about the apps |
![]() | ![]() | ![]() |
| install applications | query lists using keywords | show the installed apps |
![]() | ![]() | ![]() |
| create and restore snapshots | update everything | get rid of libfuse2 |
"AM"/"AppMan" 是一组用于安装、更新和管理 AppImage 包及其他便携式格式的脚本和模块,其方式类似于 APT 管理 DEB 包、DNF 管理 RPM 包等……它使用一个庞大的 Shell 脚本数据库,该数据库受 Arch User Repository 启发,每个脚本专门用于一个应用程序或一组应用程序。
"AM"/"AppMan" 旨在成为所有 AppImage 包的默认包管理器,为它们提供一个安身之所。
您可以在 portable-linux-apps.github.io/apps 查阅完整的受管理应用列表。
它能做什么?
"AM" 可以轻松地将便携式程序和 AppImage 集成到系统范围(默认)或本地(使用 --user 标志),允许从命令行进行更新和管理,将它们集成到应用程序菜单中,甚至可以像 AUR 助手一样即时组装它们。
"AM" 只是一个用于轻松快速提供应用程序的工具,仅负责将 AppImage 集成到系统中并安装可用的各种程序,遵循以下顺序:
- 创建基础目录和移除脚本
- 下载软件包
- 创建版本文件和更新脚本
- 可能提取图标和 .desktop 文件
它不能做什么!
"AM" 不对单个应用程序的故障负责! 这是上游开发或打包它们的人的问题。
您可以使用命令 am -a {PROGRAM} 查看描述并获取联系程序维护者的来源,或使用 am -d {PROGRAM} 在桌面上下载并阅读脚本以安全地追踪并找到来源。
主索引
安装
"AM"(系统级)或 "AppMan"(本地级)是一个以多功能 BASH 脚本形式提供的程序,完全兼容 ZSH、FISH 以及大多数符合 POSIX 标准的 shell。因此,它会调用主机上已存在的其他程序,其中一些是"CORE"(核心),另一些是"OPTIONAL"(可选)。
◆ CORE 依赖项
如果系统中不存在以下依赖项,"AM"/"AppMan" 将无法工作:
| 命令 | 动机 | 是否预装? |
|---|---|---|
coreutils | 它是一套核心命令 | 是,在几乎所有发行版中 |
curl | 用于读取在线文本(如列表、URL 和版本)的网络工具 | 并非所有发行版都有 |
grep | 一个字符串搜索工具 | 是,在许多发行版中 |
sed | 用于过滤和转换文本的流编辑器 | 是,在几乎所有发行版中 |
注意,如果您安装的是 "AM"(系统级)而不是 "AppMan"(本地级),您需要 sudo 或 doas 来获取 root 权限。
◆ OPTIONAL 命令
这些命令被视为“可选”,因为它们对于 "AM" 本身的功能并非严格必要,但对于您将要安装的应用程序却是必要的。
>>> 点击此处展开 <<<
虽然它涵盖了许多基本命令,但 "AM"/"AppMan" 的缺点在于必须适应上游开发者以可移植方式分发的各种平台和打包格式。
事实上,与 APT、DNF、Pacman、Snap 和 Flatpak 不同,后者拥有各自的打包格式(.deb、.rpm、.tar.xz、.snap 和 .flatpak),"AM" 更像是一个 AUR 助手,并且可能需要额外的命令来处理 .AppImage 之外的多种打包格式。
其中许多并未预装。
以下是您的系统上可能需要的"可选"命令列表:
| command | motivation |
|---|---|
7z | 安装 .7z 包时必需,且包名可能有所不同 |
ar | 安装时提取 .deb 包必需,且包含在 binutils 包中 |
column | 用于列式排列列表,通常包含在 utils-linux 包中,但建议使用 GNU 版本 |
du | 用于估算文件空间使用情况,通常包含在 coreutils 包中,但建议使用 GNU 版本 |
file | 根据文件内容确定文件类型,且包含在 file 包中 |
md5sum sha1sum sha256sum sha512sum | 用于校验和运算,通常包含在 coreutils 包中 |
notify-send | 如果在后台运行 AM/AppMan,可以显示更新通知,且包名可能有所不同 |
tar | 用于 .tar 包,且包含在 tar 包中 |
unxz xz xzcat | 作为提取 .deb、.tar 及类似包的其他命令的支持所必需,且包名可能有所不同 |
unzip | 用于 .zip 包,且包含在 unzip 包中 |
wget | 用于从网络下载脚本和包等文件的网络工具 |
注意,可选依赖项在必要时可通过 静态二进制文件 覆盖。然而,建议依赖系统包管理器.
使用 "AM-installer" 脚本选择本地安装或系统范围安装
"AM-INSTALLER" 脚本允许您选择 "AppMan" 而不是 "AM",并简要说明两者之间的区别。
复制/粘贴以下单行命令以下载并运行 "AM-INSTALLER" 脚本
使用 wget
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER && chmod a+x ./AM-INSTALLER && ./AM-INSTALLER && rm ./AM-INSTALLER
或使用 curl
curl -s -Lo ./AM-INSTALLER https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER && chmod a+x ./AM-INSTALLER && ./AM-INSTALLER && rm ./AM-INSTALLER
...以下是将显示的内容的截图。
输入 "1" 以安装 "AM",输入 "2" 以安装 "AppMan"。按其他任何键将中止安装。
| AM(系统级安装) | AppMan(本地安装) |
|---|---|
![]() | ![]() |
安装完成!
运行 am -h 或跳转到 "使用" 以查看所有可用选项。
注意,AM-INSTALLER 支持通过标志 -i、install 或 --install 进行非交互式安装。例如
./AM-INSTALLER -i am
或
./AM-INSTALLER -i appman
这将有助于以自动化方式安装 AM 或 AppMan。
使用 "GIT"(仅限系统范围安装)
复制/粘贴以下命令
git clone https://github.com/ivan-hc/AM.git
cd AM
chmod a+x INSTALL
sudo ./INSTALL
使用单行命令(仅限系统范围安装)
复制/粘贴以下单行命令
使用 wget
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/INSTALL && chmod a+x ./INSTALL && sudo ./INSTALL && rm ./INSTALL
或使用 curl
curl -s -Lo ./INSTALL https://raw.githubusercontent.com/ivan-hc/AM/main/INSTALL && chmod a+x ./INSTALL && sudo ./INSTALL && rm ./INSTALL
这绝对是所有方法中最快的!
注意,我在这份指南中优先推荐 "AM-INSTALLER" 脚本,是因为 "AM" 可以以不同形式使用。事实上,并非所有用户都能负担得起使用 root 权限安装 "AM"。因此,"AppMan" 也存在。
什么是 AppMan?
AppMan 是 "AM" 的便携版本,仅限于在本地安装和管理应用程序,且无需 root 权限。
命令名称从 am 变为 appman,但脚本是相同的。
相反,"AM" 提供 "固定" 安装,但可以在本地和系统级别安装和管理应用程序。
- "AM" 适用于希望在多个级别安装和管理应用程序的特权用户
- "AppMan" 适用于非特权用户或需求不高的用户
如果你想了解更多关于 "AppMan" 的信息,请访问 https://github.com/ivan-hc/AppMan
如何手动安装 AppMan
点击此处展开
正如我们之前所见,AppMan 是可移植的,这意味着你可以在任何具有读写权限的目录中使用它。基本原理非常简单:APP-MANAGER 脚本必须重命名为 "appman"。
试试看,你会相信的:
使用 wget
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER -O ./appman && chmod a+x ./appman
或使用 curl
curl -s -Lo ./appman https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER && chmod a+x ./appman
然而,由于各种原因,不推荐 使用这种方法,最常见的原因是便利性:
- AM-INSTALLER 会确保创建 XDG_BIN_HOME 或 $HOME/.local/bin 目录(如果尚不存在),这样你就可以在 $PATH 中使用它,而无需编写脚本的完整路径。
- 通过将其安装到本地 $PATH 中,AM-INSTALLER 还会处理其在 ZSH 中的使用(如果使用的是 ZSH 而不是 BASH)。
要手动将其安装到 $PATH 中,请运行以下命令:
ZSHRC="${ZDOTDIR:-$HOME}/.zshrc"
BINDIR="${XDG_BIN_HOME:-$HOME/.local/bin}"
mkdir -p "$BINDIR"
if ! echo $PATH | grep "$BINDIR" >/dev/null 2>&1; then
if [ -e ~/.bashrc ] && ! grep 'PATH="$PATH:$BINDIR"' ~/.bashrc >/dev/null 2>&1; then
printf '\n%s\n' 'BINDIR="${XDG_BIN_HOME:-$HOME/.local/bin}"' >> ~/.bashrc
printf '\n%s\n' 'if ! echo $PATH | grep "$BINDIR" >/dev/null 2>&1; then' >> ~/.bashrc
printf ' export PATH="$PATH:$BINDIR"\nfi\n' >> ~/.bashrc
fi
if [ -e "$ZSHRC" ] && ! grep 'PATH="$PATH:$BINDIR"' "$ZSHRC" >/dev/null 2>&1; then
printf '\n%s\n' 'BINDIR="${XDG_BIN_HOME:-$HOME/.local/bin}"' >> "$ZSHRC"
printf '\n%s\n' 'if ! echo $PATH | grep "$BINDIR" >/dev/null 2>&1; then' >> "$ZSHRC"
printf ' export PATH="$PATH:$BINDIR"\nfi\n' >> "$ZSHRC"
fi
fi
curl -s -Lo "$BINDIR"/appman https://raw.githubusercontent.com/ivan-hc/AM/main/APP-MANAGER && chmod a+x "$BINDIR"/appman
上述内容是 AM-INSTALLER 脚本在你选择选项 2 (AppMan) 时已经执行的操作的“摘要”(不含消息)。
AM 安装结构
经典的 "AM" 安装具有以下结构:
/opt/am/APP-MANAGER ==> /usr/local/bin/am
/opt/am/modules
/opt/am/remove
其中命令 /usr/local/bin/am 只是指向 /opt/am/APP-MANAGER 的符号链接。目录 /opt/am/modules 包含对 "AM" 而言"非关键"但管理应用所必需的模块。脚本 /opt/am/remove 则用于移除 "AM"。
卸载
要卸载 "AM",只需运行此命令:
sudo /opt/am/remove
或直接在 CLI 中
am -R am
注意,建议先使用 -R 选项移除应用,然后再移除 "AM",因为本地安装的应用可能具有不同于 /opt 的路径,参见下文"应用是如何安装的"。
如果您是 AppMan 用户,appman 是一个可移植脚本,您可以直接手动将其移除。如果您使用了 AM-INSTALLER,您只需移除 $HOME/.local/bin/appman 脚本。要移除应用程序,适用与上文 AM 相同的规则。它们的位置是您在 $HOME/.config/appman/appman-config 文件中指定的位置。
应用是如何安装的
系统范围的 AppImage 集成具有以下结构:
/opt/$PROGRAM/
/opt/$PROGRAM/$PROGRAM
/opt/$PROGRAM/AM-updater
/opt/$PROGRAM/remove
/opt/$PROGRAM/icons/$ICON-NAME
/usr/local/bin/$PROGRAM
/usr/local/share/applications/$PROGRAM-AM.desktop
本地安装的应用可以拥有您选择的目录,这取决于您最初启动 am -i --user {PROGRAM} 或启动 appman 时的决定(如果您选择了 AppMan)或使用 am --user 命令。
事实上,--user 命令可以用作应用程序安装选项的“标志”,允许你像 AppMan 那样在本地集成它们,且无需 root 权限。
例如,假设你想创建并使用 /home/USER/Applicazioni 目录,以下是本地嵌入的 AppImage 的结构:
~/Applicazioni/$PROGRAM/
~/Applicazioni/$PROGRAM/$PROGRAM
~/Applicazioni/$PROGRAM/AM-updater
~/Applicazioni/$PROGRAM/remove
~/Applicazioni/$PROGRAM/icons/$ICON-NAME
~/.local/bin/$PROGRAM
~/.local/share/applications/$PROGRAM-AM.desktop
如何设置本地应用的路径
本地安装应用程序路径的配置文件位于 ~/.config/appman,其中包含你首次使用 --user 标志启动安装应用程序选项时指定的路径,例如:
am -i --user {PROGRAM}
如果你是 AppMan 用户,你可以直接启动任何选项。
当你首次启动时,系统会要求你指定应用程序的路径。你可以指定任何目录或子目录,即使在 $HOME 之外,只要它不是特权目录即可。甚至可以是 USB 闪存盘。
注意:通过修改 ~/.config/appman 的内容,你只会更改后续操作的路径,而存储在旧路径中的应用和模块将无法管理。建议先移除这些应用。
要更改位置、移除本地应用并在新位置重新安装,请参阅 --relocate 或 relocate 选项,此处。
以非交互方式设置 AppMan 配置文件
如果您尚未设置配置文件,并希望非交互式地设置应用程序目录,只需将路径添加到 "$appman_location" 变量中,如下所示:
appman_location=/path/to/directory am -i --user {PROGRAM}
或
appman_location=/path/to/directory am --user
或
appman_location=/path/to/directory appman
注意:这仅在配置文件不存在时有效。
可以安装哪些程序
"AM" 仅安装、移除、更新和管理独立程序,即那些可以从其所在的单个目录中运行的程序。
- 便携式程序,来自官方来源(参见 Firefox、Thunderbird、NodeJS、Platform Tools...),从官方 .deb/tar/zip 包中提取。
- AppImage,来自官方和非官方来源(我也创建非官方 AppImage),或使用 pkg2appimage 和 appimagetool 即时编译,类似于 AUR 助手,从官方归档中获取。
- 第三方库,如果您的软件仓库中缺少它们。
该数据库旨在成为一个参考点,您可以从中下载散布在网络上、否则无法获取的所有 AppImage 包,就像您从任何包管理器所期望的那样,通过为每个应用程序提供的特定安装脚本,正如 Arch Linux 上的 AUR PKGBUILD 那样。您可以在 这里 查看它们,按架构分类。
您可以使用相关命令 am -a {PROGRAM} 查看基本信息、站点链接和来源,或访问 portable-linux-apps.github.io/apps。
支持的第三方数据库
"AM" 的另一项特性是可扩展性,通过在安装过程中使用专用 "flags"(选项 -i 或 install)、创建列表(-l 或 list)和搜索(-q 或 query)来管理来自外部数据库的应用程序。
am -i --{FLAG} {PROGRAM}
am -i --{FLAG} --user {PROGRAM}
am -l --{FLAG}
这些数据库的任务是支持和丰富可通过 "AM" 安装的应用程序列表。
要查看完整的 flags 列表,请滚动到 -h 或 help 消息的底部。
或者,使用 flag --all 执行搜索(选项 -q 或 query)以识别应用程序。
来自外部数据库的每个应用程序都有一个标识扩展名,对应其来源的数据库。
第三方数据库通常可以使用选项 -a 或 about 显示基本信息,此处无需使用 flag。但是,软件包名称将显示为与用于安装它的 flag 等效的扩展名。例如,如果来自 "{FLAG}" 数据库,{PROGRAM} 将变为 {PROGRAM}.{FLAG}。
同样,您可以使用 am -i {PROGRAM}.{FLAG} 或 am -i --user {PROGRAM}.{FLAG} 在不使用 flag 的情况下安装程序。
如何替换 AM 数据库
我非常重视的一件事是连续性,正如我多年来所见,并非所有开源开发者都能维护一个项目。未来我可能会遇到这种情况。我不希望如此。
Because of this, I have made some essential variables "customizable":
APPSDB, i.e. the "raw" directory of the architecture in use, containing the installation scripts (default value https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$ARCH), this is mainly used in-i,-dand-s/-uAPPSDBLIST, i.e. the list of applications available for that architecture (default value https://raw.githubusercontent.com/ivan-hc/AM/main/programs/$ARCH-apps), this is used every time lists are updated, for example in-l,-qand-s/-uAPPIMAGES_LIST, i.e. the list of AppImages available in the database (default value https://raw.githubusercontent.com/Portable-Linux-Apps/Portable-Linux-Apps.github.io/main/x86_64-appimages), used in-iaand-l/-qwith the--appimagesflagAMCATALOGUEMARKDOWNS, i.e. the pages in .md format from the catalog of applications available in this database (default value https://portable-linux-apps.github.io/apps, add an appname with extension .md to see the content of one file), this is used in-aAMCATALOGUEICONS, i.e. the icons in .png format available in the catalog of applications available in this database (default value https://portable-linux-apps.github.io/icons, add an appname with extension .png to see one file), this is used in-i, in case the installation script fails to get an icon for the applicationAMSYNC, if set to "1" prevents AM from updating itself and updating modules when running-sor-u
只需export上述变量,并遵守目标文件格式(遵循括号中的 URL),如果你决定创建一个新的社区驱动数据库来弥补本仓库中支持缺失的话。
我这样做是为了不将用户绑定到此数据库,并允许他们在我(Ivan)因任何原因无法介入时,使用 AM 及其所有功能。
有许多不连续的项目。如果这也成为其中之一,它不会过时。
推荐软件包
安装 AM 后,以下软件包是必备品,可以让你的生活更轻松:
1) appimageupdatetool
appimageupdatetool (fork) 是一个用于获取支持增量更新的 AppImage 的工具,如果你决定安装大型 AppImage 软件包,这将很有用(参见“如何真正更新所有程序!”)
am -i appimageupdatetool
2) appimagetool
appimagetool 是一个用于从 AppDir 创建 AppImage 软件包的工具。“AM”使用它来转换旧的 AppImage 并移除其对 libfuse2 的依赖,或者从便携式存档中即时组装 AppImage 软件包,就像在 AUR 辅助工具中一样(参见“将需要 libfuse2 的 Type2 AppImage 转换为新一代 AppImage”和“选项一:“即时构建 AppImage”)
am -i appimagetool
3) aisap 或 sas
aisap 是一个 Bubblewrap 前端,允许你在沙箱中隔离 AppImage,sas 是 Aisap 的 POSIX shell 重写版本,支持 DWARFS(参见“Sandbox an AppImage”)
am -i aisap
或
am -i sas
你是否拥有一个独立于本数据库的 AppImages 仓库?请遵循以下说明!
如果你有一个 github 仓库,用于构建和发布 AppImage 包,并且由于任何原因你的应用程序不在本数据库中,请添加以下说明:
要使用“AM”安装和更新我的 AppImage,只需运行以下命令:
am -e https://github.com/user/project appname keyword如果你想本地安装和更新它,请运行
am -e --user https://github.com/user/project appname keyword...或者如果你使用 AppMan
appman -e https://github.com/user/project appname keyword
将 appname 替换为应用程序的名称,该名称也将通过命令行使用... keyword 是可选的,取决于你的仓库“releases”部分中是否有一个以上的 AppImage。
当然,请将 user/project 替换为你的用户名和仓库名称。
有关 -e 或 extra 选项如何工作的更多详细信息,请参见此处。
| 返回“主索引” |
|---|
图形用户界面
由 @Shikakiben 提供了一个实验性 GUI,并且它在此其他仓库中可用:
https://github.com/Shikakiben/AM-GUI
| 浅色主题 | 深色主题 |
|---|---|
![]() | ![]() |
要安装它,请运行以下命令
am -i am-gui
⚠️ 注意:本项目正在开发中,某些功能可能无法使用或尚不完整。
| 返回“主索引” |
|---|
将 "AM" 翻译为您的本地语言
自 9.8 版本起,可以通过 translate 选项添加和使用替代语言,请使用:
am translate
或者如果使用 AppMan
appman translate
该命令接受可靠的语言代码(例如 "it" 代表意大利语,或 "sr" 代表塞尔维亚语)。如果所需语言不在数据库中,则默认使用英语(代码 "en")。
在示例中,"AM" 的意大利语、捷克语和塞尔维亚语翻译
https://github.com/user-attachments/assets/a18f48b0-f389-4e94-a576-0031354d3cd5
有关更多信息,请参阅 "translations/README.md"!
| 如何翻译“AM” | 返回“主索引” |
|---|
如何真正更新所有程序!
由“AM”管理的大多数应用程序都有一个名为 AM-updater 的脚本。它说明了在运行 am -u 命令时如何检查更新。
在大多数情况下,“版本比较”是在已安装版本(文件 version)与在线来源(官方或非官方,取决于通过终端查找下载 URL 或仅查找一个数字的难度)之间进行的。在其他情况下,如果 AppImage 支持“增量更新”(使用命令 am -i appimageupdatetool 进行安装),则可以依赖“appimageupdatetool”。然而,有一些程序会自行更新(其中最有名的无疑是 Firefox,所有官方开发构建版本)。
如何更新所有已安装的应用
选项 -u 或 update 会更新所有已安装的应用,并使 "AM"/"AppMan" 与最新版本及所有最新错误修复保持同步。
- To update only the programs, use
am -u --apps/appman -u --apps - To update just one program, use
am -u $PROGRAM/appman -u $PROGRAM - To update all the programs and "AM"/"AppMan" itself, just run the command
am -u/appman -u - To update only "AM"/"AppMan" and the modules use the option
-sinstead,am -s/appman -s
-u 选项还可以与 --debug 标志结合使用,以显示已安装应用程序更新的输出。
如何使用 Topgrade 更新所有内容
保持系统更新通常涉及调用多个包管理器。这会导致在你的 shell 中保存大量不可移植的 shell 单行命令。为了解决这个问题,Topgrade 会检测你使用的工具并运行相应的命令来更新它们。
使用命令安装 "topgrade" 包
am -i topgrade
或
am -i --user topgrade
访问 github.com/topgrade-rs/topgrade 以了解更多信息。
| 返回“主索引” |
|---|
选项
点击此处查看完整选项列表
用法:
am {OPTION}
am {OPTION} {PROGRAM}
about, -a
am -a {PROGRAM}
描述:
显示一个或多个应用的更多信息。
apikey
am apikey {Github Token} am apikey delete
Description:
使用您的个人访问令牌访问 github API。名为 "ghapikey.txt" 的文件将保存在 ~/.local/share/AM 中。使用 "del" 将其删除。
backup, -b
am -b {PROGRAM}
描述:
创建已安装程序当前版本的快照。
clean, -c
am -c
描述:
删除所有不必要的文件和文件夹。
clone, --clone
am clone am clone -i am clone -i --system am clone -i --user
Description:
将已安装的应用列表克隆到 "am-clone.source" 文件中,或在桌面(优先)、$HOME 或整个系统及可移动设备上搜索现有文件。如果您希望将列出的应用安装或添加到新配置中,以便与其他 PC 和配置共享,请添加 "-i" 或 "install"。如果您希望所有列出的应用分别以系统范围或本地方式安装,请添加 "--system" 或 "--user" 标志。
您还可以通过导出 $CLONE_FILE 变量来设置自定义文件的路径。
config, -C, --config
am -C {PROGRAM}
描述:
为一个或多个 AppImage 设置专用的 $XDG_CONFIG_HOME。
downgrade, --rollback
am --rollback {PROGRAM}
描述:
下载较旧或特定版本的应用程序。
download, -d
am -d {PROGRAM} am -d --convert {PROGRAM}
Description:
将一个或多个安装脚本下载到桌面,或将其转换为 "AppMan" 的本地安装程序。要测试这些脚本,请使用 "am -i '/path/to/script'" 命令,或进入脚本所在目录并运行 "am -i ./script" 命令,必要时可使用专用标志(参见 "-i")。
extra, -e
am -e user/project {APPNAME} am -e user/project {APPNAME} {KEYWORD}
Description:
从 github.com 安装 AppImages,位于数据库之外。这允许您像管理其他应用一样安装、更新和管理它们。其中 "user/project" 可以是 github 仓库的完整 URL,请为程序指定一个名称,以便从命令行使用。如果列出了多个 AppImages,可选地添加一个 "univoque" 关键字。
注意:由于这是一个 "install" 选项,您可以添加 "--user" 标志(在 "user/project" 之前)以本地安装应用。请参阅底部的 "--user" 以了解更多信息。
files, -f, -fi
am -f am -f --byname am -f --less
Description:
显示所有已安装程序的列表,并附带大小。默认按大小排序,使用 "--byname" 可按名称排序。使用选项 "--less" 仅显示已安装应用的数量。选项 "-fi" 仅显示已安装的应用,不显示通过 "--launcher" 选项集成的 AppImages。
help, -h, --help
am -h
描述:
打印此消息。
hide
am hide {PROGRAM}
描述:
防止已安装的应用程序在 "am" 中显示或进行管理。
home, -H, --home
am -H {PROGRAM}
描述:
为一个或多个 AppImage 设置专用的 $HOME 目录。
-HC, -CH
am -HC {PROGRAM}
描述:
为一个或多个 AppImage 设置专用的 $HOME 和 $XDG_CONFIG_HOME 目录。
icons, --icons
am --icons {PROGRAM} am --icons --all
Description:
允许已安装的应用使用系统图标主题。您可以指定要更改的应用名称,或使用 "--all" 标志一次性更改所有应用。这将移除 .desktop 文件中的图标路径,并在 ~/.local/share/icons/hicolor/scalable/apps 目录中添加所有可用图标的符号链接。"--icons" 选项可以作为 "flag" 用于 "-i" 和 "-ia" 选项中。
install, -i
am -i {PROGRAM} am -i --debug {PROGRAM} am -i --force-latest {PROGRAM} am -i --icons {PROGRAM} am -i --sandbox {PROGRAM}
Description:
从列表中安装一个或多个程序或库。使用 "--debug" 选项可以查看日志消息以调试脚本。有关 "--force-latest" 的更多详细信息,请参阅下方的专用选项。使用 "--icons" 标志允许程序使用图标主题。它还可以扩展额外的标志。"--sandbox" 标志允许您为 AppImage 包设置沙箱。
注意:由于这是一个 "install" 选项,您可以添加 "--user" 标志以本地安装应用程序。请参阅底部的 "--user" 以了解更多信息。
install-appimage, -ia, -ias
am -ia {PROGRAM} am -ia --debug {PROGRAM} am -ia --force-latest {PROGRAM} am -ia --icons {PROGRAM} am -ia --sandbox {PROGRAM} am -ias {PROGRAM}
Description:
与 "install"(见上文)相同,但仅适用于 AppImage。选项 "-ias"(即 Install AppImage & Sandox)等同于 "-ia --sandbox",用于为 AppImage 包设置沙箱。
list, -l
am -l am -l --all am -l --appimages am -l --portable
Description:
显示所有可用应用的列表。不带标志时仅显示 "AM" 数据库中的应用,添加 "--appimages" 以仅显示 AppImages,或添加 "--portable" 以显示 "AM" 数据库中的其他格式。"--all" 标志允许您查询所有受支持的第三方数据库集合。它也可以通过额外的标志进行扩展。
lock
am lock {PROGRAM}
描述:
如果应用程序包含“AM-updater”脚本,则阻止该应用程序被更新。
newrepo, neodb
am newrepo add {URL}{PATH} am newrepo select am newrepo on\off am newrepo purge am newrepo info
Description:
设置新的默认仓库,使用 "add" 将路径追加到本地目录或在线 URL,然后使用 "select" 将其设为默认,系统会提示您该仓库将替代默认仓库使用。使用 "on"/"off" 启用/禁用它。使用 "purge" 移除所有第三方仓库。使用 "info" 查看安装脚本和列表的来源。
nolibfuse
am nolibfuse {PROGRAM}
描述:
转换旧版 AppImage 并消除对 "libfuse2" 的依赖。
overwrite, -o
am -o {PROGRAM}
描述:
使用先前保存的快照覆盖应用(参见“-b”)。
query, -q, search
am -q {KEYWORD} am -q --all {KEYWORD} am -q --appimages {KEYWORD} am -q --portable {KEYWORD} am -q --pkg {PROGRAM1} {PROGRAM2}
Description:
在可用应用程序列表中搜索关键词,添加 "--appimages" 选项以仅列出 AppImages,添加 "--portable" 选项以仅列出便携式应用,或添加 "--pkg" 以同时列出多个程序。"--all" 标志允许您查询所有受支持的数据库集合。
reinstall
am reinstall am reinstall --all am reinstall --launcher
Description:
仅重新安装其安装脚本在 AM 在线数据库中已被修改的程序。使用 "--all" 标志可重新安装所有内容。
注意,此功能仅适用于 "AM" 数据库。使用 "-e" 选项安装的应用程序以及使用 "-t" 选项创建的自定义脚本不受支持。
使用 "--launcher" 标志可在 .desktop 文件被更新或用户修改时重新安装这些文件。这些文件将从各自的 AppImage 中提取并存储在 $SCRIPTDIR/AMLAUNCHER_DIR 目录中,以备不时之需。
relocate, --relocate
am relocate
描述:
将本地/AppMan 应用移除并重新安装到新位置。
remove, -r
am -r {PROGRAM}
描述:
删除一个或多个应用,需要确认。
-R
am -R {PROGRAM}
描述:
无需询问即可移除一个或多个应用。
sandbox, --sandbox
am sandbox {PROGRAM}
描述:
在沙箱中运行 AppImage。
注意,"--sandbox" 可以作为 "-i" 和 "-ia" 中的标志使用,或者可以使用选项 "-ias"(即安装 AppImage 和沙箱)进行替换。
sync, -s
am -s
描述:
将此脚本更新到托管的最新版本。
template, -t
am -t {PROGRAM}
描述:
生成自定义安装脚本。要测试脚本,请使用 "am -i '/path/to/script'" 命令,或进入脚本所在目录并运行 "am -i ./script" 命令,必要时可使用专用标志(参见 "-i")。
translate, --translate
am --translate am --translate {CODE}
Description:
下载并设置一个或多个语言包(如果可用),将 "am" 设置为英语(默认)、您的语言或其他语言。
有关更多信息,请参阅 translations/README.md
unhide
am unhide {PROGRAM}
描述:
允许隐藏的应用程序再次显示和管理(将“hide”置为 null)。
unlock
am unlock {PROGRAM}
描述:
解锁所选程序的更新(将“lock”置为 null)。
update, -u, -U
am -u am -u --apps am -u --debug am -u --apps --debug am -u {PROGRAM} am -u --debug {PROGRAM} am -u --launcher
Description:
更新所有内容。添加 "--apps" 以仅更新应用程序,或添加要更新的应用程序名称以仅写入这些应用程序。添加 "--debug" 标志以查看 AM-updater 脚本的输出。添加 "--launcher" 标志以尝试仅更新与 "--launcher" 选项集成的本地 AppImages(参见 "--launcher")。
version, -v
am -v
描述:
显示版本。
--devmode-disable
am --devmode-disable
描述:
撤销“--devmode-enable”(见下文)。
--devmode-enable
am --devmode-enable
描述:
使用开发分支(风险自负)。
--disable-notifications
am --disable-notifications
Description:
在应用更新期间禁用通知。
--disable-sandbox
am --disable-sandbox {PROGRAM}
Description:
禁用所选应用的沙箱。
--enable-notifications
am --enable-notifications
Description:
在应用更新期间启用通知(将 "--disable-notifications" 置为 null)。
--force-latest
am --force-latest {PROGRAM}
Description:
将已安装的应用程序从预发布版本降级为 "latest"。
--launcher, integrate
am --launcher /path/to/${APPIMAGE}
Description:
在终端中拖放一个或多个 AppImage,将其嵌入应用菜单,并自定义一个可从 CLI 使用的命令。
请注意,"--launcher" 可以作为 "-u" 中的一个标志,用于尝试更新集成的 AppImage(参见 "-u")。这仅在安装了 "appimageupdatetool" 且支持增量更新时有效。此标志并非万能,我强烈建议改用选项 "-ia" 和 "-e"。
--system
am --system
Description:
将 "AM" 从 "AppMan Mode" 切换回 "AM"(参见 "--user")。
--user
am --user
描述:
使 "AM" 在本地以 "AppMan Mode" 运行,适用于非特权用户。此选项仅对 "AM" 有效。
"--user" 选项也可以仅作为安装选项的 "flag" 使用。例如:
-
使用它来本地安装应用程序,选项 "
-i" 或 "install":am -i --user {PROGRAM} -
"-i" 的子选项也可以与此标志配合使用:
am -i --user --debug {PROGRAM} am -i --user --force-latest {PROGRAM} am -i --user --icons {PROGRAM} am -i --user --debug --force-latest {PROGRAM} am -i --user --debug --force-latest --icons {PROGRAM} -
对于仅 AppImages,选项 "
-ia" 或 "install-appimage":am -ia --user {PROGRAM} am -ia --user --debug {PROGRAM} am -ia --user --force-latest {PROGRAM} am -ia --user --icons {PROGRAM} am -ia --user --debug --force-latest {PROGRAM} am -ia --user --debug --force-latest --icons {PROGRAM} -
外部 AppImages 也可以这样安装,选项 "
-e" 或 "extra":am -e --user user/project {APPNAME} am -e --user user/project {APPNAME} {KEYWORD}
注意,"AM" 9 或更高版本默认也可以本地更新和管理应用程序,而无需切换到 "AppMan Mode"。
第三方标志:
所有面向第三方数据库的标志均列于 -h 或 help 消息的底部,其描述和用法示例大致如下:
am -i --{FLAG} {PROGRAM}
am -i --{FLAG} --user {PROGRAM}
am -l --{FLAG}
描述:
这是一个用于在 "-i" 和 "-l" 中从 https://site.name/source/repository 安装/列出 {FLAG} 的标志。您也可以在 "-q" 中将其用作关键字。对于安装操作,您可以使用 .{FLAG} 作为包扩展名,而无需使用该标志。
| 返回"主索引" |
|---|
指南与教程
您可以在下方访问与"AM"使用相关的文档页面,包含教程和演示视频,具体取决于您感兴趣的主题:
- 安装应用程序
- 仅安装 AppImages
- 安装未在此数据库中列出但可在其他 github 仓库中获取的 AppImages
- 列出已安装的应用程序
- 列出并查询数据库中所有可用的应用程序
- 更新所有
- 使用快照备份和恢复已安装的应用程序
- 移除一个或多个应用程序
- 克隆从其他 AM 和 AppMan 配置中安装的一组程序
- 更改已安装程序的目标路径
- 将需要 libfuse2 的 Type2 AppImages 转换为新一代 AppImages
- 通过拖放将本地 AppImages 集成到菜单中
- 沙盒化一个 AppImage
- 如何手动更新或移除应用程序
- 将已安装的应用程序降级到之前的版本
- 如何使用同一应用程序的多个版本
- 创建并测试您自己的安装脚本
- 安装脚本的工作原理
- 应用程序的第三方数据库 (NeoDB)
- BSD、freeBSD 及衍生系统:配置与故障排除
| 返回"主索引" |
|---|
Linux 发行版维护者指南
术语表:
- 系统
am(/usr/bin/am) - 本地系统
am(/usr/local/bin/am符号链接至/opt/am/APP-MANAGER) - 本地用户
appman($HOME/.local/bin/appman) - APPMANCONFIG=
$XDG_CONFIG_HOME/appman-config
您可以使用以下配置为 Debian、Fedora、Arch Linux、Gentoo 以及更多 GNU/Linux 发行版打包 "AM":
/usr/bin/am/usr/lib/am/modules/
其中 "/usr/bin/am" 是脚本 "APP-MANAGER","/usr/lib/am/modules/" 是包含所有内容的目录 "modules"。
当使用 --user 标志进行安装时,应用程序将继续安装在 /opt/ 或 $HOME 位置,具体取决于 $APPMANCONFIG 文件的配置。
与本地安装的 am 或 appman 相比,CLI 和模块的更新过程有所不同。
系统 am 在此场景下有意忽略 CLI 和模块的更新,并将该职责交给正在使用的发行版包管理器(APT、DNF、PacMan/YaY...)
在此模式下,--devmode 选项完全禁用,因为它仅旨在在运行时将本地安装的 am 或 appman 更新到 dev 分支。
作为打包者或发行版维护者,您可以选择将 am-dev 或 am-git 与 am 分开打包,以用于此用途。
在此模式下,$HOME 中的 shell 补全生成也被禁用,因为它们可以轻松打包到相应的系统目录中。
可以这样操作:
Bash
位于 /usr/share/bash-completion/completions/am:
complete -W "$(cat "${XDG_DATA_HOME:-$HOME/.local/share}/AM/list" 2>/dev/null)" am
Zsh
Zsh 补全目前依赖于 bash 的补全,可以插入到 zshrc:
autoload bashcompinit
bashcompinit
source "/usr/share/bash-completion/completions/am"
Fish
位于 /usr/share/fish/vendor_completions.d/am:
set data_home "$XDG_DATA_HOME"
if test -z "$data_home"
set data_home "$HOME/.local/share"
end
complete -c am -f -a "(cat "$data_home/AM/list" 2>/dev/null)"
发行版示例:Gidro-OS
关于发行版如何安装 am 的示例,您可以查看 Gidro-OS,一个基于 Fedora Silverblue 的自定义镜像,由 @fiftydinar 提供:
| 返回"主索引" |
|---|
故障排除
您可以在下方访问有关常见问题和常见问题的文档页面:
- 应用程序无法运行,版本过旧且不受支持
- 无法下载或更新应用程序
- 无法挂载和运行 AppImages
- 校验和不匹配或缺少已验证状态
- 无法打开 squashfs 映像
- 间谍软件、恶意软件和危险软件
- 阻止 AppImage 提示创建其自身的启动器、桌面集成和重复的启动器
- 脚本指向"releases"而不是下载最新稳定版
- Ubuntu 混乱问题
- 错误的下载链接
| 返回"主索引" |
|---|
相关项目
附属项目
- amcheck,检查此数据库中脚本的有效性并监控 AppImages 的可用性
- am-extras,列出来自第三方数据库的应用程序
- am-gui,AM 的图形化前端,由 @Shikakiben 开发
- am-utils,AM 的静态二进制文件集合
- vappman,AppMan 的可视化 (curses) TUI 界面,由 @joedefen 开发
本项目使用的外部工具和分支
- aisap 和 sas,AppImages 的沙箱解决方案,参见上文中的沙箱选项
- appimagetool,从旧版 AppImages 中移除 libfuse2(选项
nolibfuse)并即时创建 AppImages
积极为本项目做出贡献的组织及其关联机构
- Package Forge,改进 Linux 系统的包管理与安全性
- Portable Linux Apps,针对 GNU/Linux 的 AppImages 和便携应用的普查、编目与分发
我的其他项目
- AppImaGen,使用 pkg2appimage 和 appimagetool 轻松从 Ubuntu PPA 或 Debian 创建 AppImages
- ArchImage,使用 Arch Linux 软件包为所有发行版创建 AppImages。由 JuNest 提供支持
- Firefox for Linux scripts,轻松安装 Firefox for Linux 的官方版本
- My AppImage packages 由我管理并在此数据库中可用的完整软件包列表
- portable2appimage,将独立的、自包含的便携式应用程序转换为 AppImage 软件包
- Snap2AppImage,尝试将 Snap 软件包转换为 AppImages
你可以在 ko-fi.com 和 PayPal.me 上支持我和我的工作。谢谢!
© 2020-present Ivan Alessandro Sala aka 'Ivan-HC' - 我在这里只是为了好玩!
| ko-fi.com | PayPal.me | 安装 "AM"/"AppMan" | "主索引" |
|---|












