Encuentra qué paquetes se instalan desde un repositorio


15

Estoy tratando de encontrar qué paquetes he instalado desde un repositorio usando comandos de terminal.

Encontré una publicación en algún lugar que decía que podía usar aptitude search "?origin (<repository>) ?installed", pero no podía hacer que funcionara. Intenté buscar paquetes que vinieran de ppa: ubuntu-wine / ppa y no obtuve nada con estos:

aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/) ?installed"
aptitude search "?origin (http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ raring/main) ?installed"

Sería bueno si pudiera obtener algo que funcione con PPA.

Respuestas:


12

Entre paréntesis, debe usar solo el nombre del repositorio, no el URI u otra cosa. Por ejemplo en tu caso:

aptitude search "?origin (ubuntu-wine) ?installed"

Ejecute apt-cache policypara ver los repositorios y los nombres (también conocidos como origen o) de esos:

$ apt-cache policy | grep wine
 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main i386 Packages
     release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=i386
 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu xenial/main amd64 Packages
     release v=16.04,o=LP-PPA-ubuntu-wine,a=xenial,n=xenial,l=Wine Team PPA,c=main,b=amd64

Dado que la cadena de búsqueda es un patrón de expresiones regulares que coincide en cualquier parte de la cadena, puede usar una subcadena conveniente como ubuntu-wine, o incluso simplemente wine.

Consulte también: ¿Cómo puedo obtener una lista de todos los repositorios y PPA de la línea de comandos en un script de instalación?


1
Gracias, eso hizo que el comando funcionara y me dio lo que estaba buscando.
Enkouyami

Esto no enumeró los paquetes para mí: aptitude search "?origin (multiverse) ?installed"¿no debería? ("multiverse" está habilitado)
Volker Siegel

@VolkerSiegel no, pero use en su aptitude search "?section (multiverse) ?installed"lugar.
jarno

5

Aquí hay un script Bash que escribí para mostrar paquetes instalados desde diferentes orígenes, excluyendo Ubuntu. Utiliza el dpkg -lformato de salida común . Funciona más rápido que las aptitudesoluciones.

#!/bin/bash

# Print packages installed from different origins.
# Exclude standard Ubuntu repositories.

grep -H '^Origin:' /var/lib/apt/lists/*Release | grep -v ' Ubuntu$' | sort -u \
| while read -r line; do
    origin=${line#* }    
    echo $origin:

    list=${line%%:*}
    sed -rn 's/^Package: (.*)$/\1/p' ${list%_*Release}*Packages | sort -u \
    | xargs dpkg -l 2>/dev/null | grep '^.i '
    echo
 done

Tenga en cuenta que también puede haber paquetes instalados que no tengan dicho origen disponible, consulte esto para encontrarlos.


1

Desde la línea de comando Si te gusta hacer significa

awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*PPA-FIRST-PART*PPA-SECOND-PART*Packages

por ejemplo: todos hay paquetes de noobslab

 jai@frank-Jai:~$ awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*noobslab*Packages

python-logilab-common
synapse
ubuntuone-client
python-ubuntuone-storageprotocol
ubuntuone-client-gnome
python-ubuntuone-client
lives
libweed0
libweed-dev
lives-data
converseen
minitube
libsyncdaemon-1.0-1
libsyncdaemon-1.0-dev
ubuntu-sso-client
python-ubuntuone-devtools
ubuntuone-dev-tools
ubuntuone-control-panel
python-ubuntuone-control-panel
synapse-dbg
gir1.2-syncdaemon-1.0
libweed-dbg
lives-dbg
umplayer
umplayer-translations
libgranite-dev
deepin-software-center
ubuntuone-control-panel-qt
python-dirspec
rhythmbox-ubuntuone
python-ubuntu-sso-client
ubuntu-sso-client-qt
python-ubuntu-sso-client.tests
granite-demo
ubuntuone-client-proxy
python-oauthlib
slidewall
python3-dirspec
python3-oauthlib
ubuntuone-client-data
libgranite1
libgranite1-dbg
gir1.2-granite-1.0
libgranite-common
curlew
fbmessenger
open-as-administrator
indicator-synapse
indicator-synapse-dbg
wallpaper-manager
awoken-icon-theme
malys-uniblack
malys-uniblue
malys-ex
acyl-icons
nitrux-icons
piratunbu-icons
azenis-green-icons
nouvegnome-color
nouvegnome-gray
hi-lights-icons
matrilineare
zoncolor-icons
royal-linux-icons
elementary-icons
myhumanity
myelementary
glass-icons
osx-nostalgie
sky-blue-cinnamon
sky-blue-gnome
sky-blue-unity
wine-blue-remix
lubuntubox
windows7-icons
appleart-icons
magical-lights-icons
colored-plastic-icons
numix-utouch-icon-theme
ubudao-style
artnet-icons
high-delight-icons
snow-sabre-icons
trevilla-icons
aery-icons
ambiance-blue
zukitwo
gnomishbeige-theme
salience-theme
zukiwi
gnomishgray
delorean-dark
smoothly-theme
ambiance-ds-blue
ambiance-lime
gnomishdark
zukitwo-cupertino-gs
mediterranean-theme
elementaryish
borderline
boje
wow-2
zoncolor-themes
omg-suite
simplex
leopard-steel
dorian-theme
daylight
adwaita-elements
uncomplicated
trevilla-jmhzonedark
trevilla-dark
trevilla-white
trevilla-whiteblue
trevilla-whiteorange
trevilla-white2
ambiancep-set
ambiance-crunchy
trevilla-gray
siva-series-gtk
cobibird
elegant-brit
mac-ithemes-noobslab
mac-icons-noobslab
ubuntu-touch-themes
windows8-theme
bigfootblue-cinnamon
windows8-cinnamon
eliza1-cinnamon
bigfootred-cinnamon
plus1-theme
futura
blo-theme
darkair-theme
plane-gtk3
deepin-gtk-theme
nokto-theme
numix-theme
neptune-theme
trevilla-themes
jai@frank-Jai:~$ 

El crédito va aquí


Recibí este error: bash: awk: No
existe

@Enkouyami cuál es el ls de / var / lib / apt / lists /
rɑːdʒɑ

Aquí hay un enlace a lo que obtuve pastebin.com/AmiH9E9n
Enkouyami

@Enkouyami, perdón, me refiero al comando en el que ingresaste
rɑːdʒɑ

1
@Enkouyami Ok, esto no se trata de comando, colocación. hacer como awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*haguichi*webupd8team*Packages
rʒɑdʒɑ

1

Entonces puede usar el administrador Y-PPA. Abra su terminal y escriba:

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Luego abra el tablero de Unity y busque con Y -PPA y luego abra el ícono.

ingrese la descripción de la imagen aquí

Haga clic en administrar PPA como se muestra en la imagen y luego seleccione un PPA y le dará los detalles del PPA y sus paquetes.


¿Podría darnos algunas instrucciones para usar el administrador Y-PPA?
Seth

@Seth mi amigo. hecho.
rʒɑdʒɑ

Estaba buscando una solución de línea de comando.
Enkouyami

Esta solución no es la línea de comandos ni responde la pregunta principal: ¿cómo enumerar los paquetes instalados desde un repositorio dado? Solo muestra TODOS los paquetes disponibles de un PPA.
Viacheslav Rodionov

1

El origen no es la URL del repositorio. Para encontrar el origen del repositorio, busque el archivo que /var/lib/apt/lists/termine con Release.

Por ejemplo

grep "Origin" /var/lib/apt/lists/linux.dropbox.com_debian_dists_wheezy_Release

Mostrará:

Origin: Dropbox.com

Entonces aptitude search "?origin(dropbox.com) ?installed"me mostrará el paquete instalado desde el repositorio de Dropbox.


Esto no es lo que estaba buscando.
Enkouyami

Es posible que necesite escapar algunos caracteres en el nombre de origen, si son especiales en expresión regular.
jarno

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.