Archivo de la categoría ‘Windows’

Instaladores

Viernes, 27 de Febrero de 2009

Una parte muy importante de nuestros programas de escritorio, y a los que muy poca gente le hecha cuenta es el instalador que vamos a utilizar. La importancia del instalador en nuestros programas en muy grande, puesto que no sirve de nada tener el mejor programa del mundo si luego la instalación es muy complicada. Podéis ver la importancia de ésto en Linux, las distribuciones con más aceptación por la gente que no entiende de programación son Ubunto (y derivados) y SuSe (y derivados) puesto que son las que han realizado mayor esfuerzo en hacer programas que faciliten la instalación de las fuentes sin la necesidad de paquetes dependencias, …, cosa que ha hecho que las demás distribuciones de Linux trabajen en este camíno, facilitar la distribución de los programas.

En este artículo vamos a ver instaladores para Windows, puesto que por ahora no he programdo para otra plataforma, todavía nadie me ha pedido software para Linux y para Mac, que también tienen sus instaladores.

NSIS (Nullsoft Scriptable Install System) [1]

Este instalador, tal y como dice su nombre, fue creado por la empresa Nullsoft (la misma que creó el WinAmp). Para realizar el instalador hay que hacer un pequeño script. La sintaxis no es muy complicada. Este es el que yo siempre utilizo, pero en vez de saberme la sintaxis del script utilizo un editor para dicho script que tiene un wizard muy sencillo de utilizar. El programa es HM NIS EDIT [2].

Además de editor, cuando se quiere hacer algo más de lo que te permite hacer el Wizard (como comprobar si tienes instalada la versión de Framework.NET que tu aplicación necesita) puedes buscar código para realizar esto en el Wiki que encuentras en la web de NSIS.

Una de las ventajas más importantes de este instalador es que se puede ejecutar en modo comandos, con lo que es muy útil para hacer instaladores On-The-Fly desde una web, tal y como se hace en  la web de Beon para la Beon Factory (al menos cuando trabaja yo allí lo hacíamos así, que se lo curró JuanMa).

Las imágnes del instalador también se pueden cambiar, para personalizar el instalador, el problema es que el instalador aumenta su tamaño consideramente.

Otra opción que nos permite dicho insalador, es que nos permite tener varios idiomas del instalador.

Microsoft Windows Installer [3]

Este es el instalador de microsoft. Aquellos que programéis sobre VisualStudio, cuando se crea un paquete de instalación desde el VisualStudio estáis utilizando este fabuloso instalador.

Yo no he realizado muchos instaladores con este instalador, solo para hacer pruebas y aprender cómo se utiliza el empaquetador del VisualStudio.

InstallShield [4]

Qué decir de éste magnífico instalador. Posiblemente uno de los más utilizados por los grandes fabricantes de software, debido a la gran cantidad de opciones que posee.  Yo lo usé en los tiempos que trabajaba en Neoinnova S.L., puesto que los primeros Widget de Beon S.L. Una de las mejores cosas que tiene este instalador es la posibilidad de hacer instaladores parametrizando por scripts, lo que nos permitía poder tener programas muy similares y hacer los instaladores en cuestión de segundos. La mayor pega que tiene este instalador es que es de pago y ocupa mucho espacio en disco, pero es completamente visual.

GkWare [5]

Este instalador lo he conocido haciendo preparando este post. No lo he podido probar a fondo, pero por lo que he visto, te permite hacer entradas en el registro y ejecutar programas después de la instalación o antesd de la desinstalación, muy útilies cuando tu aplicación tienen algún tipo de servicio. La verdad es que no tiene mala pinta, lo único malo que le veo es que es un instalador de esos que se ejecutan en una ventana a tamaño maximizado con el fondo azul, muy retro, como los instaladores de Windows 3.1 ó Windows 95/98.

Conclusión:

Desde mi punto de vista el mejor, es el NSIS, con la ayuda del HM NIS EDIT, y quizás es algo un poco rudo para gente que nunca haya realizado instaladores antes. Para aprender está muy bien bajarse la trial del InstallShield, puesto que con él se va a prendiendo las cosas que van haciendo falta para un programa, como son la licencia, los iconos, … La lastima es su precio (€654.88 la versión express), lo que te obliga a vender mucho para sacar rendimientos. Desde mi punto de vista, lo más importante del NSIS es la gran cantidad de scrips que podéis encontrar en el Wiki, la verdad es que se puden hacer muchas cosas con este instalador, lo único es que casi que hay que aprender otro lenguaje más de programación.

Hay muchos más instaladores en el mercado, pero yo solo he hablado de los que conozco un poquito, con esto si no te gustan ninguno ponte a investigar del tema.

Enlaces:

[1] http://nsis.sourceforge.net

[2] http://hmne.sourceforge.net/

[3] http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=889482fc-5f56-4a38-b838-de776fd4138c

[4] http://www.acresso.com/products/is/installshield-overview.htm

[5] http://www.gkware.com/gksetup/index.htm

Copias de seguridad

Martes, 10 de Febrero de 2009

En realidad este es un apartado de administradores de sistemas, pero y sino tenemos a este gran profesional en nuestro trabajo, la mayoría de las veces al que más sabe le toca buscar un programa apañado y realizar dicha copia de seguridad.

Cuando estás trabajando con un servidor decicado Windows, cualsea la versión, éste apartado debe ser crítico, puesto que es posible que los cracker encuentren algún fallo de seguiridad de Windows y ataquen, con el daño que suele ocurrir con esto.

Si ese es tu caso, lo primero que debemos hacer es hacer una copia de seguridad de la MetaBase del IIS (Internet Information Server), para los que no sepáis qué es esto, la MetaBase del IIS es la información de todos los dominios que tienes instalado en el Servidor, así como la configuración de los FTPs (si es que usas el del IIS) y del correo (si es que usas el de IIS). Para hacer copia de seguridad de dicha metabase tendrás que ejecutar un programa o rutina en VisualBasic Script (lenguaje de consola de Windows por defecto). Yo utilizo estos ficheros.

Lo siguiente es buscar un software que haga las copias de seguridad por nosotros o programar una rutina en VisualBasic Script, que no es muy complicado, pero para este caso vamos a utilizar un software gratuito, pero no de código libre, Cobian Backup (al día de hoy en la versión 9, Amanit) [1]. Este programa nos permite hacer las copias de seguridad y subirlas a un FTP externo en un fichero ZIP y además nos permite ejecutar programas para hacer tareas que necesitemos. Además nos permite hacer copias de seguridad de directorios separados, por ejemplo la base de datos y una web por separado.

Una vez que se ha instalado el programa, podremos encontrar en el SystemTry el siguiente icono:

cobian-01

Hacemos doble click sobre él y podremos acceder al programa.

Para crear una nueva tarea de realización de copia de seguridad debemos pulsar sobre el botón de Nueva Tarea

cobian-02

Yo recomiendo hacer una tarea por cada sitio web que tengamos en el servidor, de manera que si queremos recupera una copia de un sitio web siempre será más fácil que hacer una restauración de todo el servidor. En cuanto a la metabase ahí sí que hay que hacerla completa, de lo contrario deberás de modificar el fichero de la tarea de extracción de la MetaBase.

Una vez que hemos pulsado sobre éste botón nos aparecerá la siguiente ventana

cobian-03

Podremos cambiar de configuración pinchando en las distinas opciones que están en la columna izquierda. En esta panalla lo que podemos hacer es dar un nombre a la tarea de seguridad y hacer la configuración de las copias de seguridad, como el tipo de copia de seguridad, en nuestro caso hemos seleccionado Completo.

En la zona de Ficheros lo que podemos hacer es seleccionar los ficheros o directorios sobre los que queremos hacer la copia de seguridad.

cobian-05cobian-06

En esta ventana también tenemos que seleccionar la salida de la copia de seguridad, en nuestro caso lo que queremos en mandarlo a otro servidor, para estas cosas, sino tienes otro servidor, lo suyo es contrartar un servicio de hosting que sea barato y con espacio iliminado y tráfico iliminato, como Powweb[2] o DreamHost[3].

cobian-08cobian-09

Tras configurar esto lo que hacemos es configurar la perioricidad con la que se van a realizar las copias de seguridad

cobian-10

En este caso está puesto a las 1:00 AM ya que a las 0:00 hago la copia de seguridad de la base de datos con el gestor de base de datos, en esta caso el MySQL Administrator que puedes encontrar en la web de MySQL [4]. Si utilizas Microfoft SQL-Server, en el cliente puede poner las copias de las bases de datos de forma automática. El dejar una hora entre la realización de la creación de la copia de la base de datos y la tarea es para tener tiempo de sobra, por si la base de datos ocupa mucho.

El siguiente apartado es el fichero que se genera en la copia de seguridad, lo normal es un único fichero ZIP que lo reconocen todos los sitemas operativos y que se puede descargar de una vez. Está la opción de trocear el ZIP en otros ZIPs más pequeños, pero yo no recomiendo esta opción, puesto que si se pierde un ZIP o se corrompe, pierdes la copia de seguridad.

cobian-11

También se le puede proteger con contraseña y encriptar el ZIP, pero yo no le pongo nada, puesto que con lo malo que soy para recordar las contraseñas llegue el día que hay que recuperar el fichero y no me acuerde o tenga a mano la contraseña, total yo lo voy a subir a mi FTP, para recuperar las copias hay que acceder al FTP y esa es la contraseña que nunca olvido, las tengo bien apuntadas.

En la siguiente ventana tenemos una herramienta que puede sernos muy útil, puesto que nos permite ejecutar programas, yo por ejemplo en uno de los proyectos de tareas, donde tengo un portal web donde se administran pequeñas web y que son más de 400 dominios, hago una copia de seguridad de la MetaBase aquí y se la asocio a uno de los directorios de la copia de seguridad, para ello utilizo la opción ejecutar y esperar.

cobian-12

Por último tenemos una pantalla donde podemos cambiar el usuario con el que queremos ejecutar dicha copia de seguridad, yo como la ejecuto con el usuario Administrador no tengo problemas de permisos, pero si la estuvieses ejecutando con un usuario sin todos los privilegios podrían generarse errores, con lo que desde aquí podríamos cambiar a que la tarea la ejecute el Administrador.

Bueno, pues esto ya se a acabado, pulsamos sobre el boton OK y listo, nos aparecerá la siguiente pantalla donde podremos ejecutar la tarea de copia sin tener que esperar a las 1:00 para ver si todo se ha configurado correctamente.

cobian-13

Bueno espero que esto haya sido de ayuda

Enlaces:

[1] Cobian Backup: http://www.cobian.se

[2] Powweb: http://www.powweb.com (es el hosting que tengo para estas cosas y donde está alojado este blog).

[3] DreamHost: http://www.dreamhost.com (es sensiblemetne más caro que Powweb pero ofrece otros servicios de valor añadido que a lo mejor te compensan, como CVS, SVG, acceso directo a MySQL, Ruby OnRails, JSP, …)

[4] MySQL: www.mysql.com