domingo, 31 de marzo de 2013

Actualizando el software instalado en Ubuntu

Cualquier usuario no novato de Ubuntu, Linux Mint o cualquier otra distribución Linux derivada de Debian (incluyendo la propia Debian, claro) sabe que dispone de un potente sistema de gestión de paquetes: APT, que facilita enormemente la búsqueda, descarga, instalación y configuración de software.

Se puede recurrir a una herramienta con interfaz gráfica como Synaptic (o la alternativa predeterminada del escritorio correspondiente) o usar los comandos disponibles desde cualquier terminal para tales menesteres. Lo bueno de estos comandos es que son estándares y siempre podremos encontrarlos en cualquier sistema, de escritorio o de servidor, basado en Debian. Además no son difíciles de utilizar en la mayoría de los casos.

Es bien conocido que antes de poder buscar un paquete software (con apt-cache search) o instalarlo (con apt-get install) debe actualizarse la lista de paquetes disponibles mediante apt-get update. Pero lo que realmente quería resumir son las distintas formas de actualizar el software instalado en el sistema usando comandos en la terminal:
  • apt-get upgrade : lleva a cabo una actualización de los paquetes instalados que cuenten con una nueva versión en los repositorios, siempre que ésta no implique la instalación de nuevos paquetes o la desinstalación de paquetes ya instalados. Es la forma más frecuente y segura de actualizar el sistema, equivalente a usar aptitude safe-upgrade.
  • apt-get dist-upgrade : a diferencia del comando anterior, éste intentará instalar nuevas versiones de paquetes instalados aunque impliquen la instalación de nuevos paquetes o la eliminación de paquetes instalados. Es por tanto menos conservador, aunque la resolución de conflictos entre paquetes suele llevarse a cabo sin problemas en la mayoría de ocasiones. Una situación típica en que deberemos usarlo es cuando hay paquetes retenidos, por ejemplo los correspondientes a un nuevo kernel. Sería equivalente a usar aptitude full-upgrade.
Por último comentar que aunque en Debian y derivadas puede usarse apt-get dist-upgrade (de ahí el nombre) para actualizar una distribución a su siguiente versión, en Ubuntu se recomienda usar en su lugar do-release-upgrade...

NOTA: los comandos anteriores que impliquen realizar cambios en el sistema necesitarán privilegios de superusuario, por lo que se tendrán que ejecutar precedidos por sudo o desde una consola de root.

sábado, 9 de marzo de 2013

Proteger archivos contra borrado en Linux

Puede darse la situación de que necesitemos proteger uno o más archivos en nuestro sistema Linux contra un borrado accidental o incluso contra el borrado premeditado por parte de un programa (p. ej. una aplicación creando un nuevo archivo de configuración). En tales situaciones podemos recurrir a la utilidad chattr, concebida para cambiar ciertos atributos especiales que tienen los archivos en la familia de sistemas de archivos más usada en Linux: extended file system (ext4 es su encarnación más reciente). Bastará con ejecutar como superusuario dicha utilidad para activar el atributo "i" (de inmutable) del archivo en cuestión:

sudo chattr +i nombre_archivo

Así no podrá ser eliminado hasta que le desactivemos el atributo protector. Y si más adelante nos encontramos con la situación de que un archivo no se borra "ni a tiros" (de superusuario ;) sería una buena idea recurrir a su utilidad hermana lsattr (ambas forman parte de e2fsprogs) para asegurarnos de que todo está en orden...