Debido al error # 693758, me gustaría evitar que apt-get upgrade
Update Manager actualice el paquete "libgtk2.0-0".
¿Cómo se puede lograr esto?
disable packages from the auto-update
Debido al error # 693758, me gustaría evitar que apt-get upgrade
Update Manager actualice el paquete "libgtk2.0-0".
¿Cómo se puede lograr esto?
disable packages from the auto-update
Respuestas:
Hay cuatro formas de contener paquetes: con dpkg, apt, aptitude o dselect.
Poner un paquete en espera:
echo "<package-name> hold" | sudo dpkg --set-selections
Eliminar la retención:
echo "<package-name> install" | sudo dpkg --set-selections
Muestra el estado de tus paquetes:
dpkg --get-selections
Mostrar el estado de un solo paquete:
dpkg --get-selections | grep "<package-name>"
Mantenga un paquete:
sudo apt-mark hold <package-name>
Eliminar la retención:
sudo apt-mark unhold <package-name>
Mostrar todos los paquetes en espera:
sudo apt-mark showhold
Con dselect, ingrese a la pantalla [S] elect, encuentre el paquete que desea mantener en su estado actual y presione =o H. Los cambios tendrán efecto inmediatamente después de salir de la pantalla de selección [S].
Los siguientes enfoques son limitados en que bloquear / mantener un paquete dentro de aptitude o synaptic no afecta a apt-get / apt.
Mantenga un paquete:
sudo aptitude hold <package-name>
Eliminar la retención:
sudo aptitude unhold <package-name>
Vaya a Synaptic Package Manager (Sistema> Administración> Synaptic Package Manager).
Haga clic en el botón de búsqueda y escriba el nombre del paquete.
Cuando encuentre el paquete, selecciónelo, vaya al menú Paquete y seleccione Bloquear versión .
Ese paquete ahora no se mostrará en el administrador de actualizaciones y no se actualizará.
devscripts
, muchos paquetes se extraen como paquetes recomendados. Como no necesito un servidor de correo (postfix), podría desactivar la instalación ejecutándolo echo postfix hold | sudo dpkg --set-selections
antes de ejecutarlo sudo apt-get install devscripts
. Esta acción de retención persiste solo para esta instalación, después de la instalación se restablecen las selecciones.
apt-mark
no es compatible hold
con la versión 0.7.25 (Ubuntu Lucid)
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
.
Para poner un paquete "foo" en espera:
echo "foo hold" | dpkg --set-selections
En su caso, vamos a poner el vino en espera:
sudo -i
echo "wine hold" | dpkg --set-selections
Para eliminar la retención:
sudo -i
echo "wine install" | dpkg --set-selections
apt-get install wine=1.2.3
. Estar en espera impide apt-get (dist-)upgrade
cambiarlo.
/var/cache/apt/archives
) es independiente de las retenciones y actualizaciones y demás, por lo que todas las versiones que haya descargado estarán allí hasta que se ejecuteapt-get [auto]clean
Estaba buscando lo mismo y después de mucha investigación descubrí que usando la siguiente sintaxis puedes prohibir una versión específica pero permitir la próxima actualización:
Paquete: compiz-plugins-main Pin: versión 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Prioridad de pin: -1
Esto va al archivo / etc / apt / preferencias.
Instalar synaptic
usando sudo apt-get install synaptic
.
Ejecute usando gksudo synaptic
y en el cuadro de búsqueda busque el paquete que desea bloquear, es decir:gedit
En el menú del paquete, seleccione Versión de bloqueo :
Y eso es todo, la versión instalada actualmente en el momento del bloqueo permanecerá instalada incluso durante las actualizaciones.
La prevención de la instalación de un paquete se llama "retención de paquetes" y es muy simple de hacer:
echo nombre_paquete hold | dpkg --set-selections
... donde * nombre_paquete * es el nombre del paquete que desea evitar que se instale.
Nota: el comando anterior asume privilegios de root. En otras palabras, probablemente necesitará escribir sudo su
antes de ejecutarlo.
s/sudo su/sudo -s/g
(o sudo -i
) ( -i
dará un shell de inicio de sesión, -s
no lo hará).
Dado que apt-get
se reemplaza algún tiempo apt
, por ejemplo, quiero evitar que Firefox se actualice a la versión superior a 56, porque muchos complementos, como "Grupos de pestañas" ya no funcionan con el nuevo Firefox 57 (consulte "Extensiones web" Actualizar").
Es posible contener más de un paquete con un comando y usar comodines.
sudo apt-mark hold firefox firefox-locale-*
Si desea deshacerse de ellos más tarde, ese sería el comando:
sudo apt-mark unhold firefox firefox-locale-*
Sinéptico, puede congelar la versión de un paquete específico. No estoy 100% seguro de si esto modificará apt-get, pero definitivamente detendrá el administrador de actualizaciones.
Para congelar un paquete, selecciónelo en sináptico, luego abra el menú del paquete y seleccione la versión congelada.
Espero que esto ayude
editar: Esta pregunta 16668 trata una situación similar
Todo lo que siempre quiso saber sobre "mantener" y "fijar" paquetes a versiones específicas: https://help.ubuntu.com/community/PinningHowto
Vea los errores # 75332 , # 158981 y # 72806 .
El resumen es que la retención en el nivel apt-get / aptitude no está activando el estado de retención en dpkg (vea el error 72806 especialmente) y el administrador de actualizaciones lee el estado de dpkg.
La solución se ejecuta como root:
echo "package hold" | dpkg --set-selections
Puede usar en aptitude el "override específico", así:
aptitude reinstall ~i oracle-java8-jre:
Este es un uso único de (no almacenado para futuras reinstalaciones), mantener anulación específica, para reinstalar todos los paquetes en su sistema pero no oracle-java8-jre.
Si utiliza una anulación específica de mantenimiento, el paquete estará momentáneamente en un estado de mantenimiento y una aptitud no intentará instalarlo.
Una cosa muy buena si cree que su sistema se vio comprometido de alguna manera.
Si tiene Synaptic instalado, puede seleccionar el paquete y usar el menú Paquete -> Bloquear versión para evitar que se actualice.
Puede instalar Synaptic con sudo apt-get install synaptic. Personalmente, lo encuentro más útil que el Centro de software ... por otra parte, soy bastante viejo. :)
Ocasionalmente, uno podría querer retener todos los paquetes actualmente instalados. Así es cómo.
Primero guarde el estado actual, para que pueda deshacer:
dpkg --get-selections > current_selections.txt
Luego, para retener todos los paquetes:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Finalmente, cuando desee volver al estado anterior:
dpkg --set-selections < current_selections.txt
Un caso de uso para esto podría ser al crear una instantánea de VM o Amazon AMI para migrar desde un QA al entorno de producción.
Agregar detalles a los comentarios de @ soger en relación con Ubuntu 16.04.
Ubuntu 16.04 no tiene un archivo / etc / apt / preferencias existente por defecto. Si no tiene uno actualmente, simplemente cree un nuevo archivo y complételo con una estrofa como @soger describe anteriormente para excluir el paquete dado y sus dependencias de las actualizaciones.
Luego, corre apt update
y eres GTG. : 0)
Por ejemplo, tengo un servidor Ubuntu 16.04.5 LTS con tarjeta de video Intel integrada y una tarjeta NVidia. La tarjeta NVidia es la única utilizada. El servidor también usa controladores CUDA. Tuve un problema donde apt
insistí
va-driver-all
(Controladores Intel) requirieron una actualización, pero no pudo determinar qué versión instalar. Esto me estaba volviendo loco, y no necesitaba los controladores Intel de todos modos. Ingresé este texto en el archivo de preferencias y me sonrojé, problema resuelto.
Package: va-driver-all
Pin: release *
Pin-Priority: -1