Cuando realice la actualización de yum, descargará la última versión de todos los paquetes que están instalados en su sistema, y actualícelos a la última versión.
Es posible que se encuentre en una situación en la que no desee que yum actualice automáticamente uno (o más) paquetes específicos.
En esas situaciones, use la opción de exclusión de yum como se muestra en los ejemplos a continuación.
1. Excluir un paquete único usando la opción -x
Por ejemplo, en este sistema, estamos usando PHP 5.1, y la aplicación php personalizada que se ejecuta en este sistema aún no se ha probado con ninguna otra versión nueva de PHP.
# rpm -q php php-5.1.0-27.el6_5.x86_64
Entonces, en este caso, cuando hacemos una actualización, queremos excluir solo un paquete específico, que es php. Como vemos a continuación, lo siguiente indica que el paquete php se actualizará a la versión 5.3.3 cuando ejecutemos el comando 'yum update'.
# yum check-update php php.x86_64 5.3.3-40.el6_6 updates
Lo siguiente excluirá solo un paquete (php) durante la actualización de yum.
# yum -x php update
2. Excluir paquetes múltiples usando la opción -x
Puede excluir varios paquetes especificando varias opciones -x como se muestra a continuación:
yum -x php -x httpd update
También puede excluir más de un paquete especificando la lista de paquetes separados por comas. Lo siguiente se comportará exactamente igual que el anterior.
yum -x php,httpd update
3. Excluir paquetes múltiples (p. ej., paquetes del kernel) usando comodines
En la mayoría de las situaciones, es posible que no desee que la actualización de yum actualice automáticamente el kernel.
Antes de realizar la actualización real de yum, puede realizar la actualización de verificación de yum, que mostrará todos los paquetes que se actualizarán durante la actualización de yum.
Como puede ver a continuación, en este ejemplo, hay tres paquetes relacionados con el kernel que se actualizarán con yum update.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
En lugar de especificar todos los nombres de paquetes individuales en la lista de exclusión -x, simplemente podemos usar los comodines de shell glob como se muestra a continuación. Lo siguiente excluirá todos los paquetes relacionados con el kernel que comiencen a actualizarse durante la actualización de yum.
yum -x kernel* update
4. Múltiples listas de comodines en la opción -x
También puede especificar varias listas de comodines en la opción -x.
Como puede ver a continuación, lo siguiente indica que hay varios paquetes php que se actualizarán durante la próxima actualización de yum.
# yum check-update | grep -i php php.x86_64 5.3.3-40.el6_6 updates php-cli.x86_64 5.3.3-40.el6_6 updates php-common.x86_64 5.3.3-40.el6_6 updates php-xml.x86_64 5.3.3-40.el6_6 updates
Si desea excluir todos los paquetes relacionados con php y kernel durante la próxima actualización de yum, puede usar lo siguiente. Tenga en cuenta que debe usar " " en este ejemplo.
yum -x 'php*' -x 'kernel*' update
5. Usando –exclude en lugar de -x
También puede usar –exclude en lugar de -x como se muestra a continuación:
yum --exclude php update yum --exclude httpd update yum --exclude kernel update yum -exclude php*,httpd*,kernel* update
6. Excluir paquetes usando el archivo yum.conf
En lugar de especificar los paquetes que se excluirán en la línea de comandos, puede especificarlos en el archivo /etc/yum.conf.
Por ejemplo, para excluir todos los paquetes de php, httpd y kernel de la actualización de yum, agregue la siguiente línea:
exclude=php* httpd* kernel*
O bien, ejecute el siguiente comando:
echo "exclude=php* httpd* kernel*" >> /etc/yum.conf
7. Usar lista separada por comas
También puede excluir más de un paquete especificando la lista de paquetes comodín separados por comas. Lo siguiente se comportará exactamente igual que el anterior.
yum -x php*,kernel* update
Para ser coherente con la forma en que mostramos los otros ejemplos usando la opción -x anterior, también puede usar una coma (en lugar de solo un espacio) para separar los paquetes múltiples como se muestra a continuación:
# vi /etc/yum.conf exclude=php*,httpd*,kernel*
8. Excluir parámetro dentro del archivo de repositorio personalizado
En lugar de especificar el parámetro de exclusión en el archivo principal yum.conf, también puede especificarlo en el archivo de repositorio individual.
Por ejemplo, si ha instalado mongodb, tendrá mongodb.repo en el directorio /etc/yum.repos.d. Puede especificar la lista de paquetes excluidos para el repositorio mongodb dentro de este archivo mongodb.repo.
# vi /etc/yum.repos.d/mongodb.repo exclude=mongo*
9. Simule la verificación de exclusión de Yum usando la actualización de verificación (Dry-run -x)
También puede especificar la opción -x junto con la actualización de verificación. Esto le ayuda a verificar si la opción -x que especificó en la línea de comando o en el archivo yum.conf funciona como se esperaba.
Por ejemplo, lo siguiente indica que el kernel se actualizará durante la actualización de yum.
# yum check-update | grep -i kernel kernel.x86_64 2.6.32-504.1.3.el6 updates kernel-firmware.noarch 2.6.32-504.1.3.el6 updates kernel-headers.x86_64 2.6.32-504.1.3.el6 updates
Lo siguiente indica que el indicador -x funcionará como se esperaba ya que no devolvió nada en el resultado.
# yum -x kernel* check-update | grep -i kernel
Por ejemplo, digamos que la siguiente línea de exclusión está presente en el archivo yum.conf.
# grep exclude /etc/yum.conf exclude=php*,httpd*,kernel*
Luego, lo siguiente indica que la lista de exclusión especificada en /etc/yum.conf anterior funcionará como se esperaba, ya que la actualización de verificación no mostró esos paquetes (incluido el kernel) en el siguiente resultado.
# yum check-update | egrep 'php|httpd|kernel'
10. Ignorar la exclusión del archivo yum.conf
Si desea deshabilitar las exclusiones mencionadas en el archivo yum.conf. es decir, si no desea que la actualización de yum considere la lista de exclusión que se especifica en el archivo yum.conf, puede usar la opción –disableexcludes desde la línea de comando.
En nuestro ejemplo anterior, hemos excluido los paquetes de php, httpd y kernel para ser actualizados por la actualización de yum.
Pero, si desea que yum ignore esa lista de exclusión (es decir, deshabilite la exclusión) y continúe actualizando php, httpd y kernel como parte del comando de actualización regular de yum, ejecute lo siguiente:
yum --disableexcludes=all update
Los siguientes son los tres valores posibles que puede especificar para disabledexcludes
- all Deshabilitar todas las exclusiones
- principal Deshabilitar exclusiones especificadas en la sección principal del archivo yum.conf
- repoid Desactivar exclusiones especificadas para el ID de repositorio dado
Si desea deshabilitar las exclusiones solo para un repositorio personalizado específico, puede especificar la identificación del repositorio (que es la primera columna en el comando yum repolist como se muestra a continuación).
# yum repolist repo id repo name status mongodb MongoDB Repository 240 base CentOS-6 - Base 6,518 extras CentOS-6 - Extras 35 updates CentOS-6 - Updates 315
Lo siguiente deshabilitará (ignorará) la lista de exclusión especificada en el archivo mongodb.repo en el directorio /etc/yum.repos.d.
yum --disableexcludes=mongodb update