Как мне найти команду, связанную с установленным файлом .deb?

Есть ли способ узнать, какие команды были установлены пакетом?

Я установил 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 где-то, но мне явно чего-то не хватает.

Любая помощь в понимании происходящего будет принята!

0
задан 14 October 2020 в 18:58

2 ответа

На самом деле нет никакой связи между именем пакета и программами, которые он устанавливает. В качестве примера рассмотрим пакет 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 . Список исполняемых файлов слишком велик, чтобы публиковать здесь, но вы можете его изучить.

Учтите также, что пакет не должен устанавливать программу. Это может быть тема или набор обоев.

1
ответ дан 4 January 2021 в 08:20

Наверное, проще всего ответить на этом, используя пример из LibreOffice.

  1. Изучите путь к команде .

     $ который soffice
     / usr / bin / soffice
     
  2. Узнайте, какие пакеты предоставляют этот путь.

     $ dpkg -S / usr / bin / soffice
    libreoffice-common: / usr / bin / soffice
     
  3. Посмотрите, какие еще файлы предоставляются этим пакетом.

     $ 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 не отслеживает, какие файлы являются приложениями, и не существует правила, согласно которому в пакете должно быть какое-либо приложение, и нет правила, согласно которому любое приложение должно соответствовать имени пакета. Не существует простого, надежного, программного способа для последнего шага идентификации приложений среди других файлов в пакете.

0
ответ дан 4 January 2021 в 08:20

Другие вопросы по тегам:

Похожие вопросы: