viernes, 19 de diciembre de 2008

Zypper: Cómo actualizar a openSUSE 11.1 desde 11.0

Con el lanzamiento del nuevo suse el 18 de Diciembre, tenemos varias opciones para actualizar desde nuestro sistema antiguo. Podemos descargarnos las imágenes en dvd o cd o bien hacer una actualización en linea usando el zypper. Este proceso se denomina upgrade . En caso de realizar una actualización en linea, y para preever caidas de la conexión de red mientras se hace (lo que nos dejaria un sistema inconsistente), realizaremos primero la descarga de todos los paquetes que necesitamos, y posteriormente la actualización.

Script de actualización desde opensuse 11.0 a 11.1, usando zypper y cacheando los archivos a descargar por si se cae la conexión durante el proceso. Como mínimo habria que añadir esos 3 repositorios, pero es probable que añadiendo el resto de repositorios que usemos habitualmente (packman, vlc, mozilla ...) en sus versiones 11.1 funcione igual de bien.
1) Crear archivo upgrade11.1.sh
2) Copiar lo siguiente:
#!/bin/sh
#
# Copyright (C) 2008 dieguz2
# License: GNU GPL v3
# http://dieguz2.blogspot.com/
# Upgrade Opensuse 11.0 to 11.1 removing old repositories, using zypper dup
# with an offline cache
#change/delete old repo
[ -d /etc/zypp/repos.d ] && mv /etc/zypp/repos.d /etc/zypp/repos.d.old
#delete zypper cache
zypper clean
#add 3 most important repositories
zypper ar http://download.opensuse.org/distribution/11.1/repo/oss/ repo-oss
zypper ar http://download.opensuse.org/distribution/11.1/repo/non-oss/ repo-non-oss
zypper ar http://download.opensuse.org/update/11.1/ repo-update
#enable cache (k = keep-packages) (t =remote)
zypper mr -tk
#disable packet refresh (a = all) (R --no-refresh)
zypper mr -aR
#manually refresh
zypper ref
#Update zypper
zypper in zypper
#we make a dummy upgrade to cache files (D –dry-run)
#do upgrade
(zypper dup -D) && (zypper dup) && (zypper clean)

3) Ejecutar como root: chmod u+x upgrade11.1.sh
4) Ejecutar el archivo: ./upgrade11.1.sh
Link de interés:
- How survive zypper dup on system with bad internet connection - Como sobrevivir a un zypper dup con mala conexión
- Repositorios OpenSuse 11.1

jueves, 18 de diciembre de 2008

Opensuse: cambiar el gestor de ventanas y habilitar o deshabiliar el autologin

Para cambiar el gestor de ventanas (xdm / gdm /kdm):
1) editar el archivo de configuración
vi /etc/sysconfig/displaymanager

2) Modificar la variable DISPLAYMANAGER colocando el desktop manager que queramos (gdm = gnome; kdm = kde ; xdm= x window)
DISPLAYMANAGER="gdm"

Para habilitar el autologin, y que no pida el usuario para entrar a X windows editatemos el mismo archivo. Modificaremos la variable añadiendo el usuario con el que se accederá sin preguntarle la contraseña :
DISPLAYMANAGER_AUTOLOGIN="dieguz2"

Si queremos que nuestro sistema arranque por defeto en entorno gráfico tendremos que cambiar el runlevel inicial del sistema tal y como se indica aquí : "Cambiar runlevel del arranque"

sábado, 13 de diciembre de 2008

rm : argument list too long

A veces cuando queremos borrar archivos, aplicamos el comando rm. En directorio con muchos archivos (rm *spam o de forma genérica rm * ) puede salirnos el mensaje de error "argument list too long". Para solucionar eso usaremos el siguiente comando:
find . -name '*spam' | xargs rm

De esta manera eliminaremos todos los ficheros que deseemos independientemente del número. En el ejemplo que acaben en *spam (ej archivo.spam, loqueseaspam ...).

Si el nombre de los archivos tiene espacios el comando anterior no funcionará, tendremos que usar el siguiente comando que es más genérico:
find . -name '*spam' | xargs -i rm {}

donde el -i indica que se sustituya {} por el nombre del archivo.

Otra forma de hacerlo:
find . -iname "*spam" -print0 | xargs -0 rm

Con el -print0 la salida de find irá con el carácter null, en lugar del salto de línea que usa por defecto. Con el parámetro -0 indicamos que xargs considere como separador el carácter null, en lugar del espacio o el salto de línea.

Otro ejemplo del uso de find y grep para buscar archivos que contienen una cadena de texto sin usar pipes:
find . -exec grep -H -n 'textoabuscar' {} \;

Otro ejemplo útil del uso de find y xargs, puede ser descomprimir archivos rar con unrar:
find . -iname "*part1.rar" | xargs -i unrar x {}

miércoles, 10 de diciembre de 2008

Java: crear applet en NetBeans 6.0 y ejecutarlo

Está es un pequeño tutorial / guia que explica cómo crear un applet en Netbeans ( corriendo en Linux Opensuse). Para programar un applet en NetBeans, suponiendo que partimos de un proyecto en blanco haremos lo siguiente para la creación,

Creación de proyecto (opcional si ya estamos trabajando en un proyecto existente no hace falta)
1) File / New Proyect (o Ctrl Mayúscula N)
2) Seleccionamos, en categoria (izquierda) "Java" y en projects (derecha) "Java Class Library"
3) Ponemos el nombre y la ruta que nos de la gana y pulsamos aceptar.

Creación de un Package (opcional si no queremos meterlo en un paquete o ya estamos trabajando con un proyecto que lo tiene)
1) Pulsamos File / New File (o Ctrl N)
2) Seleccionamos, en categoría (izquierda) "Java" y en projects (derecha) "Java package"
3) Fijamos el nombre del packete, por ejemplo "newpackage"

Creación del applet(sin Gui)
1)Pulsamos File / New File (o Ctrl N)
2) Seleccionamos, en categoria (izquierda) "Java" y en projects (derecha) "Applet" (o "Japplet" según necesitemos)
3) Fijamos el nombre de la clase y el resto de los datos.
4) Rellenamos el applet con el código que necesitemos, por ejemplo:


package newpackage;

import java.applet.Applet;
import java.awt.Graphics;

public class NewApplet extends Applet {
public void paint(Graphics g) {
g.drawString("Hola Mundo!Hello World!", 60, 60);
}
}

Creación del applet con GUI
1)Pulsamos File / New File (o Ctrl N)
2) Seleccionamos, en categoria (izquierda) "Swing GUI Forms" o "AWT GUI forms" y en projects (derecha) "JApplet Form" si usamos Swing o "Applet Form"
3) Fijamos el nombre de la clase y el resto de los datos.
4) Nos saldrá el editor de formularios del NetBeans, en el que podremos colocar los botones, checkbox y resto de elementos que necesitemos.


Ejecución del applet
1) Con el archivo que contiene el applet abierto, pulsamos Mayúscula F6 (Run File) para ejecutar el appletviewer.
2) Alternativamente podemos ir a la pestaña de "Projects" (a la izquierda en el editor), hacer click derecho sobre el archivo que contiene el applet y pulsar "Run file".

Para más información consultar la documentación interna del netbeans ( F1 )