web-dev-qa-db-fra.com

Comment vérifier la liste de dépendances d'un paquet deb

Comment puis-je vérifier la liste de dépendance pour un paquet deb. J'utilise Ubuntu 11.10 et j'ai sauvegardé tous les paquets deb de var/cache/apt/archives. Je souhaite formater mon ordinateur et réinstaller uniquement les applications sélectionnées. Aussi, comment puis-je obtenir la liste des packages installés et des dépendances.

87
Vikramjeet

Outre la méthode dpkg, vous pouvez vérifier les dépendances des packages dans le référentiel:

apt-cache depends package-name

EDIT Mis à jour avec la recommandation de @ Tino. Le commentaire de @ Tigran ne s'applique plus.

64
Oxwivi

Cela vous montrera toutes les informations sur le paquet:

dpkg -I package.deb
98
htorque

apt-cache depends [Package-Name] fonctionnera également. Bien que si vous sourcez le package .deb en dehors de votre liste de sources, des éléments tels que apt-cache showpkg [Package-Name] && apt-cache depends [Package-Name] pourraient afficher des informations obsolètes ou ne pas être synchronisés avec le package réellement installé. Par conséquent, dpkg -I [Package-Name] fonctionnerait mieux dans ce cas.

2
Mziyabo Singwango

Pour 14.04 et plus tard:

dpkg n'a plus le -I et vous devez utiliser dpkg-deb pour afficher les informations sur le paquet, y compris les dépendances:

dpkg-deb -I package.deb
1
Rup Narayan

Pour une version de package spécifique:

apt-cache show <package_name>=<version>

Pour trouver les versions disponibles: Comment puis-je vérifier la version disponible d'un paquet dans les référentiels?

0
MisterZ

Voici un peu de post-traitement bâclé, et probablement pas très englobant, que vous pouvez appliquer à la sortie dpkg -I pour obtenir les éléments de dépendance sous forme de liste:

Condensé pour ordinateurs

# 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(',')])"
#

Développé pour les humains:

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
ThorSummoner