Slackware-current actualizadísimo

Después de la versión Beta 2 de Slackware 14.2, han seguido apareciendo cambios en el ChangeLog de la rama -current de la distribución. Principalmente se tienen actualizaciones de los componentes base.

Slackware es una de las distribuciones que prefiere estabilidad sobre la inclusión de las versiones más recientes de los programas. Por ello una vez que se libera una versión estable, las aplicaciones reciben actualizaciones menores y de seguridad únicamente. Sin embargo en la versión -current (que es la versión de desarrollo) se puede permitir saltos más grandes entre las versiones de una aplicación.

Hasta el día de hoy, muchas de las actualizaciones en la rama -current son las versiones más recientes disponibles:

  • Linux kernel 4.4.4
  • LLVM 3.8.0
  • GCC 5.3.0
  • glibc 2.23
  • Python 2.7.11
  • php 5.6.19
  • Mozilla Firefox 45.0
  • PulseAudio 8.0, que recientemente fue incluido al sistema.

Estos son algunos componentes importantes de Slackware Linux y que por ahora se encuentran lo más actualizados posible.

Si ustedes han seguido el desarrollo de la distribución desde la versión estable actual podrán notar que se tienen cambios muy grandes, lo que ha generado comentarios entre algunos miembros de la comunidad con respecto a si se justificaría o no, el nombrar a la siguiente versión Slackware 15 y no Slackware 14.2. Ya que el cambio de la versión 14.1 a 14.2 tiende a indicar que los cambios han sido relativamente pocos. Pero con más de dos años de desarrollo los cambios y actualizaciones han sido muy grandes. Pero, como sabrán, una decisión de este tipo no está a cargo de la comunidad, que aunque sus comentarios son tomados en cuenta, la última palabra la tiene el creador de la distro: Patrick Volkerding.

Por ahora solo nos resta actualizar y usar el sistema para ir probando los cambios y reportar los detalles que se vayan encontrando en el desarrollo de la próxima versión estable. Esto último se puede hacer en el foro oficial de la distro que se encuentra en LQ.

Eric 4.5.9: IDE para desarrollo en Python

La historia

Hace apenas un día actualicé el entorno de escritorio de Slackware 14.0. Lo hice con los paquetes de AlienBob de KDE 4.10.1, la instalación es relativamente sencilla siguiendo las instrucciones que tan amablemente AlienBob escribe para cada actualización de este tipo. Actualizar provocó que al ejecutar programas que dependen de QScintilla (o Python) como QGIS y Eric IDE tuvieran problemas para ejecutarse, se generaba un error como el siguiente:

RuntimeError: the sip module implements API v9.0 to v9.1 but the PyQt4.Qsci module requires API v8.

Esto ya me había pasado al actualizar a KDE 4.10 y lo solucioné recompilando QScintilla (por recomendación de AlienBob y Willy Sudiarto). Y ya con esto tuve que recompilar las aplicaciones que tenían problemas.

Instalando Eric

Bueno, dicho lo anterior, si tenía que reinstalar Eric IDE decidí curiosear y ver si había una versión más reciente. Encontré que la versión 4.5.9 estaba disponible, en SlackBuilds se tiene una versión más vieja la 4.5.6. Además existe la posibilidad de ponerla en español.

Lo primero que hay que hacer es descargar los archivos de código fuente siguientes desde el sitio oficial del proyecto:

  • eric4-4.5.9.tar.gz
  • eric4-i18n-es-4.5.9.tar.gz

El primero es el archivo del código fuente del programa y el segundo los paquetes para instalarlo en nuestro querido idioma español. Teniendo estos archivos hay que descargar solo el SlackBuild, es decir solo el archivo llamado eric.tar.gz.

Una vez descargado el archivo hay que descomprimirlo, posteriormente hay que copiar los dos archivos fuentes al directorio creado:

$ tar -xvzf eric.tar.gz
$ mv eric4-4.5.9.tar.gz eric
$ mv eric4-i18n-es-4.5.9.tar.gz eric

Luego hay que editar el SlackBuild y configurarlo para la versión y el idioma que deseamos:

$ nano eric.SlackBuild

Solo dos líneas hay que modificar y deben quedar así:

VERSION=${VERSION:-4.5.9}
LANGUAGE=${LANGUAGE:-es}

Finalmente hay que ejecutar el script e instalar el paquete generado:

# sh eric.SlackBuild
# installpkg /tmp/eric-4.5.9-i486-1_SBo.tgz

Ahora ya tenemos Eric instalado.

Características de Eric

Hay muchos editores o entornos de desarrollo especiales para Python, o incluso algunos que son para otros lenguajes pero que se pueden adaptar para soportar Python. Sin embargo he encontrado Eric muy funcional y me ha agradado. Creo que todos los que usamos Python empezamos y hemos utilizado IDLE, es un editor que no le pide nada a ningún otro pero al igual que vi, vim, nano o incluso kwrite… solo es un editor, y cualquiera de ellos me empezó a resultar incómodo al manejar un proyecto relativamente grande, pues había que tener bastantes ventanas abiertas. Es por ello que empecé a buscar alternativas y encontré varias, pero después de probar algunas, me gustó y me quedé con la opción de Eric. En primera (y no por ello más importante) está escrito en Qt y se integra bien con KDE, soporta Ruby aunque no lo uso para este lenguaje, es fácil de aprender, de usar y configurar.

Es importante mencionar que no incluye un diseñador para GUI pero incluye soporte básico para wxPython por medio de plugins y me parece, con la libertad a equivocarme, que también para QtDesigner.

Algunas de las características que me gustan y uso de Eric son:

  • El editor usa QScintilla
  • Número ilimitado de editores
  • Apariencia personalizable
  • Resaltado de sintaxis
  • Autocompletado de código (palabras reservadas, variables, comillas, paréntesis)
  • Resaltado de errores
  • Shell de Python incluida (con resaltado de sintaxis y autocompletado)
  • Debbuger integrado
  • Facilidad de integración con PyQt
  • Navegador web integrado
  • Ayuda de otros elementos integrada (como PyQt)

He aquí una vista de este editor.

eric

Saludos.

Matplotlib 1.1.0 en Slackware -current

Una de las actualizaciones que mas me gustó en el último Slackware-current es Python, ya que después de mucho tiempo usando la antigua versión 2.6.6 por fin llegó la versión 2.7.3 que es la recomendada de la rama 2.x en el sitio oficial.

python27

Después de actualizarse Python, las librerías de Matplotlib dejaron de funcionar, por lo que me di a la tarea de hacerlas correr de nuevo.

Lo que hay que hacer es volver a instalar Matplotlib para que reconozca la nueva versión de Python, sin embargo antes de hacerlo es necesario instalar primero las siguientes dependencias:

  • numpy
  • pytz
  • python-dateutil

Los scripts para instalar estos paquetes en Slackware 13.37 (funcionan también en current) se pueden encontrar en SlackBuilds.org, y como siempre la opción fácil que yo uso es mediante el programa sbopkg.

Primero hay que sincronizar el listado de paquetes por si hay cambios recientes.

# sbopkg -r

Ahora si el comando para instalar todos los paquetes:

# sbopkg -i "numpy pytz pysetuptools python-dateutil matplotlib"

Recordar que si ya se tiene algún paquete de estos instalado simplemente hay que omitirlo, pysetuptools es requerido por python-dateutil por eso entra en la lista.

SITIO ALTERNATIVO

En Slackware es posible instalar Matplotlib mediante un script de SlackBuild descargandolo junto con los otros dos archivos este sitio.

Sin embargo eso únicamente descarga el script por lo que hay que conseguir las fuentes desde sourceforge.

Una vez que se tienen ambos, hay que colocar todos los archivos juntos en el mismo directorio y ejecutar:

# chmod +x matplotlib.SlackBuild
# ./matplotlib.SlackBuild

FINALMENTE

Cuando se omiten las dependencias sale un error como el siguiente:

ImportError: No module named dateutil.rrule

Pero si todo va bien se tendrá un sistema Slackware lo más actual posible y con Matplotlib funcionando a la perfección, ahora resta hacer los cambios necesarios en el código de Python para la vesión 2.7.3.

matplotlib1

Saludos.

Aplicaciones en Python y Qt en Slackware Linux

Me sentí un poco mal por andar haciendo mis (muy pocas) aplicaciones en GTK siendo que soy un usuario en serio de KDE pero no tan fan como para Chakra, así que me decidí a probar Qt solo por curiosidad. Primero como me gusta programar en Python pues intenté hacerlo usando Qt sin cambiar de lenguaje y para ello necesité instalar el PyQt4 que para Slackware 13.37 encontré en:

PyQt4
Ir a éste enlace o descargar directamente de aquí.

Luego la herramienta necesaria para crear las interfaces gráficas de las aplicaciones en el Qt Creator el cual se puede descargar para Slackware desde aquí e instalar de la manera ya muy conocida para los SlackBuilds, sin embergo decidí hacerlo automáticamente desde el terminal con:

# sbopkg -i qt-creator

Una vez instalado en el sistema se creará un nuevo elemento en la sección de Desarrollo en el menú de KDE que se llama Qt Creator IDE, al dar clic en éste elemento se abre la aplicación que luce algo por el estilo:

Qt Creator

Qt Creator

Bueno ya teniendo instalado ambos paquetes resta ponerse a producir algo de código, y eso se empieza creando un nuevo proyecto en el menú File > New File or Project…. En la ventana que se abre se puede crear un proyecto completo el cual consiste de varios archivos para hacer una aplicación en C++, sin embargo como se desea trabajar con Python no es necesario hacer todo el proceso, simplemente basta con crear un archivo UI para la interfaz gráfica en el que se pondrán todos los Widgets de la aplicación y más tarde agregar el código en Python que hará que dicha aplicación «haga algo» y sea útil.

Para crear un archivo .ui con la interfáz gráfica de la aplicación hay que seleccionar Qt en la parte de la ventana que dice Files and Classes y luego en Qt Designer Form que está en la parte superior, dar clic en Choose…

Crear archivo en Qt

Crear archivo en Qt

Pedirá seleccionar un template, como se hará una nueva aplicación hay que elegir la que dice Main Window y luego poner el nombre al archivo (dejar la terminación .ui) junto con un directorio en el que se guardará. Finalmente hay que agregar un manejador de versiones, sino se sabe lo que es ésto es por que seguramente no se necesita jeje, así que se deja con y clic en Finish. Listo ya se tiene creado un archivo, se abrirá el diseñador en el que se pueden ir agregando los elementos que tendrá nuestra aplicación, como botones, cajas de texto…

Creando la interfaz gráfica con Qt Creator

Creando la interfaz gráfica con Qt Creator

Una vez diseñada la apariencia del programa en el Creator, hay que guardar el archivo .ui y luego convertir el código al lenguaje Python con la herramienta pyuic4 el cual se instala junto con PyQt4 por lo que no hay necesidad de instalar un paquete adicional, simplemente hay que dirigirse al directorio donde se encuentra el archivo .ui desde el terminal y ejecutar:

$ pyuic4 gasto.ui > gastoqt.py

Listo ya que se tiene hecha la interfaz gráfica hay que empezar a codificar los eventos y los algoritmos de cálculo que necesitemos para que la aplicación nos sea útil, pero eso ya es otra história…

Finalmente con un poco de más código se puede ejecutar la aplicación recién creada.

Aplicación GUI creada

Aplicación GUI creada

.

Saludos slackers!

Instalando wxPython

Uno de mis paquetes esenciales es el wxPython ya que es un excelente complemento del python para hacer aplicaciones gráficas. Como no me podía faltar, es uno de los primeros paquetes que instalo en mi sistema.

Primero se descargan las fuentes y el instalador de http://slackbuilds.org/ para la versión 13.37, que se encuentra en http://slackbuilds.org/repository/13.37/libraries/wxPython/. La versión es wxPython 2.8 para Python 2.6 que es el que viene instalado en el sistema, ingresando el comando python en la consola se obtiene:

bash-4.1$ python
Python 2.6.6 (r266:84292, Nov 27 2010, 19:47:39)
[GCC 4.5.1] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

Entonces se confirma la compatibilidad.

Una vez descargado todos los archivos en la página, se extrae como sigue:

$ tar -xvzf wxPython.tar.gz

Lo cual crea un nuevo directorio llamado wxPython, entonces se copian las fuentes dentro de ese directorio:

$ mv wxPython-src-2.8.11.0.tar.bz2 wxPython
$ cd wxPython

Una vez dentro del directorio, se inicia sesión como root y se ejecuta el SlackBuild:

# ./wxPython.SlackBuild

Y cuando termine de ejecutarse el programa, aparecerá un mensaje que dice que se ha creado un nuevo paquete llamado /tmp/wxPython-2.8.11.0-i486-1_SBo.tgz o algo por el estilo, entonces se instala el paquete creado con el comando installpkg:

# installpkg /tmp/wxPython-2.8.11.0-i486-1_SBo.tgz

Una vez instalado y si no causa problemas, se puede checar si el wxPython está funcionando, eh aquí uno de mis programas que hice durante la carrera en python utilizando wx y funcionando en Slackware:

wxpython_instalado

wxPython correctamente instalado