Linux paquetes sin intenet

Si has instalado paquetes y quieres pasarlo a una maquina que no  tiene acceso a internet
Es necesario tener instalado aptoncd
sudo apt-get install  aptoncd
En la consola ejecutar 
 aptconcd
Elegir la opcion crear
Seleccionar los paquetes que deseas, 
seleccionar boton grabar
Asignas nombre al archivo y elegir el boton aplicar
Para  instalar los paquetes en otra maquina 
debe tener instalado aptoncd (acuerdense de la distro personalizada)
Ejecutar aptoncd en consola
seleccionar restaurar
Boton carga
Seleccionar la ruta del archivo iso
Una vez seleccionada ejecutar el boton restaurar 


Ahora situarse en el directorio
cd /var/cache/apt/archives/
ejecutar ls
y para instalar ejecutar el comando
sudo dpkg -i paquete1  paquete2 dependidencia1 dependdencia2 etc etc etc
este comando instalara todos los paquetes seleccionados

mi propia distro

En este tutorial quiero compartir como hacer nuestra propia distro.
Las distribuciones que hay por default por ejemplo ubuntu, kubuntu etc, solo traen lo necesario, si queremos reproducir musica no se puede por falta del paquete, y bueno las ultimate no me gustan porque pesan mucho y tardan mas en cargar


HERRAMIENTAS
Primero asegurate de tener instalado las herramientas necesarias
sudo aptitude install squashfs-tools genisoimage
Necesitas una imagen iso de la distro que vamos a personalizar, en mi caso utilize ubuntu-9.10-desktop-i386.iso
ORGANIZACION
Para tener una buena organizacion de la informacion he creado una carpeta llamada distro_nueva
mkdir distro_iso
cd distro_iso
mkdir live_cd
cp /media/Diskito/ubuntu-9.10-desktop-i386.iso live_cd/
cd live_cd/
mkdir mnt_iso
EXTRACCION DEL ISO
Extraemos el contenido de la imagen iso, he creado otra carpeta dentro del direcotorio live_cd (mnt_iso) para extraer ahi el contenido
Montamos la imagen iso
sudo mount -o loop ubuntu-9.10-desktop-i386.iso mnt_iso
Extraemos el conternido
mkdir extract_iso
rsync --exclude=mnt_iso/casper/filesystem.squashfs -a mnt_iso extract_iso
EXTRACCION DEL SISTEMA DE ESCRITORIO
Extraemos el systema de escritorio
Extraer el archivo de sistema
sudo unsquashfs mnt_iso/casper/filesystem.squashfs
sudo mv squashfs-root edit


PREPARACION Y CHROOT
Si necesitas conexion a internet dentro del chroot, es recomendable copiar los archivos de configuracion de red en la carpeta contenedora, es recomendable copiar el archivo /etc/apt/sources.list /edit/etc/apt/sources.list
sudo cp /etc/resolv.conf edit/etc/
Dependiendo de tu configuracion tal vez puedas necesitar el archivo hosts
sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
(Estos directorios son importantes montar en tu sistema - si más adelante decides eliminar el directorio edit, asegúrate de desmontar antes de hacerlo, de lo contrario el sistema quedara inutilizable por lo menos temporalmente hasta reiniciar)
Para evitar problemas de configuración regional y con el fin de importar claves GPG
export HOME=/root
export LC_ALL=C


PERSONALIZACION
PREREQUISITOS


Antes de instalar paquetes o actualizarlos es necesario ejecutar lo siguiente
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
TAREAS
Para ver los paquetes instalados por tamaño
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Si eliminas paquetes acuerdate de ejecutar el comando purge
aptitude purge nombre_paquete
LIMPIAR
Asegúrate de quitar todos los archivos temporales que ya no son necesarios, porque el espacio en un CD es limitado. Un ejemplo clásico es descargar archivos de un paquete, que puede ser limpiado con:
aptitude clean
Eliminar archivos temporales
rm -rf /tmp/* ~/.bash_history
si has instalado asegurate de ejecutar
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
Ojo es dentro de chroot
Ahora desmonta (umount) archivos de sistema especiales y salir de chroot
umount /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev
Nota: si el comando "umount /proc" produce un error tratar con "umount-If /proc"
PONIENDO TODO JUNTO
Regenerar manifest
chmod +w extract_iso/mnt_iso/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract_iso/mnt_iso/casper/filesystem.manifest
sudo cp extract_iso/mnt_iso/casper/filesystem.manifest extract_iso/mnt_iso/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract_iso/mnt_iso/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract_iso/mnt_iso/casper/filesystem.manifest-desktop
COMPRIMIR ARCHIVOS DEL SISTEMA
sudo rm extract_iso/mnt_iso/casper/filesystem.squashfs
sudo mksquashfs edit extract_iso/mnt_iso/casper/filesystem.squashfs
Nota algunas versiones marca error con el argumento -nolzma, quitarlo
ELIMINAR EL ARCHIVO MD5 Y GENERARLO DE NUEVO
cd extract_iso/
cd mnt_iso/
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
CREA TU IMAGEN ISO
Aqui debo estar situada en live_cd/extract_iso/mnt_iso
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.10.1-desktop-i386-custom.iso .
Y LISTO, LO UNICO QUE RESTA ES QUE BOTEES DE TU IMAGEN Y LA INTALES O UTILIZES EL LIVE-CD, ES RECOMENDABLE UN USB-LIVE, EN EL PROXIMO POST HABLAREMOS DE ESO


Porque es importante esto, porque tambien puedes crear tu distro con paquetes como el wireshark, nmap, nikto, aptoncd etc.
He ahi lo interesante de software libre
Para los que me conocen tengo la imagen con google chrome, y otros paquetitos interesantes.

Abandonando firefox migrando a google chrome

Retomando la entrada acerca de abrir una pagina web con crontab 
En este lapso me ha gustado más utilizar google-chrome, por su elegancia,
rapidez, etc.


Bien mi página de noticias se abre en firefox y eso me hace seguirlo utilizando
pero eso ha cambiado hoy.
Aunque me he dado cuenta que algunas páginas no las muestra, me gusta mas


Necesitaba saber cual es el proceso para saber como abrirlo desde un script,
se me ocurrio lo siguiente


ls /usr/bin/ | grep google


Listar todo el contenido de /usr/bin y pasarlo por una tuberia en busca de la cadena google y vuala, este es el resultado




google-chrome


Ahora solo falta modificar  el script y quedaría de la sigueinte manera


#!/bin/sh
export DISPLAY=:0
google-chrome http://www.grupoacir.com.mx/multimedia/audio/radio/flash/889noticias.php

¿Es la velocidad más importante que la relevancia?

Hoy les quiero compartir una pregunna interesante para aquellos que nos gusta el desarrollo de aplicaciones web
El siguiente video muestra la opinion de Matt Cutts





Es interesante su propuesta asi que las dejo a su consideración. Si están a favor o difieren de su postura.

Almacenando contraseñas en MySQL


Para fines practicos aquellos que quieran o necesiten almacenar contraseñas en mysql, y que estas esten cifradas, mysql maneja ciertas algoritmos que permiten hacerlo.
La intruccion es la siguiente:

select SHA1('unapalabrasecreta');
select SHA('unapalabrasecreta');
SELECT MD5('unapalabrasecreta'); 

http://www.mysql-hispano.org/page.php?id=44



Script-Crontab



En esta ocasion compartiré como abrir una pagina en linux de manera automática
Hay una herramienta llamada crontab que se encarga de ejecutar tareas a una hora determinada
a mi me gusta escuchar la radio en la mañana asi que una vez que mi máquina se enciende sola, utilizo
crontab para ejecutar el siguiente script

Con el editor de textos vi creo el archivo radio.sh
y escribo lo siguiente (Ojo sin los guiones),es necesario exportar la variable DISPLAY con valor 0:

-----------------------------------------------
#!/bin/sh
export DISPLAY=:0
firefox "http://www.grupoacir.com.mx/multimedia/audio/radio/flash/889noticias.php"

---------------------------------------------

Despues que creo mi archivo, le digo a crontab que ejecute el archivo a las 6:30
Los campos son por orden:

minuto 0-59

hora 0-23

día del mes 0-31

mes 0-12

dia semana 0-7 (0 o 7 indica domingo)


crontab -e

Como es la primera vez me pide el editor de texto deseado, escogi el mas facil (opcion 2)

Dejar un reglon vacio porque algunas veces por eso no se ejecuta, para mas informacion ver la ayuda de crontab (man crontab)
para ver las tareas programadas
crontab -l

Como quiero que se ejecute todos los dias me quedo de la siguiente forma:

30 06 * * * /home/roza/radio.sh


Fuente:  http://dns.bdat.net/documentos/cron/x50.html