Есть ли способ узнать, какие команды были установлены пакетом?
Я установил JetUML через файл .deb и команда apt install
. Похоже, установка прошла успешно, но когда я пытаюсь запустить 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
где-то, но мне явно чего-то не хватает.
Любая помощь в понимании происходящего будет принята!
На самом деле нет никакой связи между именем пакета и программами, которые он устанавливает. В качестве примера рассмотрим пакет 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
. Список исполняемых файлов слишком велик, чтобы публиковать здесь, но вы можете его изучить.
Учтите также, что пакет не должен устанавливать программу. Это может быть тема или набор обоев.
Наверное, проще всего ответить на этом, используя пример из LibreOffice.
Изучите путь к команде .
$ который soffice
/ usr / bin / soffice
Узнайте, какие пакеты предоставляют этот путь.
$ dpkg -S / usr / bin / soffice
libreoffice-common: / usr / bin / soffice
Посмотрите, какие еще файлы предоставляются этим пакетом.
$ dpkg -L libreoffice-common
[перечислено более 3500 каталогов и файлов]
Ой, давайте сузим это немного, посмотрев строки, которые включают / bin
. Это приведет нас к приемлемому количеству кандидатов. Некоторые из них являются приложениями, некоторые - нет. И, конечно, может быть, какой-то исполняемый файл находится совсем в другом каталоге! Так что фильтруйте осторожно - не все находится в /bin.
$ dpkg -L libreoffice-common | grep / bin
/ usr / bin
/ usr / bin / loffice
/ usr / bin / lofromtemplate
/ USR / bin / unopkg
/ USR / доля / libreoffice / bin
/ USR / доля / libreoffice / bin / lo-xlate-lang
/ usr / bin / libreoffice
/ usr / bin / soffice
Apt не отслеживает, какие файлы являются приложениями, и не существует правила, согласно которому в пакете должно быть какое-либо приложение, и нет правила, согласно которому любое приложение должно соответствовать имени пакета. Не существует простого, надежного, программного способа для последнего шага идентификации приложений среди других файлов в пакете.