¿Existe alguna forma de diferenciar entre paquetes del sistema y paquetes instalados manualmente en Linux?

¿Existe alguna forma de diferenciar entre paquetes del sistema y paquetes instalados manualmente en Linux?

Estoy intentando escribir un script donde pueda saber si el paquete está preinstalado o si lo instaló el usuario.

Y también podemos tener una manera de saber que las siguientes son las dependencias del paquete 'X'

Respuesta1

en el rpmnivel en el que realmente no puedes saberlo. Dependiendo del administrador de paquetes que utilice, es posible que haya cierta información almacenada allí.

Tenga en cuenta que esto sólo funciona si el usuario ejecutó los comandos de instalación con sudo. Si se convirtió en root, nunca sabrás quién lo hizo.

mmm

yum history

le brinda una lista de transacciones y qué usuario lanzó el comando.

dnf

dnf history

le proporciona una lista de transacciones, pero no enumera al usuario de forma predeterminada. Sin embargo puedes ejecutar:

dnf history info <ID>

y luego verás el usuario que lanzó el comando

cremallera

No hay forma de saber esto que yo sepa.

Respuesta2

Sus etiquetas no están claras, no sabemos qué administrador de paquetes utiliza. Pero como usaste la etiqueta arch-linux voy a responder por pacman.

Bueno, la primera pregunta es difícil, que yo sepa, no es realmente posible y depende en gran medida de su instalación. No existe una instalación estándar de Linux, ya que hay muchas distribuciones, entornos de escritorio, opciones de instalación diferentes,... Pero una forma sería buscar qué grupos de paquetes están instalados con su configuración y obtener los otros (que probablemente sean para ser instalado por el usuario) con el siguiente comando: comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)donde base es uno de los grupos que seguro tienes preinstalado.

A la segunda parte de la pregunta: puede obtener información sobre el uso de un paquete pacman -Si <yourpackage>y, si desea reducir el resultado a solo las dependencias, consulteeste hilo

Respuesta3

Verifique los paquetes incluidos con la distribución en cuestión al momento de la instalación en el sitio web de la distribución. Están preinstalados; todo lo demás se agregó post-insta;;/

información relacionada