如何找到与已安装的 .deb 文件相关的命令?

如何找到与已安装的 .deb 文件相关的命令?

有没有什么方法可以查看包中安装了哪些命令?

我通过 .deb 文件和apt install命令安装了 JetUML。它似乎安装正常,但当我尝试jetuml以命令形式运行时,我得到了jetuml: command not found。那么我如何才能找到我刚刚安装的命令?

当我跑步时,apt list jetuml我得到了jetuml/now 3-1 amd64 [installed,local],也许更重要的是,当我跑步时,apt-cache show jetuml我得到了:

Status: install ok installed
Priority: optional
Section: misc
Installed-Size: 87269
Maintainer: Unknown <Unknown>
Architecture: amd64
Version: 3-1
Provides: jetuml
Depends: libasound2, libatk-bridge2.0-0, libatk1.0-0, libatspi2.0-0, libblkid1, libbsd0, libc6, libcairo-gobject2, libcairo2, libdatrie1, libdbus-1-3, libepoxy0, libexpat1, libffi6, libfontconfig1, libfreetype6, libgcrypt20, libgdk-pixbuf2.0-0, libgl1, libglib2.0-0, libglvnd0, libglx0, libgpg-error0, libgraphite2-3, libgtk-3-0, libgtk2.0-0, libharfbuzz0b, liblz4-1, liblzma5, libmount1, libpango-1.0-0, libpangocairo-1.0-0, libpangoft2-1.0-0, libpcre3, libpixman-1-0, libpng16-16, libselinux1, libsystemd0, libthai0, libuuid1, libwayland-client0, libwayland-cursor0, libwayland-egl1, libx11-6, libxau6, libxcb-render0, libxcb-shm0, libxcb1, libxcomposite1, libxcursor1, libxdamage1, libxdmcp6, libxext6, libxfixes3, libxi6, libxinerama1, libxkbcommon0, libxrandr2, libxrender1, libxtst6, zlib1g
Description: JetUML
Description-md5: 42461daef042532d9ee79b62511a038a

我以为该Provides: jetuml行意味着jetuml在某处添加了一个命令,但我显然遗漏了一些东西。

如能帮助理解正在发生的事情,我们将不胜感激!

答案1

软件包名称和它所安装的程序之间实际上没有任何联系。例如,考虑软件包procps。它提供了许多工具:

~$ dpkg -L procps | grep /usr/bin
/usr/bin
/usr/bin/free
/usr/bin/pgrep
/usr/bin/pmap
/usr/bin/pwdx
/usr/bin/skill
/usr/bin/slabtop
/usr/bin/tload
/usr/bin/top
/usr/bin/uptime
/usr/bin/vmstat
/usr/bin/w.procps
/usr/bin/watch
/usr/bin/pkill
/usr/bin/snice

...并且其中没有一个被称为procps

一个更好的例子是coreutils包。它的可执行文件列表太长,无法在此处发布,但欢迎您探索。

还要考虑的是,包不一定非要安装程序。它可以是一个主题或一组壁纸。

答案2

使用 LibreOffice 中的示例来回答这个问题可能是最简单的。

  1. 了解小路执行命令。

    $ which soffice
    /usr/bin/soffice
    
  2. 了解哪些包裹提供该路径。

    $ dpkg -S /usr/bin/soffice
    libreoffice-common: /usr/bin/soffice
    
  3. 看看还有什么文件由该包提供。

    $ dpkg -L libreoffice-common
    [over 3500 directories and files listed]
    

    哎呀,让我们通过查找包含 的字符串来缩小范围/bin。这样我们就能得到可管理的候选数量。有些是应用程序,有些不是。当然,也许一些可执行文件完全在不同的目录中!所以要小心过滤——不是所有东西都在 /bin 中。

    $ dpkg -L libreoffice-common | grep /bin
    /usr/bin
    /usr/bin/loffice
    /usr/bin/lofromtemplate
    /usr/bin/unopkg
    /usr/share/libreoffice/bin
    /usr/share/libreoffice/bin/lo-xlate-lang
    /usr/bin/libreoffice
    /usr/bin/soffice
    

    Apt 不会跟踪哪些文件是应用程序,也没有规定软件包中必须包含任何应用程序,也没有规定任何应用程序必须与软件包名称匹配。最后一步,即从软件包中的其他文件中识别应用程序,没有简单、确定、编程的方法。

相关内容