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

Ama*_*_05 5 package-management apt ppa software-installation snap

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

  • 来自 Ubuntu 存储库:sudo apt install commandName
  • 从 PPA:我必须添加 PPA 才能运行:sudo apt install commandName
  • 直接来自 deb 文件,(例如从 github 下载,例如 pandoc):sudo apt install /path/to/packageName
  • 使用快照。
  • 使用应用程序图像
  • 使用平包

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

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

van*_*ium 5

\n

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

\n
\n

不,没有。你需要做一些调查。首先,该type命令将显示有关该命令性质的信息:

\n
type <command>\n
Run Code Online (Sandbox Code Playgroud)\n

此命令将指示它是否是内置 shell、别名,如果是可执行文件,则指示它是否经过哈希处理,即为快速检索而建立索引 \xe2\x80\x93 这表明您之前在会话中至少运行过该命令一次\xe2\x80\x93,或二进制文件所在的位置。

\n

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

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

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

\n
apt policy <package>\n
Run Code Online (Sandbox Code Playgroud)\n

如果包是从软件源安装的,则输出中的 URL 将直接提示该包来自哪个源。缺少 URL 表示该软件包是从本地下载的.deb.

\n