web-dev-qa-db-fra.com

Commandes apt utiles (dpkg)

Veuillez publier vos commandes apt moins connues mais utiles, impliquant apt- *, dpkg ou aptitude.

9
Gödel

Certaines commandes que j'utilise souvent:

pour voir les dépendances et les dépendances inversées:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Pour supprimer un package, tous les packages à suppression automatique et tous les fichiers de configuration associés:

Sudo apt-get --purge --auto-remove purge $package

Pour voir les options de configuration apt actuelles:

apt-config dump | less

Pour modifier une option sur la ligne de commande

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ Sudo apt-get -o APT::Install-Recommends="0" install $package

C’était juste un exemple de spécification des options APT via la ligne de commande. Pour éviter d’installer les packages recommandés, vous pouvez utiliser:

Sudo apt-get --no-install-recommends $package

Pour voir tous les paquets locaux/obsolètes:

aptitude search ~o

Pour voir les paquets supprimés avec une configuration résiduelle:

aptitude search ~c

et de les enlever

Sudo aptitude purge ~c

Pour obtenir une liste de tous les packages installés (dpkg -l peut parfois donner des colonnes tronquées)

dpkg --get-selections | awk '{ print $1 }'

ou

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Pour démonter, modifier puis remonter un paquet

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
7
enzotib

Deux que j'utilise beaucoup sont: -

apt-get autoremove <packagename>

Ce qui supprimera le package et toutes les dépendances inutilisées, ce qui est utile si vous essayez une application, puis décidez que vous n'en avez pas besoin et que vous souhaitez également supprimer le fichier croup.

dpkg -S /path/to/file

Ce qui me dit avec quel paquet un fichier a été installé.

Enfin, un de plus ..

dpkg -l <packagename> | grep ^ii

Répertorie les paquets mais uniquement ceux qui ont le statut ii, ce qui signifie qu'ils sont installés, ainsi ils ne montreront pas les éléments que j'ai supprimés.

Si vous souhaitez obtenir le nom du package pour un fichier non installé (dpkg -S, mais pour les packages non installés), installez apt-file et exécutez:

apt-file search /path/to/file
4
popey

Afficher le journal des modifications d'un package

$ aptitude changelog <pkgname>

Exemple:

$ aptitude changelog Sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.Sudo.ws/repos/Sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
3
Gödel

Installez apt-file, puis exécutez Sudo apt-file update. Vous pouvez maintenant rechercher des fichiers dans des packages que vous n'avez même pas installés.

Également pratique si vous avez besoin de connaître les paquets dans d’autres versions d’Ubuntu, utilisez rmadison, qui se trouve dans le paquet devscripts. Fournissez-lui un nom de paquet comme argument et il vous indiquera quelles versions de ce paquet existent dans chaque version actuelle d'Ubuntu et dans quelle section du référentiel se trouve le paquet.

Exemple:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
3
Benjamin Rubin

Pour obtenir des commandes de liste commence par 'apt-' vous procédez comme suit. ouvrez un terminal et tapez 'apt-' et appuyez deux fois sur la touche TAB. Toutes les commandes commençant par 'apt-' seront listées.

Exemple de sortie:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Pour obtenir des informations détaillées, vous pouvez consulter la page de manuel de cette commande spécifique.

par exemple: man apt-get

1
aneeshep

J'aime penser à trois types de forfaits différents:

  • Packages système (packages essentiels ou à priorité standard ou supérieure)
  • Packages utilisateur (packages installés manuellement, de priorité optionnelle ou supplémentaire)
  • Dépendances et recommandations (paquets installés automatiquement/tout ce qui n'est pas un système ou un paquet utilisateur)

Pour afficher tous les "packages système", vous pouvez utiliser

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

J'aime les avoir tous installés et marqués comme installés manuellement.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Pour afficher tous les "packages utilisateur", utilisez

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

Dans cette liste, il ne devrait y avoir que des paquets que vous savez que vous voulez. Tous les autres paquets ne sont probablement que des dépendances ou des recommandations d'autres paquets, vous pouvez les marquer comme installés automatiquement

aptitude markauto libsomething

Jetez un oeil à Référence de terme de recherche d'aptitude et
Qu'est-ce qu'un paquetage Essentiel, Requis, Important, Standard, En option ou Extra? pour obtenir des informations générales.

1
Dario Seidl
  • Mettez à niveau les packages qui seraient conservés car ils supprimeraient d'autres packages ou s'il s'agissait d'une mise à niveau du noyau:

    Sudo apt-get dist-upgrade
    
  • Purger un paquet et sa config.

    Sudo apt-get purge package
    
  • Affiche les détails d'un paquet, tels qu'ils sont connus dans la base de données de paquets, y compris la section, la version, les dépendances, le responsable et la description.

    apt-cache show package
    
  • Lister les fichiers dans un paquet installé

    dpkg -L pkg
    
  • Mettre à jour tous les paquets

    Sudo apt-get upgrade
    
0
PinoSan