Lo que he aprendido: manejando paquetes de Octave

Aquí ando dibujando gráficas locas en Octave. La idea original era hacerlas en Matlab (recordad el regreso al capitalismo), pero no sé cómo demonios activar la licencia de la uni, así que he recurrido a mi fiel Octave, libre y disponible para todos sin necesidad de romperse la cabeza con licencias y mierdas varias. En fin, a lo que íbamos: los paquetes de Octave.

El gestor de paquetes de Octave

Aparte de la funcionalidad que ya trae consigo mismo, Octave puede llegar mucho más lejos gracias a Octave Forge, su centralita de paquetes de expansión. La manera recomendada para instalar estos paquetes es desde los repositorios de nuestra distro, solo hace falta buscarlo como tantas veces hemos hecho:

ondiz@slimbook:~$ apt-cache search octave PAQUETE

Muy fácil. Pero, ¿qué pasa si el paquete en cuestión es antiguo? ¿y si estamos en Windows? Pues igual que ocurría con TeXLive, podemos buscar el paquete correspondiente en los repositorios o usar una especie de gestor que tiene Octave. La orden para manejar paquetes no se nos puede olvidar porque es pkgpackage!) y tiene la misma pinta que nuestros conocidos y amados cabal, pip o gem. Os hago un microresumen para que no tengáis que leer el manual:

  • pkg install -forge PAQUETE instala PAQUETE desde Forge
  • pkg install PAQUETE.tar.gz instala PAQUETE desde archivo descargado
  • pkg uninstall PAQUETE desinstala PAQUETE
  • pkg list lista los paquetes instalados
  • pkg load PAQUETE carga PAQUETE para que podamos usar sus funciones
  • pkg update actualiza los paquetes instalados desde Forge

El caso del paquete symbolic

He aprendido esto instalando el paquete symbolic que ¡oh, sorpresa! sirve para realizar cálculos con variables simbólicas. Este paquete symbolic de Octave depende del paquete de Python para cálculo simbólico SymPy que a su vez depende de mpmath, un paquete de Python que sirve para manejar números reales y complejos de coma flotante y precisión arbitraria. Es por este lío de dependencias que lo he puesto como ejemplo.

Lo instalé tanto en GNU/Linux como en Windows siguiendo procesos muy diferentes que paso a detallar.

En GNU/Linux

Lo más práctico es buscar el paquete correspondiente como he dicho al principio del todo. Como estamos en un sistema operativo inteligente, él solo instalará lo que necesite. Es decir, hacemos:

ondiz@slimbook:~$ apt-cache search octave symbolic
octave-symbolic - symbolic package for Octave
ondiz@slimbook:~$ sudo apt-get install octave-symbolic

Como el paquete será viejuno (en mi caso en los repos está la versión 2.2.4 y en Forge la 2.6.0), ahora vamos a Octave y usamos pkg para actualizarlo:

>> pkg update % actualizar paquetes
>> news symbolic % ver nuevas funcionalidad del paquete 

¡Tachán! Paquete instalado. Recordad que hay que cargarlo explícitamente con pkg load symbolic cuando queramos usarlo1.

En Windows

Aquí tenemos dos opciones: descargar el bundle que incluye el paquete symbolic, SymPy y Python o ir piecita a piecita componiendo el puzzle.

Para el primer caso, simplemente nos descargamos symbolic-win-py-bundle-2.5.0.zip de la página de GitHub, lo guardamos en algún lugar donde Octave lo encuentre y en el prompt escribimos:

>> pkg install symbolic-win-py-bundle-2.5.0.zip

En teoría debería instalarse todo perfectamente. No os puedo decir porque yo seguí la opción dos porque ya tenía Python instalado. Si este es vuestro caso también, podéis instalar los paquetes mpmath y SymPy mediante el gestor de paquetes pip2. En Windows si hemos instalado Python 2.7.9+ o 3.4+ ya viene con pip, solo tendremos que actualizarlo. Para ello hacemos (¡Python debe estar en el path!):

python -m pip install -U pip

No sé por qué en Windows la sintaxis es así, pero haciendo pip tal cual a pesar de tenerlo instalado no carrulaba. Ahora ya podemos instalar los paquetes necesarios, siguiendo con la misma estructura:

python -m pip install mpmath sympy

Luego ya Octave en invocamos a pkg install:

>> pkg install -forge symbolic

Y todo debería ir bien. En cualquiera de los casos la manera más fácil de ver qué el paquete hace lo que debe es crear una variable simbólica:

>> pkg load symbolic
>> syms x

Aquí conectará con SymPy nos pondrá un mensaje y, si no se ha roto nada, nos crearé la variable simbólica x 😀

Referencias

37.1 Installing and Removing Packages en el manual de Octave

Octave Forge en la wiki de Octave

OctSymPy en GitHub


Suena ahora mismo en mi casa

¿Os dije que estoy aprendiendo italiano? 😀


  1. Si lo usamos mucho podemos cargarlo en el archivo de configuración .octaverc 
  2. SymPy tiene un instalador para Windows también (aunque hay que aguantarse con la versión 1.0). Para mpmath solo había un .tar que me obligaba a instalar un programa para descomprimir compatible… Por eso tiré por el camino del pip

3 pensamientos en “Lo que he aprendido: manejando paquetes de Octave

  1. Pingback: En qué ando: septiembre | Onda Hostil

  2. Ngeo

    muchas gracias, me sirvio mucho, no habia encontrado informacion sobre la instalacion, al menos en español, se te agradece

    Responder

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s