如何找到给定命令的安装方法?

如何找到给定命令的安装方法?

我通常使用以下方法安装软件包:

  • 来自 Ubuntu 存储库:sudo apt install commandName
  • 从 PPA:我必须添加 PPA 然后运行:sudo apt install commandName
  • 直接从 deb 文件获取(例如从 github 下载,例如 pandoc):sudo apt install /path/to/packageName
  • 使用 Snap。
  • 使用 AppImages
  • 使用 flatpak

有时,我需要那些信息,即我使用了哪种方法来安装给定的命令/包。

Ubuntu 中是否有一个命令,给定一个命令名称,它会返回该信息?

答案1

Ubuntu 中是否有一个命令,给定一个命令名称,它会返回该信息?

没有。你需要做一些调查。首先,该type命令会透露有关命令性质的信息:

type <command>

此命令将指示它是否是 shell 内置文件、别名,以及是否是可执行文件,是否已散列,即可快速检索的索引(这表示您在会话中至少运行过一次该命令),或者二进制文件位于何处。

可执行文件的安装位置已经暗示了软件包的安装方式。该命令which显示了其位置:

which <command>
  • 使用常规 APT 系统安装的软件包的可执行文件(即来自 Ubuntu 软件存储库、您添加的 PPA 或下载的.deb安装文件)通常会安装在/usr/bin或中/bin。使用命令dpkg -S filename-search-pattern找出哪个软件包安装了该文件 (来源)。
  • Snap 安装的可执行文件显示在添加到的专用目录中PATH,即/snap/bin。通过在输出中找到它来确认这是一个 snap 包snap list
  • Flatpak 不会在 PATH 中公开任何可执行文件。但是,您可以从 的输出中判断软件包是否以这种方式安装flatpak list --app
  • 可执行 AppImage 可以放在任何地方。因此没有通用方法来识别它们的来源。不过,通常情况下,它们不会被重命名,因此可以通过它们的扩展名轻松识别.AppImage

如果您的软件包是作为 安装的.deb,您可以进一步区分以下输出:

apt policy <package>

如果软件包是从软件源安装的,则输出中的 URL 将直接提示软件包的来源。如果没有 URL,则表示软件包是从本地下载的安装的.deb

相关内容