Как определить вызываемые команды, предоставляемые установленным пакетом Debian?

Я относительно новый пользователь Linux, поэтому сегодня я столкнулся с проблемой. Я установил внешний интерфейс эмулятора ("visualboyadvance-gtk") из репозитория apt моего дистрибутива, но после того, как он закончил установку, я не смог понять, что это за команда терминала для программы. Обычно команда терминала и имя пакета довольно близки, поэтому я никогда не сталкивался с этой проблемой раньше. (В этом случае команда оказалась 'gvba'; ничего похожего на имя пакета в репозитории..)

Итак, мой вопрос: есть ли быстрый и простой способ определить команду терминала для любого пакета, который я установил? Я просмотрел информацию 'apt-cache show' для этого пакета, но в нем не было ничего, кроме самой команды терминала. Я предполагаю, что должен быть способ найти информацию такого типа с помощью APT, dpkg или чего-то еще..

3 ответа

Я обычно делаю

  dpkg -L packagename | grep -E '/s?bin/'

чтобы получить список всего "вызываемого", который предлагает этот пакет.

Правило простое: согласно политике DebianFHS) все программы, вызываемые обычными пользователями (не администраторами), должны размещать свои двоичные файлы (или ссылки на них, обычно символические) под /bin или же /usr/bin 1, и все программы, вызываемые системными администраторами, должны помещать свои двоичные файлы (или ссылки на них) в /sbin или же /usr/sbin 1

Любые локальные программы, не установленные из пакетов и, следовательно, не являющиеся частью "системы", должны размещать свои вызываемые двоичные файлы под /usr/local/bin или же /usr/local/sbin - эти места "твои", и ты гарантированно, что ни один пакет, установленный из официальных репозиториев, никогда не поместит / свяжет туда двоичный файл.

Если вы бежите

echo $PATH

в своем терминале, как обычный пользователь, вы увидите /bin а также /usr/bin а также /usr/local/bin в списке - вот где оболочка ищет не встроенные команды, которые вы просите ее запустить. У суперпользователя будет sbin "версии этих каталогов также перечислены.

И, наконец, одно небольшое замечание: вы не можете - просто взглянув на список программ, предлагаемых пакетом, - определить, какая из них является командной строкой ("вызываемой в терминале") или графическим интерфейсом пользователя (для подключения к которой требуется X-сервер), поскольку оба вида программ размещены в одной иерархии каталогов. С другой стороны, те приложения с графическим интерфейсом, которые хотят интегрироваться в среду рабочего стола (такие как GNOME, KDE, XFCE, LXDE и т. Д.), Обычно предоставляют так называемые "файлы рабочего стола" (заканчивая .desktop расширение), которые дают своей программе описательный заголовок, описание ее назначения и указывают способ вызова приложения. Эти файлы сканируются средой рабочего стола и отображаются в "меню приложения" (или иным образом используются аналогичным образом). Следовательно, если вы ищете такие программы, вы можете grep выход dpkg -L за .desktop,


1 Различие между /usr а также / Иерархии неуловимы и в настоящее время обсуждаются в сообществах, ориентированных на Linux, поэтому давайте не будем углубляться в обсуждение этого вопроса.

Проблема в том, что пакеты могут включать в себя много команд или (как в случае с библиотеками) вообще ни одной.

Вы можете увидеть содержимое пакета с dpkg -L packagename, Все, что пакет установил в /usr/bin будет запущен из командной строки, хотя не все команды дадут очень разумные результаты.

Вы также можете попробовать поискать на страницах man - man -k visualboyadvance может дать вам что-нибудь полезное.

Поиск здесь для вашего пакета.

Затем откройте список файлов.

Все под /usr/bin/ это исполняемый файл, который вы можете использовать со своего терминала.

В твоем случае только гвба.

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