Как узнать о пакете как его основном пакете или зависимости от другого пакета?

Я хотел бы знать об информации о пакете, как я уже упоминал в моем вопросе.

Например, в моей системе установлен пакет. Поэтому я хочу знать, является ли это основной пакет или зависимость от какого-либо другого пакета.

Спасибо.

4 ответа

Используйте apt-rdepends

После установки

sudo apt-get install apt-rdepends

Вы можете использовать его для отображения всех пакетов, которые зависят от интересующего вас пакета.

Например, если вы хотите знать все пакеты, которые зависят от xorg, и их состояние, просто выполните

apt-rdepends -r xorg -p

и он вернет следующее

tmashos@tmashos-wks:~$ apt-rdepends -r xorg -p
Reading package lists... Done
Building dependency tree       
Reading state information... Done
xorg
  Reverse Depends: kubuntu-active (1.7) [NotInstalled]
  Reverse Depends: kubuntu-desktop (1.254) [NotInstalled]
  Reverse Depends: ltsp-client (5.3.7-0ubuntu2) [NotInstalled]
  Reverse Depends: lubuntu-core (0.38) [NotInstalled]
  Reverse Depends: mythbuntu-desktop (0.77) [NotInstalled]
  Reverse Depends: ubuntu-desktop (1.267) [Installed]
  Reverse Depends: ubuntu-sugar-remix (0.5) [NotInstalled]
  Reverse Depends: ubuntustudio-desktop (0.100) [NotInstalled]
  Reverse Depends: xubuntu-desktop (2.152) [NotInstalled]
kubuntu-active
kubuntu-desktop
  Reverse Depends: edubuntu-desktop-kde (12.02.1) [NotInstalled]
  Reverse Depends: kubuntu-full (1.254) [NotInstalled]
  Reverse Depends: kubuntu-netbook (1.254) [NotInstalled]
edubuntu-desktop-kde
kubuntu-full
kubuntu-netbook
ltsp-client
lubuntu-core
  Reverse Depends: lubuntu-desktop (0.38) [NotInstalled]
lubuntu-desktop
mythbuntu-desktop
ubuntu-desktop
  Reverse Depends: edubuntu-desktop (12.02.1) [NotInstalled]
edubuntu-desktop
ubuntu-sugar-remix
ubuntustudio-desktop
xubuntu-desktop
tmashos@tmashos-wks:~$ 

Вы можете видеть, что Xorg установлен, потому что у меня есть ubuntu-desktop установлен. Это также показывает, что зависит от ubuntu-desktop (edubuntu-desktop). Так как у меня нет edubuntu-desktop установлен, вы можете увидеть, что ubuntu-desktop это верхний уровень.

Мик описал, как можно найти зависимости пакета (те пакеты, от которых он зависит).

Я полагаю, что GrSr пытается выяснить, имеет ли какой-либо данный пакет какие-либо обратные зависимости, то есть зависят ли какие-либо пакеты от него.

apt-cache rdepends

Ответ на аналогичный вопрос предполагает использование apt-cache rdepends, Например:

mac9416@lee:~$ apt-cache rdepends ffmpeg
ffmpeg
Reverse Depends:
  libavcodec-extra-52
  youtube-dl
  libavcodec52
  imagemagick
  ffmpeg-dbg
  videotrans
  tovid
  recorditnow
  mytharchive
  libavcodec-extra-52
  kmediafactory
  iriverter
  idjc
  dvdwizard
  dvdrip
  dvd95
  dvd-slideshow
  zoomer
  zoneminder
  xwax
  winff
  videoporama
  ubuntustudio-video
  stopmotion
  soundkonverter
  rtmpdump
  python-scitools
  pacpl
  mythexport
  motion
  luciole
  lives
  libsynfig0
  libavbin0
  kmplayer
  kino
  kdenlive
  jsymphonic
  imagination
  gvb
  get-iplayer
  gallery2
  clive
  bitpim
  libavcodec52
  imagemagick
  ffmpeg-dbg

Еще более драматичным примером будет apt-cache rdepends python, Много пакетов зависит от Python.

К несчастью, apt-cache rdepends перечисляет все обратные зависимости независимо от того, установлены ли они.

apt-get удалить

Вероятно, самый простой способ получить информацию, которую вы ищете, это попытаться удалить данный пакет. Если пакет зависит от других установленных пакетов, они будут перечислены для удаления.

Например, если я попробую sudo apt-get remove apt:

The following packages will be REMOVED:
  apport apport-gtk apt-transport-https apt-xapian-index aptdaemon aptitude apturl command-not-found computer-janitor computer-janitor-gtk gdebi gdebi-core gnome-codec-install jockey-common jockey-gtk
  language-selector language-selector-common libept1 network-manager network-manager-gnome python-apport python-aptdaemon python-aptdaemon-gtk python-debian software-properties-gtk synaptic tasksel
  tasksel-data ubuntu-minimal ubuntu-standard ubuntustudio-desktop update-manager update-manager-core update-notifier update-notifier-common

Очевидно, много пакетов зависит от APT. С другой стороны, если я попытаюсь sudo apt-get remove youtube-dl:

The following packages will be REMOVED:
  youtube-dl

Никакие установленные пакеты не зависят от youtube-dl. Это "основной пакет", а не зависимость.

Слово предостережения

Я настоятельно рекомендую вам добавить -s или же --simulate аргумент к любому apt-get remove Команды, используемые для этой цели, если вы действительно не хотите удалить пакет! Это гарантирует, что вы случайно не дадите разрешение удалить то, что хотели сохранить. Например:

sudo apt-get remove apt -s
sudo apt-get remove youtube-dl -s

Одним из способов является использование apt-cache, который вы можете использовать для запроса многих пакетов или поиска их. Важно отметить, что с apt-cache он вернет данные о запросе пакета независимо от того, установлен он или нет.

С, например, apt-cache show skype Вы можете просмотреть всю информацию о пакете; просмотреть сводную информацию об использовании пакета apt-cache showpkg skype, который покажет зависимости, а также обратные зависимости, которые являются пакетами, которые зависят от Skype. Однако, чтобы просмотреть только те пакеты, от которых зависит, например, использование Skype apt-cache depends skype:

apt-cache depends skype
    skype
      Depends: libasound2
      Depends: libc6
      Depends: libgcc1
      Depends: libqt4-dbus
      Depends: libqt4-network
      Depends: libqtcore4
      Depends: libqtgui4
      Depends: libstdc++6
      Depends: libx11-6
      Depends: libxext6
      Depends: libxss1
      Depends: libxv1

Есть много других полезных функций apt-cache задокументировано в man apt-cache такие как возможность показывать доступные версии и текущий приоритет версий; чтобы увидеть эту информацию введите apt-cache policy skype,

Как использовать dpkg чтобы узнать, какие файлы из каких пакетов смотрите в этой статье.

Если вы предпочитаете, вы также можете зайти в менеджер пакетов synapic.
Если он не установлен, запустите

sudo apt-get install synaptic

Просто найдите свой пакет, щелкните по нему правой кнопкой мыши и выберите свойства.
Оттуда вы можете найти его зависимости и зависимости, между прочим...

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