有没有什么方法可以查看包中安装了哪些命令?
我通过 .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 中的示例来回答这个问题可能是最简单的。
了解小路执行命令。
$ which soffice /usr/bin/soffice
了解哪些包裹提供该路径。
$ dpkg -S /usr/bin/soffice libreoffice-common: /usr/bin/soffice
看看还有什么文件由该包提供。
$ 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 不会跟踪哪些文件是应用程序,也没有规定软件包中必须包含任何应用程序,也没有规定任何应用程序必须与软件包名称匹配。最后一步,即从软件包中的其他文件中识别应用程序,没有简单、确定、编程的方法。