Monthly Archives: July 2010

Degradar PHP 5.3 a 5.2 en GNU/Linux Ubuntu 10.04

Introducción.

La versión mas reciente de Ubuntu, Lucid Lynx (10.04), incluye en sus repositorios por defecto la versión 5.3 de PHP la cual trae consigo una serie de modificaciones considerables que hacen que muchas de las aplicaciones requieran algún tipo de modificaciones para funcionar correctamente.

Mientras se realizan estas modificaciones para actualizar las aplicaciones sea hace necesario continuar utilizando las aplicaciones existentes y para esto se debe reemplazar la versión instalada de PHP por la versión mas reciente de la serie anterior (5.2.x).  La migración no es trivial debido a que los paquetes vienen directamente de los repositorios, sin embargo si se utiliza el script provisto opr KAndy el proceso se simplifica enormemente.

Instalación de PHP.

Si aún no cuenta con PHP instalado en el equipo puede realizar una instalación básica mediante la ejecución de la siguiente instrucción.  Instale los demás paquetes que considere necesarios.

$ sudo aptitude install apache2 php5 php5-cli php5-mysql

En este punto el equipo tendrá instalado PHP 5.3 y es el momento de degradarlo a su versión anterior.

$ php -v

PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli) (built: May 13 2010 20:03:45)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Degradar PHP.

Tomar nota de los paquetes relacionados con PHP que se encuentran actualmente instalados.

$ php_installed=`dpkg -l | grep  php| awk  '{print $2}' |tr "\n" " "`

Descargar el script de KAndy de la siguiente ubicación y almacenarlo con el nombre de downgradePHP.sh.

http://mrkandy.wordpress.com/2010/04/16/install-php-5-2-x-in-ubuntu-10-04-lucid/

Ejecute el script en la máquina que se desea degradar.

$ chmod +x downgradePHP.sh

$ ./downgradePHP.sh

Recuperar los demás paquetes instalados.

$ sudo apt-get install $php_installed

Verificar la nueva versión de PHP.

$ php -v

PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:28:03)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies

Enlaces.

Recuperar el GRUB de GNU/Linux Ubuntu 10.04 después de instalar Windows

Introducción.

Después de instalar Windows sucedió lo que se esperaba, el MBR del disco duro fue sobreescrito por el instalador y el GRUB fue removido.  Como consecuencia de esto ya no es posible acceder a Linux, únicamente a Windows.

Este es el procedimiento necesario para recuperar el GRUB de un GNU/Linux Ubuntu 10.04 instalado previamente a la instalación de Windows 7.

Recuperar el GRUB.

Para hacer esto es necesario iniciar el equipo con una versión en vivo de GNU/Linux Ubuntu 10.04, esto se logra con el CD de instalación o con su respectiva LiveUSB.  Se debe especificar durante su inicio que la intención es la de probar el sistema operativo mas no de instalarlo nuevamente.

A continuación es necsario identificar cual es el disco y la partición raíz (donde se encuentre /boot) de GNU/Linux. La forma mas simple de hacer esto es utilizando el administrador de unidades y medios (Disk Utility) ejecutando el siguiente comando o seleccionando el menú System > Administration > Disk Utility.

$ /usr/bin/palimpsest

Particiones del disco duro

Particiones del disco duro

En este caso, el directorio raíz se encuentra en la partición 5 del primer disco duro, es decir, su dispositivo es /dev/sda5.

Desde una terminal se procede a montar la partición mencionada anteriormente con mediante als siguientes instrucciones.

$ mkdir /tmp/raiz

$ sudo mount /dev/sda5 /tmp/raiz

Finalmente se solicita que se recree el GRUB en el MBR basado en la información encontrada.

$ sudo grub-install –root-directory=/tmp/raiz /dev/sda

Importante: es necesario tener en cuenta que el GRUB se crea sobre el disco duro elegido (sda), no sobre una partición específica (sda5).

Al reiniciar el sistema operativo ya deberá aparecer el GRUB permitiéndole elegir cual de los sitemas operativos registrados iniciar.

Agregar Windows a la lista de selección.

En este caso primero instalé Ubuntu y después instalé Windows lo que motivó en primera instancia que se perdiera el MBR.  Esto trae consigo un problema secundario: al recuperar el GRUB este no contiene una referencia a Windows ya que cuando fue creado aún no se había instalado el segundo sistema operativo.

Para solucionar este problema se deben instalar las herramientas del GRUB de la siguiente manera.

$ sudo aptitude install grub-pc

Con ellas, cada vez que se actualice su información se revisarán las particiones existentes en búsqueda de nuevos sistemas operativos que se configurarán automáticamente para aparecer en el GRUB la próxima vez que se reinicie el sistema.

$ sudo update-grub2

Para este caso específico, la partición de Windows 7 (NTFS) corresponde con el dispositivo /dev/sda2 motivo por el cual se agrega automáticamente la siguiente opción en el archivo /boot/grub/grub.cfg.

menuentry "Windows 7 (loader) (on /dev/sda2)" {
insmod ntfs
set root='(hd0,2)'
search –no-floppy –fs-uuid –set 4a3c22f43c22db29
chainloader +1
}

Preparar una unidad USB de instalación de Windows 7 utilizando GNU/Linux

Introducción.

En algunos casos se necesita instalar Windows como sistema operativo en máquinas que no disponen de una unidad lectora de CD/DVD, tal es el caso de los netbooks actuales.  Windows a diferencia de algunas versiones de Linux como Ubuntu, no incluye una herramienta para crear instaladores del sistema operativo en memorias USB, sin embargo los pasos que se deben seguir para crearlas no son complejos.

A continuación se detalla el procedimiento necesario para crear unidades USB con los instaladores de Windows utilizando un equipo con GNU/Linux Ubuntu 10.04 (en general, cualquier distribución de Linux servirá).

Requerimientos.

  • Un computador con GNU/Linux.
  • Una unidad de DVD.
  • Una memoria USB de por lo menos 3GB.
  • Un DVD de instalación de Windows 7 (probablemente funcionen también otras versiones).

Procedimiento.

Determinar el dispositivo que corresponde a la memoria USB.

Insertar la memoria en un puerto USB libre y ejecutar el siguiente comando.

$ dmesg | tail -20

[16590.915054] scsi10 : SCSI emulation for USB Mass Storage devices
[16590.915460] usb-storage: device found at 7
[16590.915466] usb-storage: waiting for device to settle before scanning
[16592.371732] usb 2-1: USB disconnect, address 7
[16603.750099] usb 2-2: new high speed USB device using ehci_hcd and address 8
[16603.902794] usb 2-2: configuration #1 chosen from 1 choice
[16603.913861] scsi11 : SCSI emulation for USB Mass Storage devices
[16603.922229] usb-storage: device found at 8
[16603.922232] usb-storage: waiting for device to settle before scanning
[16608.923049] usb-storage: device scan complete
[16608.923986] scsi 11:0:0:0: Direct-Access              MIMOBOT          0.00 PQ: 0 ANSI: 2
[16608.927668] sd 11:0:0:0: Attached scsi generic sg2 type 0
[16608.929715] sd 11:0:0:0: [sdb] 7892087 512-byte logical blocks: (4.04 GB/3.76 GiB)
[16608.936095] sd 11:0:0:0: [sdb] Write Protect is off
[16608.936106] sd 11:0:0:0: [sdb] Mode Sense: 00 00 00 00
[16608.936113] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16608.941652] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16608.941659]  sdb: sdb1
[16609.210304] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16609.210316] sd 11:0:0:0: [sdb] Attached SCSI removable disk

Desomntar el dispositivo que referencia a la unidad USB.

$ umount /dev/sdb1

Crear una partición para los archivos de instalación.

$ sudo fdisk /dev/sdb

Verificar si existen particiones previas en la unidad.

Command (m for help): p

Disk /dev/sdb: 4040 MB, 4040748544 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a77a

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            1        1018     3944719   83  Linux

En este caso existe una partición previa (sdb1), se procede a removerla.

Remover las particiones existentes.

Command (m for help): d
Selected partition 1

Crear una nueva partición para los archivos de instalación.

Se procede a crear una nueva partición que ocupe la totalidad del espacio de la unidad USB, en este caso 4GB.

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1): [Enter]
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018):
[Enter]
Using default value 1018

Cambiar el tipo de la partición a NTFS.

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

Permitir que la partición sea activa (bootable).

Command (m for help): a
Partition number (1-4): 1

Guardar los cambios y salir de fdisk.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Limpiar la información del MBR.

$ sudo dd if=/dev/zero of=/dev/sdb bs=446 count=1

1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.00288829 s, 154 kB/s

Crear el sistema de archivos en la unidad con NTFS.

$ sudo mkfs.ntfs /dev/sdb1

Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% – Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

Modificar la etiqueta de la unidad (opcional).

$ sudo ntfslabel /dev/sdb1 "JimezamLabs"

Copiar los archivos de instalación.

Retirar y volver a conectar la unidad USB para que el sistema operativo la reconozca nuevamente, ahora vacía y con la etiqueta que se eligió en el paso anterior.

$ cp -rf /media/Windows7/* /media/JimezamLabs/

Deben actualizarse los nombres de los puntos de montaje según su propio contexto.  /media/Windows7 representa el punto de montaje del DVD de Windows mientras que /media/JimezamLabs representa al punto de montaje de la unidad USB que se está preparando.

Instalación de Windows.

Para instalar Windows en un equipo a partir de la memoria USB recién preparada, inserte esta en un puerto USB libre y reinicie el computador.  Configure la BIOS del equipo para que inicie a partir del dispositivo USB y prosiga con la instalación normalmente.

Una epidemia de excusas en Colombia

Esta es una campaña del Fondo de Prevención Víal que me gustó mucho, en la propaganda asociada muestran muchas de las disculpas mas comunes que frecuentemente decimos para respetar la ley de tránsito menos por esta vez … porque sólo es por un momento.  Es hora de deshacernos de esa idiosincracía nefasta en la que el mas vivo es el que evita los proedimientos y la malicia reemplaza la cultura.  Es hora de darnos cuenta que las cosas hay que hacerlas, pero hacerlas bien aunque no nos estén mirando.

Ingrese a la página de la campaña para realizar un autoexámen y determinar con él cuan contaminado esta usted de esta epidemia.