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

63

Как проверить список зависимостей для пакета deb. Я запускаю Ubuntu 11.10, и я скопировал все пакеты deb из var/cache/apt/archives . Я хочу отформатировать мой компьютер и повторно установить выбранные приложения. Также как я могу получить список установленных пакетов и зависимостей.

    
задан Vikramjeet 19.11.2011 в 08:55
источник

4 ответа

46

В дополнение к методу dpkg вы можете проверить зависимости пакетов в репозитории:

apt-cache depends package-name

EDIT Обновлено с рекомендацией @ Tino. @ Комментарий Тиграна больше не применяется.

    
ответ дан Oxwivi 19.11.2011 в 09:16
источник
76

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

dpkg -I package.deb
    
ответ дан htorque 19.11.2011 в 09:03
1

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

    
ответ дан Mziyabo Singwango 26.02.2017 в 16:58
0

Вот некоторая неаккуратная и, вероятно, не очень всеобъемлющая постобработка, которую вы можете сделать для вывода 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(',')
    ])
"
    
ответ дан ThorSummoner 11.05.2015 в 20:43