Esto es ambiguo. ¿Quiere decir: qué repositorios habilitados actualmente proporcionan un paquete con el nombre dado, o: qué repositorio se utilizó para instalar el paquete con ese nombre que está instalado actualmente? (Ambos son útiles Busco este último, no el primero..)
Reinier Mensaje
Respuestas:
112
Comandos necesarios:
dpkg -s <package>- le permite encontrar la versión que ha instalado. ( fuente )
apt-cache showpkg <package>- mostrará una lista de las versiones del paquete disponibles. Para cada versión, se proporcionará la fuente del paquete, en forma de un nombre de archivo de índice.
Si desea encontrar la fuente del paquete que está instalado actualmente, necesitará la salida de dpkg -s <package>. De lo contrario, simplemente puede mirar la salida de la versión más reciente por apt-cache showpkg <package>.
Desde el primer comando, puedo ver que Liferea versión 1.6.2-1ubuntu6 está instalada. Desde el segundo comando, puedo ver que esa versión aparece en la lista /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.
Sin demasiado esfuerzo, puedo deducir que la línea de origen contiene archive.ubuntu.com, ubuntu, lucid, y main.
Y, efectivamente, mi /etc/apt/sources.listcontiene la siguiente línea.
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
mac, gracias por tu respuesta detallada! Desafortunadamente no me ayuda con mi problema inicial de un problema de dependencia insatisfecha :-( Estoy tratando de instalar libqt4-opengl y dice: Los siguientes paquetes tienen dependencias insatisfechas: libqt4-opengl: Depende: libqtcore4 (= 4: 4.6.2-0ubuntu5.1) pero 4: 4.7.0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 se instalará Depende: libqtgui4 (= 4: 4.6.2-0ubuntu5.1) pero 4: 4.7. 0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 se instalará
dfme
Es difícil ver a partir de eso cuál es el problema. Debe abrir una nueva pregunta para poder proporcionar detalles completos. Si lo hace, deje un enlace en un comentario. :-)
¿Apto-caché {showpkg, policy} realmente muestra de dónde se instaló un paquete instalado , o simplemente dónde se instalaría en el momento de la consulta?
Croad Langshan
1
El último. Si generalmente uso trustylas fuentes de paquetes de Ubuntu , agrego temporalmente utopica mi sources.listpara instalar la versión 1.20ubuntu3 de init-system-helpersy luego elimino el repositorio nuevamente de mi sources.list, apt-cache showpkg init-system-helperssolo mentirá sobre la lista de paquetes original y apt-cache policy init-system-helperssolo indicará lo obvio.
blubberdiblub
104
Use el siguiente comando. Tiene mejor salida:
apt-cache policy <Package Name>
Para Ubuntu 16.04 y posterior, hay una forma más corta de hacerlo:
¡Esta es la respuesta correcta! Los comandos en la respuesta de mac9416 necesitan una interpretación tediosa + adivinanzas basadas en su salida. Para obtener más información acerca de apt-cache policyconsulta superuser.com/a/236605/61370
pabouk
3
apt-cache policyes bueno, pero algunas veces necesitas apt-cache showpkgcomparar sumas MD5 del paquete. Ver tambiéndebsums --changed
gavenkoa
esta policyopción es la más útil cuando se compara consources.list
infinite-etcétera
¡Esta debería ser la respuesta aceptada! @pabouk tiene razón. Esta respuesta es más relevante para la pregunta que la actualmente aceptada.
HEXcube
Al igual que @ pablo-bianchi señaló en su respuesta , apt policy <package-name>se puede usar una versión aún más simple , desde 16.04LTS en adelante. Una vez que 14.04LTS se convierte en EOL en 2018, esta respuesta puede editarse para usar el comando más nuevo.
HEXcube
9
apt en Ubuntu 16.04+
Además apt-cache policy, showpkgy showahora tenemos un subcomando más simple y fácil de recordar: apt(no confunda con clásico apt-*):
apt policy <package>
O la alternativa con más información apt show <package>, línea que comienza con "APT-Sources:" .
Descripción: este paquete proporciona herramientas de línea de comandos para buscar y administrar, así como consultar información sobre paquetes como acceso de bajo nivel a todas las funciones de la biblioteca libapt-pkg. Estos incluyen: apt-get, apt-cache, apt-cdrom, apt-config, apt-key.
Comandos básicos de apt --help
Otros subcomandos fáciles de recordar también:
apt list - lista de paquetes basados en nombres de paquetes
apt search - buscar en las descripciones de los paquetes
apt show - Mostrar detalles del paquete
apt update - actualizar la lista de paquetes disponibles
La eliminación de un paquete elimina todos los datos empaquetados, pero por lo general deja atrás los archivos de configuración de usuario pequeños (modificados), en caso de que la eliminación haya sido un accidente. Solo emitir una solicitud de instalación para el paquete eliminado accidentalmente restaurará su función como antes en ese caso. Por otro lado, puede deshacerse de estos restos llamando a purga incluso en paquetes ya eliminados. Tenga en cuenta que esto no afecta ningún dato o configuración almacenada en su directorio de inicio.
apt upgrade - Actualice el sistema instalando / actualizando paquetes
apt full-upgrade - Actualice el sistema eliminando / instalando / actualizando paquetes
apt edit-sources - editar el archivo de información de origen
apt policy xxxparece idéntico a apt-cache policy xxx, tal vez esto debería haber sido un comentario en su lugar. O al menos mencionar que apt showparece necesitar el -acambio para ver "registros adicionales" de otras fuentes
Xen2050
6
Lamentablemente, esta información no se registra durante la instalación del paquete. Puede hacer una suposición decente si el repositorio todavía está en la lista de fuentes y el repositorio todavía tiene el paquete:
grep -l PKG /var/lib/apt/lists/*
Incluso synaptic no puede decir si deshabilita el repositorio y la actualización.
Respuestas:
Comandos necesarios:
dpkg -s <package>
- le permite encontrar la versión que ha instalado. ( fuente )apt-cache showpkg <package>
- mostrará una lista de las versiones del paquete disponibles. Para cada versión, se proporcionará la fuente del paquete, en forma de un nombre de archivo de índice.Si desea encontrar la fuente del paquete que está instalado actualmente, necesitará la salida de
dpkg -s <package>
. De lo contrario, simplemente puede mirar la salida de la versión más reciente porapt-cache showpkg <package>
.Ejemplo:
Desde el primer comando, puedo ver que Liferea versión 1.6.2-1ubuntu6 está instalada. Desde el segundo comando, puedo ver que esa versión aparece en la lista
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
.Sin demasiado esfuerzo, puedo deducir que la línea de origen contiene
archive.ubuntu.com
,ubuntu
,lucid
, ymain
.Y, efectivamente, mi
/etc/apt/sources.list
contiene la siguiente línea.fuente
apt-cache policy <package name>
(a partir de: superuser.com/a/236605/37279 )trusty
las fuentes de paquetes de Ubuntu , agrego temporalmenteutopic
a misources.list
para instalar la versión 1.20ubuntu3 deinit-system-helpers
y luego elimino el repositorio nuevamente de misources.list
,apt-cache showpkg init-system-helpers
solo mentirá sobre la lista de paquetes original yapt-cache policy init-system-helpers
solo indicará lo obvio.Use el siguiente comando. Tiene mejor salida:
Para Ubuntu 16.04 y posterior, hay una forma más corta de hacerlo:
fuente
apt-cache policy
consulta superuser.com/a/236605/61370apt-cache policy
es bueno, pero algunas veces necesitasapt-cache showpkg
comparar sumas MD5 del paquete. Ver tambiéndebsums --changed
policy
opción es la más útil cuando se compara consources.list
apt policy <package-name>
se puede usar una versión aún más simple , desde 16.04LTS en adelante. Una vez que 14.04LTS se convierte en EOL en 2018, esta respuesta puede editarse para usar el comando más nuevo.apt
en Ubuntu 16.04+Además
apt-cache policy
,showpkg
yshow
ahora tenemos un subcomando más simple y fácil de recordar:apt
(no confunda con clásicoapt-*
):O la alternativa con más información
apt show <package>
, línea que comienza con "APT-Sources:" .Descripción: este paquete proporciona herramientas de línea de comandos para buscar y administrar, así como consultar información sobre paquetes como acceso de bajo nivel a todas las funciones de la biblioteca libapt-pkg. Estos incluyen:
apt-get
,apt-cache
,apt-cdrom
,apt-config
,apt-key
.Comandos básicos de
apt --help
Otros subcomandos fáciles de recordar también:
apt list
- lista de paquetes basados en nombres de paquetesapt search
- buscar en las descripciones de los paquetesapt show
- Mostrar detalles del paqueteapt update
- actualizar la lista de paquetes disponiblesapt install
- instalar paquetesapt remove
- eliminar paquetesapt purge
- eliminar paquetes y archivos de configuración :apt upgrade
- Actualice el sistema instalando / actualizando paquetesapt full-upgrade
- Actualice el sistema eliminando / instalando / actualizando paquetesapt edit-sources
- editar el archivo de información de origenfuente
apt policy xxx
parece idéntico aapt-cache policy xxx
, tal vez esto debería haber sido un comentario en su lugar. O al menos mencionar queapt show
parece necesitar el-a
cambio para ver "registros adicionales" de otras fuentesLamentablemente, esta información no se registra durante la instalación del paquete. Puede hacer una suposición decente si el repositorio todavía está en la lista de fuentes y el repositorio todavía tiene el paquete:
Incluso synaptic no puede decir si deshabilita el repositorio y la actualización.
fuente
fuente
fuente
Esto es un poco más preciso:
La versión más nueva generalmente se instalará a menos que haya configurado apt-pinning o instale explícitamente una versión en particular.
fuente