sábado, 30 de abril de 2011

log4php

Vamos a hablar de una herramienta que, aunque no uso, es recomendable su uso para la creación de logs (yo los puedo crear de una manera sencilla porque es una aplicación sencilla la que he desarrollado).

Se puede descargar de aquí, como su propio nombre indica es una herramienta para la creación de logs, controlar y depurar nuestros errores.
En este blog podemos ver cómo se ejecuta esta aplicación para que genere nuestros logs.

Existe la misma herramienta para Java, log4j.

viernes, 29 de abril de 2011

Documentación II

En la documentación seguiremos un orden más relacionado con las distribuciones y no con la aplicación, con lo cual seguiremos un esquema diferente al propuesto en la guía anteriormente citada.

El esquema será el siguiente:

  • Anexo I: Plan del proyecto software 
  • Anexo II: Objetivos y alternativas de desarrollo
  • Anexo III: Desarrollo de las distribuciones y pruebas realizadas
  • Anexo IV: Aplicaciones
  • Anexo V: Manual de usuario
  • Bibliografía

Como he dicho daremos más peso al tema de las distribuciones y menos a la aplicación, de la cual sólo hablaremos en el manual de usuario.

jueves, 28 de abril de 2011

Herramientas usadas

Microsoft Word 2007.
GanttProject: http://www.ganttproject.biz/
Blog personal del proyecto: http://distribucioneslinux2011.blogspot.com

Bibliografía

Manuales de usuario y de programación de la shell en Linux: http://es.tldp.org/htmls/manuales.html
Guías prácticas de Unix, comandos básicos y operaciones de comandos: Apuntes de Sistemas Operativos de la carrera, de segundo curso.
Mksquashfs: http://manpages.ubuntu.com/manpages/hardy/man1/mksquashfs.1.html
Cloop-utils: http://manpages.ubuntu.com/manpages/dapper/man1/create_compressed_fs.1.html
Chroot: http://manpages.ubuntu.com/manpages/maverick/es/man2/chroot.2.html
Ayuda del propio Sistema Operativo: man, --help, --h…
Foros y blogs de Ubuntu, Fedora, Knoppix y Debian:
http://meth.nireblog.com/post/2006/12/06/remasterizar-el-live-cd-de-ubuntu
http://forums.fedoraforum.org/showthread.php?t=174916
http://www.linuxquestions.org/questions/linux-general-1/how-to-use-knoppix-as-a-chroot-754883/
http://lists.fedoraproject.org/pipermail/livecd/2008-July/004523.html
http://ubuntuforums.org/showthread.php?t=848693
http://www.linux-magazine.es/issue/36/029-033_CloopLM36.pdf
http://lucas.hispalinux.es/Estandares/fsstnd12.html
http://www.linuxjournal.com/article/7246
http://tuxfiles.wordpress.com/2010/04/25/9-formas-distintas-para-crear-un-linux-personalizado-dependiendo-la-distro/
http://www.alcancelibre.org/staticpages/index.php/como-dpkg
http://hatteras.wordpress.com/2009/01/24/
http://www.taringa.net/posts/linux/5221169/Instalar-paquetes-en-pc_s-sin-Internet-en-Ubuntu.html
http://ce.azc.uam.mx/profesores/oalvarado/linux/remasterDebian.html
Distribuciones relacionadas: http://www.frozentech.com/content/livecd.php
Proyecto ILEX: http://www.proyectoilex.org
Oficina del Software Libre de la ULPGC, Las Palmas de Gran Canarias: http://www.softwarelibre.ulpgc.es/
Página oficial del S.O. libre Debian: http://www.debian.org
El repositorio de aplicaciones libres más grande del mundo: http://sourceforge.net/
Universidad de Burgos: http://www.ubu.es
PHP y Apache: apuntes de Ampliación de Sistemas Operativos de la carrera, asignatura de tercer curso.
Permisos y Apache:
http://www.socinfo.com/ubuntu/apache/permisos
http://exain.wordpress.com/2007/11/24/execute-system-commands-via-php/
Ficheros en PHP: http://www.programacion.com/articulo/trabajando_con_php_y_ficheros_170
Shell_exec() php: http://php.net/manual/es/function.shell-exec.php
Otras funciones PHP: http://php.net/manual/es/
Formularios en PHP:
http://www.webtaller.com/manual-php/formularios_PHP.php
http://phpahora.com.ar/formularios-html-php/formularios-con-textarea/
http://www.openalfa.com/index.php/php/proceso-de-formularios
http://www.uhu.es/sic/servicios/hospedajeweb/minimanual_formularios.pdf
http://www.forosdelweb.com/f18/editar-archivo-txt-online-con-php-textarea-430501/
http://www.htmlcodetutorial.com/help/archive.php/o_t__t_9331__save-html-textarea-to-.txt-file.html
HTML:
http://htmlhelp.com/es/reference/css/color-background/
http://www.cristalab.com/tutoriales/configurar-tu-web-para-usar-utf-8-c42532l/
http://www.mailxmail.com/curso-html-principiantes/formato-html
http://www.jmarshall.com/easy/html/spanish/
http://www.jmarshall.com/easy/html/spanish/
• Ayuda de editores de HTML.
Otros proyectos.
Gracias a la libre información de la Web, a la que contribuimos todos.

jueves, 14 de abril de 2011

Documentación I

La ardua tarea de documentar, voy a tomar como referencia esta guía que me han dejado, ya sabéis, gracias a la libre distribución de información por la red, y yo ayudo a ello.


Basándonos en este documento dividiremos nuestra memoria en dos partes y la segunda parte se dividirá en cinco anexos, con sus correspondientes índices.

Vamos a ello...

miércoles, 13 de abril de 2011

Script de Fedora

#!/bin/bash
#ejecutar poniendo . creaFedora "directorio"
#repositorios: etc/apt/sources.list
echo instalar programas necesarios squash y mkiso
sudo apt-get -y install  mkisofs squashfs-tools lzma
#http://fedoraproject.org/es/
echo descargar iso fedora
sudo wget -o fedora.iso 'http://download.fedoraproject.org/pub/fedora/linux/releases/14/Live/i686/Fedora-14-i686-Live-Desktop.iso'
sudo rm cdlive.iso
echo Montar la iso en /mnt
sudo mount -o loop ./fedora.iso /mnt
echo Copiar los archivos a la carpeta /mylive
sudo cp -dpR /mnt ./mylive/
echo Desmontar la iso
sudo umount /mnt
sudo unsquashfs ./mylive/LiveOS/squashfs.img
sudo mkdir chroot
sudo mount -o loop,rw ./squashfs-root/LiveOS/ext3fs.img ./chroot
#------------------------------------------------------------------------pr1
echo Empezar a realizar las modificaciones
echo descargar paquetes
sudo cp ./scripts/paquetes.download.sh ./chroot/paquetes
sudo cp ./images/fondo-fedora.png ./chroot/usr/share/backgrounds/laughlin/default/standard/laughlin.png
echo ejecuto \chroot
sudo cp /etc/resolv.conf ./chroot/etc
sudo cp /etc/hosts ./chroot/etc
sudo cp ./repositorios/Fedora ./chroot
echo instalar paquetes
cd ./chroot
sudo chroot ./ mount -t devpts none /dev/pts
sudo mount --bind /dev /dev
sudo chroot ./ mount -t proc none /proc
sudo chroot ./ mount -t sysfs none /sys
sudo chroot ./ yum -y install wget
sudo chroot ./ sh ./Fedora
sudo chroot ./ yum -y update
sudo chroot ./ sh ./paquetes
sudo chroot ./ yum -y upgrade
sudo chroot ./ yum -y clean
sudo chroot ./ umount /proc /sys /dev/pts 
sudo umount /dev
cd ..
sudo umount chroot
echo Crear el squashfs
sudo mksquashfs ./squashfs-root ./squashfs.img
sudo mkdir ./build
sudo rsync -av --exclude='squashfs.img' ./mylive ./build
sudo mv ./squashfs.img ./build/mylive/LiveOS
#------------------------------------------------------------------------pr2
echo Hacer la iso:
sudo mkisofs -J -R -o cdlive.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin -boot-load-size 4 -boot-info-table -V "Fedora-14-i686-Live-KDE" ./build/mylive/
echo Y ya esta listo...
sudo rm -Rf squashfs-root
sudo rm -Rf chroot
sudo rm -Rf build
sudo rm fedora.iso
sudo rm -Rf mylive

sábado, 9 de abril de 2011

Linux cumple hoy 20 años

Se cumplen 20 años de la creación del mayor distribuidor de software libre del mundo, Linux. Su éxito en la actualidad es total: es utilizado en superordenadores, es la base del sistema operativo Android, es un actor importante en el 'cloud computing' y algunos organismos públicos ya han puesto en marcha soluciones informáticas basadas en Linux.

Leer más...

viernes, 8 de abril de 2011

Reconocer eñes y tildes en HTML

La línea mágica:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Ejemplo:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=
UTF-8">
<title>Insert title here</title>
</head>
<body>
...
</body>
</html>

miércoles, 6 de abril de 2011

Obtener la hora en php

Sólo tenemos que poner esto en nuestro código:

$hora = getdate(time());
print( $hora["hours"] . ":" . $hora["minutes"] . ":" . $hora["seconds"] );

Así de sencillo...

También hay más opciones.

lunes, 4 de abril de 2011

Añadir repositorios

Repositorios en Fedora:
Tienen el siguiente formato, cada uno es un archivo, ejemplo:
Crear el archivo /etc/yum.repos.d/fedora-firefox4.repo con el siguiente contenido:
[fedora-firefox4]
name=Firefox 4 Web Browser
baseurl=http://repos.fedorapeople.org/repos/spot/firefox4/fedora-$releasever/$basearch/
enabled=1
gpgcheck=0
Una posible solución es bajarnos directamente el archivo de texto ya creado y ponerlo en el lugar correspondiente:
wget 'http://repos.fedorapeople.org/repos/spot/firefox4/fedora-firefox4.repo' -O etc/yum.repos.d/fedora-firefox4.repo
**previamente haremos un yum –y install wget
Y luego activarlo:
yum –y update
Para luego instalarlo:
yum install firefox4

Repositorios en Debian:
Es añadir la línea  deb http://xxx stable non-free a nuestro /etc/apt/sources.list, y luego hacer sudo apt-get update.

Empezando a cambiar Fedora

Ya tengo el script, es la única distribución que me queda por probar, a ver como sale.

Cambios de esta distribución: usa la herramienta de empaquetado YUM, no APT; tiene paquetes RPM, no deb y sus repositorios están en /etc/yum.repos.d/xxx.repo.
Teniendo esto en cuenta, no debería de tener problemas.

domingo, 3 de abril de 2011

Script de Debian Lenny

#!/bin/bash
#debian lenny 5
#ejecutar  con paquetes.downlod en el directorio
#ejecutar poniendo . creaDebian.sh
#repositorios: etc/apt/sources.list
echo instalar programas necesarios squash y mkiso
sudo apt-get -y install live-helper squashfs-tools dpkg-dev
#http://ce.azc.uam.mx/profesores/oalvarado/linux/remasterDebian.html
#http://live.debian.net/cdimage/release/current-oldstable/i386/iso-cd/
sudo rm cdlive.iso
echo descargar iso 
sudo wget -o debian.iso 'http://live.debian.net/cdimage/release/current-oldstable/i386/iso-cd/debian-live-508-i386-gnome-desktop.iso'
echo Montar la iso en /mnt
sudo mount -o loop ./debian.iso /mnt
echo Copiar los archivos a la carpeta /mylive
sudo cp -dpR /mnt ./mylive/
echo Desmontar la iso
sudo umount /mnt
echo Montar el fichero filesystem.squashfs
sudo unsquashfs ./mylive/live/filesystem.squashfs
#----------------------------------------------------pr1
echo Empezar a realizar las modificaciones
sudo cp ./scripts/paquetes.download.sh ./squashfs-root/paquetes #copio para utilizar posteriormente
sudo cp ./images/background-color.png ./squashfs-root/usr/share/images/desktop-base/moreblue-orbit-wallpaper.svg #cambio fondo de escrritorio y splash
echo ejecuto \chroot
sudo cp /etc/resolv.conf ./squashfs-root/etc
sudo cp /etc/hosts ./squashfs-root/etc
sudo cp ./repositorios/Debian ./squashfs-root/etc/apt/sources.list
echo instalar paquete
cd ./squashfs-root
sudo chroot ./ LANG=es_ES.utf8
sudo mount --bind /dev /dev
sudo chroot ./ mount -t proc none /proc
sudo chroot ./ mount -t sysfs none /sys
sudo chroot ./ mount -t devpts none /dev/pts
sudo chroot ./ apt-get -y update #actualizo repositorios
sudo chroot ./ sh ./paquetes
sudo chroot ./ apt-get -y upgrade
sudo chroot ./ update-java-alternatives -s java-6-sunecho 'JAVA_HOME="/usr/lib/jvm/java-6-sun"' | tee -a /etc/environment
sudo chroot ./ umount /proc /sys /dev/pts 
sudo umount /dev
cd ..
#echo Crear el squashfs
echo Crear el squashfs
sudo rm -f ./mylive/live/filesystem.squashfs
sudo mksquashfs ./squashfs-root ./mylive/live/filesystem.squashfs
#------------------------------------------------------------------pr2
echo Hacer la iso:
sudo mkisofs -pad -r -V "Debian Live" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o cdlive.iso ./mylive
echo Y ya esta listo...
sudo rm -Rf squashfs-root
sudo rm -Rf mylive
sudo rm ./scripts/paquetes.download.sh
sudo rm ./debian.iso

El cd live da error al bootear, no se por qué...

Prueba: Ubuntu Maverick


Prueba 2 de Ubuntu.

Dado que la primera no anoté el tiempo, voy a repetir otra prueba.

value 1 = sudo apt-get -y install gcc #gcc
value 2 = sudo apt-get -y install sun-java6-jdk #java
value 3 = sudo apt-get -y install dia #dia
value 4 = sudo apt-get --force-yes -y install skype

Tiempo: Inicio: 20,18 h Fin: 20,37 h *Total: 34 minutos
Tamaño: Inicio: 693 Megas Fin: 768 Megas

Vemos que el sistema se ha instalado correctamente, por lo tanto el resultado es satisfactorio.

Día de pruebas: Knoppix y Debian Lenny

Prueba de Knoppix.

Podemos darle el idioma español modificando en /boot/isolinux.cfg lang=en por lang=es, o poniendo al inicio de booteo lang=es.
Dentro de una media de tiempo de 40 minutos, es la distribución que más tarda, 30 minutos más.
La distribución sí que se ha cambiado a español, con lo expuesto anteriormente.

value 1 = sudo apt-get -y install gcc #gcc
value 2 = sudo apt-get -y install dia #dia
value 3 = sudo apt-get -y install samba #samba
value 4 = sudo apt-get --force-yes-y install skype #skype ->error, falta espacio.

Tiempo: Inicio: 18,06 h Fin: 18,36 Total: 30 minutos
Tamaño: Inicio: 745 Megas Fin: 807 Megas
Se ha instalado todo menos Skype, faltaba un espacio en el comando de instalación.
Luego lo he podido instalar a mano con sudo apt-get install skype, con lo cual si que hacemos lo esperado.


Prueba de Debian Lenny.

value 1 = sudo apt-get -y install gcc #gcc
value 2 = sudo apt-get -y install openjdk-6-jdk openjdk-6-jre #java
value 3 = sudo apt-get -y install gimp #gimp
value 4 = sudo apt-get --force-yes -y install skype #skype

Tiempo: Inicio: 18,50 h Fin: 19,07 h *Total: 17 minutos
Tamaño: Inicio: 693 Megas Fin: 861 Megas

Podemos ver que se realizan correctamente las instalaciones pertinentes, pero al bootear el cd da error y no logro saber por qué, siguiendo todos los pasos pertinentes, tiene que ser un parámetro del mkisofs porque lo demás es igual en todas las distribuciones, esperemos en un futuro encontrar solución.

Entrega de proyectos

sábado, 2 de abril de 2011

Script de Knoppix

#!/bin/bash
#ejecutar desde directorio personal /home/"directorio", con paquetes.download en dicho directorio
#ejecutar poniendo . creaKnoppix "directorio"
#repositorios: etc/apt/sources.list
sudo rm -Rf cdlive.iso
sudo apt-get -y install cloop-utils mkisofs
echo descargar iso de Knoppix
sudo wget -o KNOPPIX.iso 'ftp://ftp.uni-kl.de/pub/linux/knoppix/KNOPPIX_V6.4.3CD-2010-12-20-EN.iso'
echo Montar la iso en /mnt
sudo mount -o loop ./KNOPPIX.iso /mnt
echo Copiar los archivos a la carpeta /mylive
sudo cp -dpR /mnt ./mylive/
echo Desmontar la iso
sudo umount /mnt
sudo touch cloop.iso #creo cloop.iso para hacer la extraccion...
echo extraer sistema de ficheros...
sudo extract_compressed_fs ./mylive/KNOPPIX/KNOPPIX ./cloop.iso
echo Montar la cloop.iso en /mnt
sudo mount -o loop cloop.iso /mnt
echo Copiar los archivos a la carpeta /mycloop
sudo cp -dpR /mnt ./mycloop/
echo Desmontar la iso
sudo umount /mnt
#----------------------------------------------------pr1
echo Empezar a realizar las modificaciones
sudo cp ./scripts/paquetes.download.sh ./mycloop/paquetes #copio para utilizar posteriormente
sudo cp ./images/background.png ./mylive/KNOPPIX/background.png
echo ejecuto \chroot
sudo cp /etc/resolv.conf ./mycloop/etc
sudo cp /etc/hosts ./mycloop/etc
sudo cp ./repositorios/ubuntu ./squashfs-root/etc/apt/sources.list
echo instalar paquetes
cd ./mycloop
sudo mount --bind /dev /dev
sudo chroot ./ mount -t proc none /proc
sudo chroot ./ mount -t sysfs none /sys
sudo chroot ./ mount -t devpts none /dev/pts
sudo chroot ./ apt-get -y update #actualizo repositorios
sudo chroot ./ sh ./paquetes #instala paquetes
sudo chroot ./ apt-get -y upgrade
sudo chroot ./ apt-get -y clean
sudo chroot ./ umount /proc /sys /dev/pts 
sudo umount /dev
cd ..
#--------------------------------------------------------------pr2
echo Crear el Cloop
sudo rm ./mylive/KNOPPIX/KNOPPIX
sudo rm cloop.iso
sudo mkisofs -o cloop.iso -R -U -V "KNOPPIX.net filesystem" -publisher "KNOPPIX www.knoppix.net" -hide-rr-moved -cache-inodes -no-bak -pad ./mycloop
sudo create_compressed_fs cloop.iso ./mylive/KNOPPIX/KNOPPIX
echo crear el cd
sudo  mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o ./cdlive.iso ./mylive
sudo rm -Rf mycloop
sudo rm -Rf mylive
sudo rm -f cloop.iso
sudo rm -Rf KNOPPIX.iso

'Boot error' con Debian Lenny

Al hacer el mismo proceso que con Ubuntu, esta distribución me da error al bootear, no se por qué; voy a continuar con Knoppix a ver que tal...

viernes, 1 de abril de 2011

Sistemas Cloop y Squashfs

Existen dos opciones, el sistema Cloop y el sistema Squashfs. Ambos permiten tener un sistema de ficheros comprimido en un dispositivo de bloques de sólo lectura, y acceder a él de forma transparente.
Ambos tienen el mismo propósito, pero se diferencian en su funcionamiento.
Hay que señalar que el sistema de ficheros comprimido que proporcionan es de sólo lectura, y que una vez que se ha creado, no es posible modificarlo, dado que emplean un modo particular de agrupar los bloques. 

Agregar nuevas distribuciones a la aplicación.

Primero tendremos que hacer un primer script que es el que se encarga de bajar la imagen original, descomprimirla, ejecutar chroot y finalmente hacer nuestro cd bootable con mkisofs. Lo guardaremos en la carpeta scripts de la aplicación.
Este script será el encargado de ejecutar todos los scripts que generemos, habrá uno de paquetes (con comandos para su correcta instalación) específico de cada distro en esta misma carpeta.
Luego también llamará al fichero con los repositorios, en la carpeta repositorios, un fichero por distro, cada fichero será el que trae cada distro por defecto (sources.list) más lo que hayamos añadido.

Esta tarea se verá completada si añadimos el “pedazo” de código a nuestra aplicación: index.php, selección.php, componer.php, anadir-repo.php y anadir-paquete.php.

Y no nos olvidemos de dar los permisos adecuados, vital.

Script para personalizar Ubuntu

Esta es la parte sucia del proyecto, ya que no se ve. Pero sin ella nuestra aplicación sería inútil.


#!/bin/bash
#ubuntu maverick
#ejecutar paquetes.downlod en el directorio
#ejecutar poniendo . creaUbuntu 
#repositorios: etc/apt/sources.list
echo instalar programas necesarios squash y mkiso
sudo apt-get -y install mkisofs squashfs-tools
#http://www.ubuntu.com/desktop/get-ubuntu/download
echo descargar iso ubuntu
#sudo wget -O ubuntu.iso 'http://ftp.dat.etsit.upm.es/ubuntu-releases/maverick/ubuntu-10.10-desktop-i386.iso'
echo Montar la iso en /mnt
sudo mount -o loop ./ubuntu.iso /mnt
echo Copiar los archivos a la carpeta /mylive
sudo cp -dpR /mnt ./mylive/
echo Desmontar la iso
sudo umount /mnt
echo Montar el fichero filesystem.squashfs
sudo unsquashfs ./mylive/casper/filesystem.squashfs
sudo cp ./images/blankUbuntu.pcx ./mylive/isolinux/blank.pcx
#----------------------------------------------------pr1
echo Empezar a realizar las modificaciones
sudo cp ./scripts/paquetes.download.sh ./squashfs-root/paquetes #copio para utilizar posteriormente
sudo cp ./images/ubuntu-splash.png ./squashfs-root
sudo cp ./images/warty-final-ubuntu.png ./squashfs-root
echo ejecuto \chroot
sudo cp /etc/resolv.conf ./squashfs-root/etc #habilito configuracion de red
sudo cp /etc/hosts ./squashfs-root/etc
sudo cp ./repositorios/Ubuntu ./squashfs-root/etc/apt/sources.list 
echo instalar paquetes
cd ./squashfs-root
#cambio fondo de escrritorio
sudo chroot ./ cp ./warty-final-ubuntu.png /usr/share/backgrounds/
sudo chroot ./ echo "proc /proc proc defaults 0 0">>/etc/fstab
sudo mount --bind /dev /dev
sudo chroot ./ mount -t proc none /proc
sudo chroot ./ mount -t sysfs none /sys
sudo chroot ./ mount -t devpts none /dev/pts
sudo chroot ./ apt-get -y install build-essential gdb
sudo chroot ./ add-apt-repository ppa:sun-java-community-team/sun-java6
sudo chroot ./ add-apt-repository ppa:n-muench/programs-ppa
sudo chroot ./ apt-get -y update #actualizo repositorios
sudo chroot ./ sh ./paquetes #instala paquetes
#sudo chroot ./ apt-get -y upgrade
sudo chroot ./ update-alternatives --config java
sudo chroot ./ apt-get -y clean
sudo chroot ./ umount /proc /sys /dev/pts 
sudo umount /dev
cd ..
echo Crear el squashfs
sudo rm -f ./mylive/casper/filesystem.squashfs
sudo mksquashfs ./squashfs-root ./mylive/casper/filesystem.squashfs
#------------------------------------------------------------------pr2
echo Hacer la iso:
sudo mkisofs -J -R -o cdlive.iso -no-emul-boot -boot-info-table -b isolinux/isolinux.bin ./mylive/
echo Y ya esta listo...
sudo rm -Rf squashfs-root
sudo rm -Rf mylive
sudo rm filesystem.squashfs
sudo rm ./scripts/paquetes.download.sh
sudo rm ./ubuntu.iso

Como veis la iso final se llama cdlive. El script paqutes.download.sh contiene comandos para instalar los paquetes y esos paquetes son la selección de otros, en otro script.