Yum: resolver el error «rpmdb open failed»

Tras intentar hacer alguna operación con yum en consola nos encontramos con el error «rpmdb open failed».

Este error indica que las bases de datos que se encuentran bajo el directorio /var/lib/rpm( están dañadas. Su formato de nombre de fichero es del tipo «_db*», así que para deshacernos de este problema nada más sencillo que borrarlas y volver a crearlas.

Como root ejecutamos el borrado de las bases de datos, las regeneramos, limpiamos la cache y la volvemos a crear.

$
$ rm -f /var/lib/rpm/_db*
$ rpm -vv --rebuilddb 
$ yum clean all
$ yum makecache 
$

PHP 5.6 deja de ser beta

El equipo de desarrollo de PHP ha anunciado el lanzamiento de la primera release candidate, PHP 5.6.0RC1, por el momento no se recomienda su uso en entornos de producción, pero es importante revisar las novedades y cambios que trae para ir preparando nuestras aplicaciones.

Entre esta relase candidate y su predecesora en beta se ha añadido soporte en mysqlnd para MySQL 5.7 y se han solucionado algunos errores.

Entre las novedades más destacadas que llegan con PHP 5.6 está:

  • incorporación de un debbuger interactivo (phpdbg)
  • reutilización del flujo de lectura de php://input
  • soporte para ficheros de más de 2GB
  • inclusión del operador … (tres puntos) que permite la variación del número de argumentos en las funciones y el desempaquetado de arrays y objetos con interface travesable de forma similar a como se hace en Ruby
  • soporte para potenciación a través del operador **
  • mejoras en SSL/TLS y soporte para el algoritmo GOST

Warning: Creating default object from empty value

El titulo muestra el mensaje que despliega PHP cuando se intenta manejar una variable como si fuese un objeto (por ejemplo cuando sobre una variable vacía intentamos asignar valor a una propiedad).

<?php

$usuario->nombre = 'Salvador';
$usuario->apellido = 'Mendez';

?>

Hasta PHP 5.4 los mensajes E_STRICT no estaban incluidos en E_ALL, por lo que el código anterior no mostraba ningún tipo de error en la mayoría de configuraciones de servidores PHP. Pero a partir de 5.4 obtendremos «Warning: Creating default object from empty value in …».

Info extraída del manual de PHP:

En PHP 5 está disponible el nuevo nivel de error E_STRICT. Antes de PHP 5.4.0, E_STRICT no estaba incluido dentro de E_ALL, por lo que se teniía de habilitar explícitamente este tipo de nivel de error en PHP < 5.4.0. La habilitación de E_STRICT durante el desarrollo tiene algunos beneficios. Los mensajes STRICT proporcionan sugerencias que pueden ayudar a asegurarse de la mejor interoperabilidad y la compatibilidad hacia delante del código. Estos mensajes pueden incluir cosas como llamar a métodos no estáticos de forma estática, definir propiedades en una definición de clase compatible mientras se definió en un trait usado, y antes de PHP 5.3, algunas características obsoletas emitirían errores E_STRICT como asignar objetos por referencias durante la instanciación.

Es una forma de intentar que se respete el paradigma de orientación a objetos, así los mensajes E_STRICT ayudan a generar código PHP que ofrezca una mayor compatibilidad con versiones futuras.

Para evitar que se muestre ese error, debemos asegurarnos que trabajamos con objetos, generando uno vacío cuando no lo son:

<?php

if(!is_object($usuario))
{
    $usuario = new stdClass;
}

$usuario->nombre = 'Salvador';
$usuario->apellido = 'Mendez';

?>

Disponible PHP 5.5.10 y 5.4.26

El grupo de desarrolladores de PHP han anunciado la disponibilidad de las versiones 5.5.10 (listado de cambios) y 5.4.26 (listado de cambios). Como es habitual se recomienda a todos los usuarios actualizar a estas últimas versiones, están disponibles a través de la página de descarga.

También está disponible la versión de desarrollo 5.6.0alpha3, con los avances de la nueva versión.

Disponible PHP 5.5.9

El grupo de desarrolladores de PHP han anunciado la liberación de la versión 5.5.9, que corrige algunos bugs detectados en la versión 5.5.8 (lista de cambios), se recomienda a todos los usuarios que estén utilizando la versión 5.5 actualizar a la nueva versión.

También está disponible la versión 5.6.0alpha2, donde se incluyen nuevas características y se corrigen errores. A todos los que estén interesados en probar esta nueva versión se les recuerda que es una versión en desarrollo y no se debe usar en producción.

Puesta a punto de Fedora 16

Es es un pequeño resumen de utilidades y configuraciones que deberíamos hacer para tener nuestro Fedora 16 a punto para poder sacarle en mejor rendimiento a este fantástico sistema operativo.

Plugins de yum

Una de las primeras cosas que debemos hacer es mejorar el rendimiento de YUM, puesto que lo necesitamos para el resto de tareas. Dos plugins fundamentales fastetstmirror (sirve para localizar el servidor más rápido para la descarga de paquetes) y presto que descarga sólo los paquetes nuevos de un determinado programa.

$
$ yum install yum-plugin-fastestmirror
$ yum install yum-presto
$

Instalar repositorios extras

Algunos paquetes interesantes, por uno u otro motivo, no se encuentran en los repositorios oficiales de Fedora, así que mejor tener preparados los repositorios extra para cuanto se necesiten.

$
$ yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
$

Instalar flash plugin en Fedora 16

El plugin de flash, una de esas cosa que una vez instalado no te volverás a preocupar, pero que cuando no lo tienes y accedes a una web que lo usa provoca bastante frustración.

yum install flash-plugin

Instalar java y su famoso plugin

Otra de esas cosas, que a menos que uses programas en java no echas de menos hasta que llegas a una web que requiere su famoso plugin para poder acceder a alguna utilidad. Si eres fan de la Fórmula 1 y quieres seguir la tabla de tiempos a través de la web oficial necesitas el plugin (OJO: algunos navegadores necesitan configuración adicional).

yum install java-1.6.0-openjdk
yum install java-1.6.0-openjdk-plugin

Instalar codecs de audio y video

Cuando intentes usar Rhythmbox para escuchar música te darás cuenta de su necesidad.

yum install gstreamer-plugins-bad gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg

Visualización y herramientas

Completado el apartado de entrañas, toca una revisión a la parte visual. Fedora 16 viene con la Shell de Gnome 3 y tenemos una herramienta estupenda para configurar sus opciones gnome-tweak-tool

yum install gnome-tweak-tool

Algunas utilidades que en algún momento vais a necesitar si usáis Fedora como sistema de escritorio: paquete ofimático, editor de gráficos, gestor de documentos (si usas Google Docs, debes activar las cuentas en línea) y el VLC.

yum install libreoffice
yum install gimp gimp-data-extras gimp-fourier-plugin gimp-lqr-plugin gimp-resynthesizer gimpfx-foundry
yum install gnome-documents
yum install vlc-extras

Y eso es todo, excuso decir que para todas estas operaciones tenéis que tener permisos de administración sobre el sistema.