Porticus (MacPorts GUI)

Logo de PorticusDepende de para que cosas no soy muy amigo de los GUI aunque muchas de las veces nos hacen la vida mucho más sencilla. Porticus es un GUI para MacPorts y aunque todavía le quedan muchas cosas por mejorar y depurar si que ayuda en muchas cosas como por ejemplo a encontrar un port, ver la versión instalada y la actual y variantes de compilación así como una descripción todo mucho más cómodo que la sintaxis de la shell.

Algunas cosas las esconde demasiado como por ejemplo “port selfupdate” y espero que poco a poco vayan añadiendo más opciones como poder ver el mode debug al compilar, ver dependencias de un paquete antes de instalarlo, etc, etc.

Lo primero que tenemos que hacer es: Self Updates y Reload Ports ambas opciones en el menú Ports. La primera lo que hace es actualizar la versión del propio programa MacPorts y además hace un sincronismo con los paquetes actualizando la lista localmente. El segundo lo que hace es leer los Ports instalados y actualiza la ventana mostrando los paquetes que tenemos instalados y los que tenemos sin actualizas (si tenemos alguno).

En la ventana nos indica por medio de colores los paquetes que tenemos instalados y los que tenemos desactualizados.

Para los más novatos o los que no se quieran complicar con la shell es una gran avance y creo que esta aplicación debería ser parte del propio MacPorts y que fueran de la mano ambas aplicaciones.

Última versión: 1.4.2 (4 de Octubre de 2008)

Página oficial: http://porticus.alittledrop.com/index.html

Porticus

Compilar Dynamips

En este artículo voy a mostrar como compilar Dynamip para Mac (tanto intel como PowerPC, ambas requieren MacPorts instalado) y para Linux Debian, pero es bastante sencillo compilar para cualquier otra plataforma y hay mucha documentación en internet.


Compilar para Mac OSX (Vía MacPorts):

Es lo más sencillo y cómodo ya que todo lo han hecho ya los chicos de MacPorts (gracias):

sudo port install dynamips

Compilar para Mac OSX (Power PC):

Primero creamos un directorio temporal:

mkdir dynamips
cd dynamips

Instalamos las librerías necesarias:

sudo port install libpcap
sudo port install libelf

y descargamos el source de dynamips (en este ejemplo la versión 0.2.8-RC2) y lo descomprimimos:

wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2.tar.gz
tar xvfz dynamips-0.2.8-RC2.tar.gz
cd dynamips-0.2.8-RC2

Para poder compilar en PowerPC hay que realizar algunos cambios en el Makefile, aquí tenéis el patch:

--- dynamips-0.2.8-RC2/Makefile 2007-10-14 10:43:07.000000000 +0200
+++ Makefile    2008-01-11 01:03:01.000000000 +0100
@@ -3,7 +3,8 @@

 # Replace x86 by amd64 for a build on x86_64.
 # Use "nojit" for architectures that are not x86 or x86_64.
-DYNAMIPS_ARCH?=x86
+# DYNAMIPS_ARCH?=x86
+DYNAMIPS_ARCH?=nojit

 # Change this to 0 if your system doesn't support RFC 2553 extensions
 HAS_RFC2553?=1
@@ -62,8 +63,10 @@
    DESTDIR=/usr
 else
 ifeq ($(shell uname -s), Darwin)
-   CFLAGS+=-I/usr/local/include -mdynamic-no-pic -D_FILE_OFFSET_BITS=64
-   LIBS=-L/usr/local/lib -L. -ldl -lelf -lpthread
+   LOCALBASE?=/opt/local
+   CFLAGS+=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/libelf \
+      -I/usr/local/include -mdynamic-no-pic -D_FILE_OFFSET_BITS=64
+   LIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L. -ldl -lelf -lpthread
 else
 ifeq ($(shell uname -s), SunOS)
    CFLAGS+=-I/usr/local/include -DINADDR_NONE=0xFFFFFFFF \

Una vez aplicado el patch al Makefile (o si lo prefieres descargalo Makefile ) podemos proceder a compilar:

make

Saldrán muchos warnings que realmente no sé que significan ni si es correcto ignorarlos, pero a pesar de todo el programa funciona de forma correcta.

Ya solo queda pasarle el comando strip para reducir el tamaño del ejecutable y ponerle permisos de ejecución.

strip dynamips
chmod +x dynamips

Compilar para Linux (Debian):

Primero creamos un directorio temporal:

mkdir dynamips
cd dynamips

Instalamos las librerías necesarias:

apt-get install libpcap0.8 libpcap0.8-dev
apt-get install libelf1 libelf-dev
apt-get install debhelper

y descargamos el source de dynamips (en este ejemplo la versión 0.2.8-RC2) y lo descomprimimos:

wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2.tar.gz
tar xvfz dynamips-0.2.8-RC2.tar.gz
cd dynamips-0.2.8-RC2

Como dynamips viene preparado para construir un paquete .DEB, procedemos a realizar dicho paquete (a mi me hizo falta hace el chmod aunque no está de más hacerlo):

chmod +x debian/rules
dpkg-buildpackage

La versión que nos genera es la 0.2.8-RC2 pero como los fichero Debian no han sido modificados el fichero resultante tendrá como versión 0.2.6-RC2, es solo el nombre del fichero .DEB. También posiblemente nos dé algún warning, especialmente del fichero .DSC que podemos ignorar.

Para que el fichero nos indique la versión correcta debemos editar antes de compilar los 2 sigueintes fichero y poner la versión correcta:

vim debian/files
vim debian/changelog

Ya solo queda instalar (o actualizar) el paquete como otro cualquiera

cd ..
dpkg -i dynamips_0.2.8-RC2-1_i386.deb

Manejo de iconos

Los que no nos dedicamos a los gráficos algunas veces nos peleamos (por desconocimiento o porque lo usamos muy de vez en cuando) para poder extraer, convertir o hacer un icono ya sea para una web o para una aplicación o un directorio. A continuación voy a explicar algunos trucos para manejar iconos:

Extraer un icono (icns) de una aplicación o directorio:

Logo de IconverterLa aplicación Iconverter a pesar de que su nombre nos indica que convierte también simplemente extrae iconos de cualquier aplicación, carpeta o fichero en OSX. Simplemente arrastramos encima de la aplicación y luego elegimos donde y con que formato queremos extraer el icono. Generalmente uso esta aplicación para extraer un icono de una aplicación o carpeta para luego usar el icns en otro sitio o para colocarlo en un artículo aunque para esto exporto en PNG.

Para descargar esta aplicación gratuita: http://www.students.niu.edu/~z110241/index.html

Apariencia de Iconverter

Convertir un ICNS en otro formato (por ejemplo PNG):

Aunque la aplicación anterior lo hace perfectamente simplemente arrastrando el ICNS y eligiendo el formato que queramos (PNG por ejemplo) hay una aplicaición de shell en OSX llamada SIPS que lo hace perfectamente y que a veces nos puede interesar para procesar varios ficheros o para hacerlo vía script. Un ejemplo para convertir un ICNS en PNG:

sips -s format png /camino/icono.icns --out /camino/imagen_convertida.png

Esta aplicación soporta diferentes formatos y opciones las cuales podemos consultar en su manual a través de: man sips, sips -h o sips -H.
Para convertir formatos gráficos a´si como escalar, rotar e infinidad de opciones más suelo usar la aplicación ImageMagick (se puede instalar usando MacPorts) pero ésta NO soporta ICNS una verdadera lástima.

Crear o editar iconos (diferentes formatos):

Logo de IconographerUna vez tengamos nuestro icono y queramos editarlo para modificarlo o simplemente queramos crear uno desde cero podemos usar esta aplicación muy simple (y ahora gratuita) llamada Iconographer. Con esta aplicación podemos editar tanto ICNS (OSX) como ICO (Windows, por ejemplo para crear el favicon.ico de las webs). Es un editor muy simple con algunas opciones y utilidades que hace su cometido, evidentemente no es Photoshop ni lo pretende.
Para descargar esta aplicación gratuita: http://www.mscape.com/

Algunas opciones y barra de herramientas de Iconographer

MacPorts

Logo de MacPorts MacPorts es una iniciativo de la comunidad de código abierto para diseñar un sistema sencillo y simple de compilar, instalar y actualizar aplicación que no hay nativas para OSX pero si en código abierto. Hay miles (más de 4000) de aplicaciones portadas a OSX listas para compilar e instalar.

La página oficial: http://www.macports.org/

Sipcalc

Calculadora de subredes que funciona en consola, NO tiene entorno gráfico. Calcula todo tipo de redes y da información detallada.

Podemos compilar el source o mejor aún podemos instalar el port de MacPorts, por tanto requiere tener instalado MacPorts para esta segunda opción.

Página oficial: http://www.routemeister.net/projects/sipcalc/

Para instalar la aplicación:

$ sudo port install sipcalc

Ejemplo:

$ sipcalc 10.20.30.33/26
-[ipv4 : 10.20.30.33/26] - 0

[CIDR]
Host address            - 10.20.30.33
Host address (decimal)  - 169090593
Host address (hex)      - A141E21
Network address         - 10.20.30.0
Network mask            - 255.255.255.192
Network mask (bits)     - 26
Network mask (hex)      - FFFFFFC0
Broadcast address       - 10.20.30.63
Cisco wildcard          - 0.0.0.63
Addresses in network    - 64
Network range           - 10.20.30.0 - 10.20.30.63
Usable range            - 10.20.30.1 - 10.20.30.62

-

Ayuda y parámetros:

Usage: sipcalc [OPTIONS]... <[ADDRESS]... [INTERFACE]... | [-]>

Global options:
  -a, --all                     All possible information.
  -d, --resolve                 Enable name resolution.
  -h, --help                    Display this help.
  -I, --addr-int=INT            Added an interface.
  -n, --subnets=NUM             Display NUM extra subnets (starting from
                                the current subnet). Will display all subnets
                                in the current /24 if NUM is 0.
  -u, --split-verbose           Verbose split.
  -v, --version                 Version information.
  -4, --addr-ipv4=ADDR          Add an ipv4 address.
  -6, --addr-ipv6=ADDR          Add an ipv6 address.

IPv4 options:
  -b, --cidr-bitmap             CIDR bitmap.
  -c, --classfull-addr          Classfull address information.
  -i, --cidr-addr               CIDR address information. (default)
  -s, --v4split=MASK            Split the current network into subnets
                                of MASK size.
  -w, --wildcard                Display information for a wildcard
                                (inverse mask).
  -x, --classfull-bitmap        Classfull bitmap.

IPv6 options:
  -e, --v4inv6                  IPv4 compatible IPv6 information.
  -r, --v6rev                   IPv6 reverse DNS output.
  -S, --v6split=MASK            Split the current network into subnets
                                of MASK size.
  -t, --v6-standard             Standard IPv6. (default)

Address must be in the "standard" dotted quad format.
Netmask can be given in three different ways:
 - Number of bits    [/nn]
 - Dotted quad       [nnn.nnn.nnn.nnn]
 - Hex               [0xnnnnnnnn | nnnnnnnn]

Interface must be a valid network interface on the system.
If this options is used an attempt will be made to gain the address
and netmask from the specified interface.

Replacing address/interface with '-' will use stdin for reading further arguments.