¿Hay alguna manera de seleccionar paquetes de un repositorio de ppa que agregue? Es decir, ¿excluir algunos de la actualización e incluir otros?
Por ejemplo, solo quiero el paquete de navegador de cromo de este repositorio, pero no los otros. Así que no quiero sudo apt-get upgrade
que tenga otros paquetes de ese ppa (además del navegador de cromo) instalados sobre los existentes, solo ese.
Me doy cuenta de que esta es una licencia para pegarme un tiro en el pie si leo mal las dependencias y excluyo las que son necesarias a las que incluí, pero sé de hecho en este caso que los otros paquetes no son dependencias para esa.
¿Es esto posible? Tal vez hay algún archivo de lista blanca / lista negra o algo así.
Respuestas:
Encontré una forma de hacerlo.
El truco es usar dos cláusulas de fijación. El primero en rechazar TODOS los paquetes del PPA y el segundo en seleccionar los que desea.
Entonces, para el ejemplo anterior, primero agrego el ppa como de costumbre:
Ahora, si ejecuto la política apt-cache, me mostrará que hay una versión más nueva de chromium-browser disponible y que se instalará con una actualización porque tiene la misma prioridad (500) que mi navegador de chromium actual.
Eso es genial en lo que respecta a ese paquete, pero no quiero que se instalen los demás en este ppa (que también tienen una prioridad 500). En este momento, si intento actualizar, obtendré más que solo los paquetes de cromo que quiero de ese repositorio:
Entonces, lo que puedo hacer es decirle a apt que quiero que todos los paquetes en ese ppa, webapps-preview en este caso, tengan una prioridad más baja, excepto los que tienen "cromo" en su nombre. El mecanismo para esto es fijar un paquete
Creo un archivo en /etc/apt/preferences.d/ con dos cláusulas. La primera de ellas dice dan todos los paquetes en las aplicaciones web-previsualización ppa una prioridad más baja que la normal (para que se no preferido, incluso si tienen un número de versión superior. La segunda cláusula anula en parte la primera diciendo dan los paquetes en ese ppa con "cromo" en su nombre tiene la misma prioridad que otros paquetes para que se instale (al tener un número de versión más alto).
Para identificar la cadena correcta para la opción "Pin: liberar", podemos usar la política apt-cache nuevamente.
Para versiones aptas <0.8.14, los paquetes anclados deben especificarse explícitamente ya que los comodines no funcionan:
Y ahora, cuando trato de actualizar, obtengo solo los paquetes que quiero de ese ppa y no los otros. Todo muy bien escogido para mí:
fuente
También puede seleccionar la versión desde la que desea instalar con el
?origin
selector:Entonces, en su caso específico, puede usar:
O puede especificar la versión usando
<packagename>=<version>
:fuente
En realidad, puede "seleccionar" ciertos paquetes a través de Synaptic y es muy fácil. Funciona así:
Si desea hacer eso solo para ciertos PPA, elija "Origen" (esquina inferior izquierda) en la ventana Sináptica y luego elija el PPA que desea cambiar
elija todos los paquetes que ya no desea actualizar automáticamente.
elija el menú "Versión de paquete / bloqueo". Todos los paquetes que elija ya no se actualizarán automáticamente hasta que los desbloquee nuevamente.
fuente