martes, abril 02, 2013

Virtualbox para un Linux con Kernel 2.6.38-2-686-bigmem

Después de mucho tiempo sin escribir, creo que es bueno retomar algunos apuntes, ya saben, por sí se me olvida ;-)

En una serie de equipos PC recién adquiridos en la oficina, y que vienen con Canaima  GNU/Linux preinstalado, necesitamos virtualizar el SO M$ Windows XP (sí, el viejo XP).

Canaima GNU/Linux V-3.0 con actualizaciones a la fecha, que incluyen:
$ uname -r
2.6.38-2-686-bigmem

$ aptitude show gcc-4.4
Paquete: gcc-4.4  
Nuevo: sí
Estado: instalado
Instalado automáticamente: no
Versión: 4.4.6-7

con lo cual, el virtualbox que viene por defecto en los repos no funciona.
Googleando un poco, encontré [0] que instalando la versión 4 de virtualbox, es suficiente y funciona perfectamente... claro! ahí no dice va a funcionar con el kernel y compilador en cuestión! tuve que probar!
De manera que:
Añadir en el repositorio (sources.list)
deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free

Agregar la llave pública:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

Actualizar:

aptitude update

Instalar:

aptitude install dkms
aptitude install virtualbox-4.0

Listo! ahora, sólo faltaría agregarlo al menú ya que ésta instalación no lo hace.

Pendientes,

viernes, agosto 03, 2012

lunes, noviembre 01, 2010

Actualizar desde postgresql-8.1 a postgresql-8.3

Cosas de cosas... en la oficina tenemos un servidor que estaba en etch y bueno, luego de revisar que tanto tenía funcionando, tomar la decisión... lo más importante es el servidor Postgresql así que a actualizarlo!

De dónde saqué cómo hacerlo? pues, el aptitude muy completo me lanzó:

Con lo que le pregunté a Google y me devolvió, entre otras cosas[0]:

Primeramente debe instalar las últimas versiones de los paquetes (postgresql-8.3 y postgresql-client-8.3)
# aptitude install postgresql-8.3
Tenga en cuenta que la instalación de postgresql-8.3 creará automáticamente un clúster por omisión 8.3/main. Tiene que borrar el clúster 8.3 existente
# pg_dropcluster --stop 8.3 main
Luego, necesita actualizar el clúster 8.1/main a 8.3
# pg_upgradecluster 8.1 main
Posteriormente, elimina el clúster 8.1/main después de actualizar los clústers que tenga.
# pg_dropcluster 8.1 main
Por último, elimina los paquetes postgresql-8.1 y postgresql-client-8.1
# aptitude purge postgresql-8.1 postgresql-client-8.1

Gracias gente!


[0]http://glosario-x.blogspot.com/2009/11/actualizar-desde-postgresql-81.html

viernes, octubre 01, 2010

Montando un Multisitio web con Drupal

Montando un Multisitio web con Drupal - séptima parte

Un multisitio es una características de algunos CMS que permiten crear varios sitios distintos utilizando código en forma compartida, y por ende, un mismo núcleo o base del CMS.[1]

Es así como podemos tener varios sitios con una administración más cómoda y sencilla. Claro que cada sitio puede tener sus propios temas y módulos, compartir unos ya existentes en el sitio por defecto... sí lo hay.

El proceso que describiremos será para un nuevo sitio, dentro de una instalación de drupal ya en funcionamiento, pero que podrá repetirse para sucesivos nuevos sitios.

Vale decir que estos pasos llegan gracias al valeroso aporte de ilo a través del irc de drupal-es en freenode ;-) quien amablemente me pidió que nombre a documentadosDOTcom[2]

Prerequesitos:
  • Linux
  • un sitrio con Drupal funcionando
La receta:
  • editar el /etc/hosts y añadir: 127.0.0.1 prueba
  • ir a: cd drupal/sites
  • crear el directorio: mkdir prueba
  • copiar: default/default-settings.php prueba/
  • copiar prueba/default-settings.php prueba/settings.php
  • en el navegador, ir a http://prueba/drupal

[1]http://cuencodigital.com/articulos/multisitios_en_drupal.html
[2]http://www.documentados.com/

viernes, julio 02, 2010

crosstab para consultas de tablas cruzadas

Esta no le he necesitado aún, pero me puse a revisarla para ver qué tal funciona y ver sí luego se le puede sacar provecho.

La documentación oficial[0] habla por sí sola, sobre lo que se quiere. hacerla funcionar no es complicado, pero tiene su engaño.

Lo que se tiene:

SELECT est_002::text, agri02_002::text, count(*)::numeric
FROM consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002;
est_002 | agri02_002 | count
----------+------------------------+-------
Mérida | CACAO | 83
Mérida | CAFE | 169
Mérida | CAÑA | 68
Mérida | CEREALES Y LEGUMINOSAS | 421
Mérida | FRUTALES | 746
Mérida | HORTALIZAS | 1277
Mérida | ORNAMENTALES | 41
Mérida | RAICES Y TUBERCULOS | 484
Táchira | CACAO | 12
Táchira | CAFE | 29
Táchira | CAÑA | 1
Táchira | CEREALES Y LEGUMINOSAS | 310
Táchira | FRUTALES | 209
Táchira | HORTALIZAS | 451
Táchira | RAICES Y TUBERCULOS | 222
Trujillo | CAFE | 26
Trujillo | CAÑA | 20
Trujillo | CEREALES Y LEGUMINOSAS | 97
Trujillo | FRUTALES | 174
Trujillo | HORTALIZAS | 361
Trujillo | RAICES Y TUBERCULOS | 127
Lo que se quiere:

est_002 |CACAO |CAFE |CAÑA
Mérida |83 |169 |68
Táchira |12 |29 |1
Trujillo | |26 |20
con ésta consulta verifico cuántas columnas tendré:
SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002, ya que luego voy a necesitar esa información para definir la salida.

SELECT est_002, agri02_002, count(*)::numeric

Acá defindo, como primer campo, la columna pivote, el segunda campo, serán las columnas, y el tercer campo, los valores a rellenar en la tabla.

Acá defino as columnas de salida en la tabla:
AS lista(estado text, renglon1 text, renglon2 text, renglon3 text, renglon4 text, renglon5 text, renglon6 text, renglon7 text, renglon8 text)

primer campo, el pivot, los demás serán tantos como me devuelva la consulta con el DISTINCT.

De esta amnera, la consulta completa queda:
SELECT * FROM public.crosstab
(
'SELECT est_002, agri02_002, count(*)::numeric FROM consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002',
'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002'
) AS lista(estado text, renglon1 text, renglon2 text, renglon3 text, renglon4 text, renglon5 text, renglon6 text, renglon7 text, renglon8 text);

y devuelve:
estado | renglon1 | renglon2 | renglon3 | renglon4 | renglon5 | renglon6 | renglon7 | renglon8
----------+----------+----------+----------+----------+----------+----------+----------+----------
Mérida | 83 | 169 | 68 | 421 | 746 | 1277 | 41 | 484
Táchira | 12 | 29 | 1 | 310 | 209 | 451 | | 222
Trujillo | | 26 | 20 | 97 | 174 | 361 | | 127
(3 filas)



[0]http://www.postgresql.org/docs/8.3/interactive/tablefunc.html