En utilisant aptitude, afin de rechercher les paquets installés en dehors de la branche stable, vous pouvez utiliser:
aptitude search "?narrow(?installed,?not(?archive(stable)))"
Pour voir les versions ainsi que les noms de paquet (et au lieu de descriptions), vous pouvez utiliser la commande avec l'option format ( -F
pour faire court), comme suit.
aptitude search -F "%p %V %v" "?narrow(?installed,?not(?archive(stable)))"
Pour plus de formats, veuillez consulter la page de manuel (ici, la documentation avec les options disponibles ).
Qui fonctionne par exemple, dans Debian si vous avez installé les paquets squeeze en dehors (par runing, par exemple, apt-get install -t sid package-name
.
Vous pouvez voir d'où provient un paquet installé via apt-cache policy
, l'utilisation est la suivante:
apt-cache policy <package-name>
Par exemple, mon paquet python-numpy rend la sortie suivante:
$ LANG=C apt-cache policy python-numpy
python-numpy:
Installed: 1:1.6.2-1
Candidate: 1:1.6.2-1.2
Version table:
1:1.7.0-1 0
1 http://ftp.es.debian.org/debian/ experimental/main amd64 Packages
1:1.6.2-1.2 0
500 http://ftp.es.debian.org/debian/ sid/main amd64 Packages
*** 1:1.6.2-1 0
100 /var/lib/dpkg/status
1:1.4.1-5 0
990 http://ftp.es.debian.org/debian/ squeeze/main amd64 Packages
990 http://ftp.de.debian.org/debian/ squeeze/main amd64 Packages
Cela signifie que je suis une version derrière la branche actuelle de sid / main, donc j'ai une version old-sid installée. Je vois que je n'ai pas la version stable, car elle l'est encore 1.4.1-5
, et je suis actuellement à 1.6.2-1
.
Au moment de la soumission, ce paquet était déjà mis à jour:)
?any-version()
, parce que~narrow(pat1, pat2)
c'est pareil?any-version(pat1 pat2)
et ça supporte?any-version(pat1 pat2 pat3)
sans avoir l'air stupide.Après avoir lu la page d’information d’aptitude et une douzaine de tentatives, j’ai enfin compris:
ou équivalent) :
Il recherchera les paquets installés à partir d'archives instables de tous les référentiels. Vous devez filtrer les paquets de votre archive par défaut (tester dans l'exemple ci-dessus).
Si vous souhaitez filtrer les packages installés à partir de www.debian-multimedia.org/unstable:
Éditer: “Archive”, “origine” etc. sont déduits du
Release
fichier du référentiel. Malheureusement, tous les outils ne peuvent pas examiner toutes ces lignes et utilisent une syntaxe différente pour les utiliser. Vous pouvez trouver ces fichiers en tant que/var/lib/apt/lists/*Release
. Ou tapez simplementapt-cache policy
pour avoir un aperçu. apt-cache a changé son format de sortie: les versions ultérieures utilisent le style apt_preferences.Suite:
ouArchive:
(ancien nom!)?archive(___)
ou~A___
%t
release a=___
natty-backports
,trusty-security
,stable
Origin:
?origin(___)
ou~O___
release o=___
Canonical
,Google, Inc.
,LP-PPA-dockbar-main
,Ubuntu
la source
Examinez la balise d’origine (telle que o = Debian ) pour chacun de vos référentiels actuels:
Ensuite, recherchez les paquets provenant (ou non) d'une origine particulière:
Cela ne convient pas à un audit de sécurité car il repose sur chaque référentiel pour fournir ses propres informations sur l'origine, mais il peut s'avérer utile pour résoudre l'origine des packages présents dans plusieurs référentiels.
la source
aptitude search
habitudes ne sont pas bonnes. - Ils sélectionnent comme ceci «la liste des paquets sur lesquels une version est installée, et toute autre version existe dans Debian» ou «une version installée, et au moins une version de ce paquet disponible sur des non-Debian». - Ce que nous recherchons, c'est “la version installée est de Debian (ou non)”. Cela doit être fait avec?narrow()
ou?any-version()
.nemo-fileroller
depuislinuxmint
, mais cela existeDebian
aussi. Donc, il apparaît dans la liste, car il est installé et existe quelque part à partir de Debian.Pour être complet: sur les systèmes Ubuntu, vous pouvez également utiliser Synaptic pour cette tâche. Dans la colonne de gauche, vous pouvez filtrer les packages en fonction de leur origine.
la source
J'ai trouvé ceci:
Vous pouvez également trouver une liste de termes de recherche pris en charge par "recherche aptitude" ici .
la source
sudo
? Il me semble que cela fonctionne aussi sans l'exécuter en tant que root.Tout d’abord, recherchez le (s) fichier (s) approprié (s) pour le référentiel d’intérêt dans / var / lib / apt / lists. Cela devrait être possible de le faire par programme, mais je n’ai pas eu besoin de le faire.
En utilisant google chrome comme exemple, essayez ceci:
et je reçois la sortie:
dpkg -s renvoie 0 si le paquet est installé et différent de zéro sinon. Aux fins de référence future, la sortie de
était
la source
Les autres réponses sont en réalité incorrectes, car le paramètre to
?archive()
est une expression régulière. Donc?archive(stable)
correspond à la foisstable
etunstable
. Pour exclure simplement,stable
vous devez ancrer le motif regex:Pour exclure plusieurs référentiels:
Notez également que certains packages appartiennent à plusieurs référentiels, par exemple
xenial-security,xenial-updates
.?archive()
évalue le modèle d'expression régulière par rapport à chaque référentiel, afin de?archive("^xenial-updates$")
correspondre aux packages appartenant àxenial-updates
, même s'il appartient également à d'autres référentiels.la source