¿Cómo prohibir la instalación de un paquete específico?


27

¿Puedo configurar Ubuntu para que nunca instale un paquete específico, incluso si es requerido por otro paquete que instalo?


No puede instalar un paquete sin sus dependencias, a menos que quiera romper su sistema.
enzotib

2
@enzotib, en primer lugar te equivocas: las dependencias de los paquetes pueden ser redundantes. hay numerosos ejemplos, o puede haber instalado un equivalente de un paquete requerido de otra manera (por ejemplo, tengo instalado openjdk-6, ya que es requerido por todas las aplicaciones de Java en los repositorios, pero en realidad nunca uso openjdk-6, yo configura todo para usar openjdk-7 u Oracle JDK 7 en su lugar). Y lo segundo, no dije que quería que se instalara el paquete dependiente, solo puede arrojar un error en este caso, solo quiero asegurarme de que un paquete en particular nunca se instale de todos modos.
Ivan

Respuestas:


28

Al igual que en Debian, también podemos usar apt-pinning para la versión y el control de instalación en Ubuntu .

Para bloquear la instalación de un paquete dado, podemos poner las siguientes líneas en /etc/apt/preferences

Package: <nameofpackage>
Pin: origin ""
Pin-Priority: -1

Al dar una prioridad negativa para este pin, bloquearemos la instalación de <nameofpackage>un origen no especificado, es decir, nuestro repositorio local. Por supuesto, podemos usar apt-pinning para fijar una determinada versión de paquete u origen específico.

Antes de continuar, se recomienda encarecidamente leer la documentación proporcionada anteriormente y la página de manual de apt_preferences porque apt no verifica los errores en estos archivos y, si se producen, puede interrumpir la administración de su paquete.

Para una alternativa, y para evitar la actualización de un paquete dado vea:


¿Sabes si esto podría funcionar en Ubuntu 12.04? Otra pregunta es informar que tal vez no funcione.
Lucio

1
@Lucio: claro, todavía funciona; solo lo probé para funcionar en 12.10 también.
Takkat

3
En la línea Package:, puede enumerar varios paquetes separados con espacios, como este: Paquete: metacity metacity-common libmetacity-private0a. (Parece que patrones como Paquete: metacity * también son posibles)
Volker Siegel

55
En Ubuntu 16.04 Pin: origin ""no funcionó para mí, pero lo Pin: release *hizo.
barbaz

3

En debian puedes bloquear un paquete, y ese paquete ya no se actualizará

# echo name_of_package hold | dpkg --set-selections

pero no estoy seguro de que puedas prohibir


Lo probé en Ubuntu 15.10 (astutamente) y no bloqueó el paquete; acaba de darme una advertenciapackage not in database
Brent Baccala

2

Tengo un paquete que sigue entrando sigilosamente y rompiendo git

sudo apt-mark hold libgnutls-deb0-28

debería evitar que se instale ese paquete

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.