Как проверить список зависимостей для пакета deb

У вас установлена ​​вспышка? На днях я видел в twitter, что flash используется для некоторых частей игры, хотя твит был по отношению к ie9, это может быть правдой и для других браузеров.

1
задан 26 January 2015 в 11:12

3 ответа

Это покажет вам всю информацию о пакете:

dpkg -I package.deb
78
ответ дан 25 May 2018 в 16:42
  • 1
    Это больше не работает на Ubuntu 14.04: dpkg -I splunkforwarder-6.3.3-f44afce176d0-linux-2.6-amd64.deb new debian package, version 2.0. size 15881308 bytes: control archive=3104 bytes. 153 bytes, 5 lines control 6058 bytes, 207 lines * postinst #!/bin/bash 2912 bytes, 93 lines * preinst #!/bin/bash Package: splunkforwarder Version: 6.3.3 Maintainer: Splunk Inc. <info@splunk.com> Architecture: amd64 Description: Splunk The platform for machine data. – Craig S. Anderson 9 March 2016 в 02:08
  • 2
    @ CraigS.Anderson Запуск 14.04 здесь, и он отлично работает в моем случае. Должен быть принятый ответ ИМХО. – magic_al 20 September 2016 в 12:44
  • 3
    Не забудьте поставить /var/cache/apt/archives/ перед именем пакета и использовать вкладку завершения, чтобы найти полное имя пакета с версией, например. [F2]. – Jason R. Coombs 12 January 2017 в 20:58
  • 4
    Я не вижу никакой информации о зависимости – Nick 21 June 2017 в 20:45

apt-cache depends [Package-Name] будет работать. Хотя если вы отправляете пакет .deb из-за пределов списка источников, такие вещи, как apt-cache showpkg [Package-Name] && apt-cache depends [Package-Name], могут показывать устаревшую информацию или могут не синхронизироваться с фактическим установленным пакетом, поэтому dpkg -I [Package-Name] будет работать лучше всего в этом случае.

1
ответ дан 25 May 2018 в 16:42

Вот некоторая неаккуратная и, вероятно, не очень всеобъемлющая постобработка, которую вы можете сделать для вывода dpkg -I для получения элементов зависимостей в виде списка:

Сжатый для компьютеров

# dpkg -I package.deb | python -c "import sys, re; t=re.split(r'\n(?= ?[\w]+:)|:', sys.stdin.read()); print '\n'.join([i.strip() for i in {key.strip(): value.strip() for key, value in zip(t[::2], t[1::2])}['Depends'].split(',')])"
#

Расширение для людей:

dpkg -I package.deb | python -c "
    import sys, re;
    # Split keys and values into pairs (zipped together later)
    t=re.split(
        r'\n(?= ?[\w]+:)|:', 
        sys.stdin.read()
    ); 
    # Newline separate each dependency
    print '\n'.join([
        # Trim each dependency value
        i.strip() for i in {
            # Build assoc array from package metadata
            key.strip(): value.strip() 
            for key, value in zip(t[::2], t[1::2])
        }['Depends'].split(',')
    ])
"
0
ответ дан 25 May 2018 в 16:42
  • 1
    Это будет отражать пакеты, которые зависят от «foo.deb» и еще не установлены: dpkg -I foo.deb | для i в $ (awk -F ',' '/ Зависит: / {gsub (/: /, ","), для (i = 2; i & lt; = NF; i ++) {gsub (/. * $ /, & quot ;, & quot ;, $ (i)); printf ("% s \ n", $ (i));}} '); do dpkg -s $ i & amp; & gt; / dev / null || echo $ i; сделано | tr '\ n' '' – Gregory Burd 17 September 2015 в 17:48
  • 2
    @GregoryBurd, не стесняйтесь редактировать мой ответ / psot все, что вам нравится, я разместил его как сообщество wiki по этой причине ^ u ^ – ThorSummoner 17 September 2015 в 19:35
  • 3
    Когда я запускаю эту команду на elasticsearch, она испускает libc6\nadduser\n Installed-Size\n. То есть, похоже, это больше, чем просто линия Depends. – Jason R. Coombs 12 January 2017 в 21:01

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

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