Archive for the 'Linux' Category

05
Dic
09

Cambiar el tipo de letra utilizado en los gráficos de MATLAB

Para seguir haciendo uso del “juguete nuevo”, ahora dejo un código que permite modificar la fuente (tipo de letra) utilizada al desplegar gráficos mediante el comando plot en MATLAB. Lo anterior se puede realizar de manera bastante directa en Windows (aunque la mayor parte de las veces no es siquiera necesario), pero en GNU/Linux (al menos en mi experiencia) es más engorroso y se debe hacer siempre dado que la fuente que utiliza el programa por omisión es horrible y no se lleva bien con caracteres típicos del español. De todas formas, el código funciona en ambas plataformas.

Como agregado también incluyo una línea de código que otorga la posibilidad de cambiar el nombre de la ventana (figure) donde va a ser desplegado el gráfico de modo que, cuando se muestran un gran número de ellos en pantalla, estos sean fácilmente identificables. Finalmente, también una línea para guardar la imagen generada al disco de manera automática.

% Se deben cambiar los textos 'Nombre de la ventana', 'Título del gráfico',
% 'Etiqueta del eje x' y 'Etiqueta del eje y' por las frases que correspondan
% (en ningún caso borrar las comillas simples).
% Además, evidentemente se deben reemplazar los parámetros de "plot" (datosX
% y datosY) por los que efectivamente se graficarán.
% Finalmente, también se debe cambiar el texto correspondiente a
% 'nombre_del_archivo' y 'extensión'. En el último caso, yo al menos utilizo 'png'.
figure('Name','Nombre de la ventana','NumberTitle','off','Color', [1 1 1])
plot(datosX,datosY)
title('Título del gráfico','FontName','Arial','FontSize', 14);
xlabel('Etiqueta del eje x','FontName','Arial','FontSize', 14);
ylabel('Etiqueta del eje y','FontName','Arial','FontSize', 14);
saveas(gcf,'nombre_del_archivo','extensión');

Los parámetros del tipo de letra (en este caso Arial) y de su tamaño (en el código, 14) pueden ser variados por otros de su preferencia (cambiar el tipo de letra podría no ser muy directo en todo caso).

Hay otras opciones relativas a las características del texto, distintas a las mostradas, que pueden ser modificadas. En el próximo ejemplo se muestran algunas de ellas y, además, otra forma de darle formato al título (más larga que la anterior, pero que de alguna manera podría resultar más clara para algunas personas).

% Se da el ejemplo haciendo uso de la posibilidad de incluir leyendas en
% los gráficos.
% Del código, los textos del título y de las leyendas deben ser cambiadas
% por las pertinentes. Además, el usuario podría querer modificar el texto
% 'North', el cual indica la posición dentro del gráfico en el que colocará
% la leyenda. También se pueden cambiar el tipo de letra y su tamaño entre
% otros.
titulo = title('Título del gráfico');
leyenda1 = 'Texto de la primera leyenda';
leyenda2 = 'Texto de la segunda leyenda';
leyenda3 = 'Texto de la tercera leyenda';
leyenda4 = 'Texto de la cuarta leyenda';
leyenda = legend(leyenda1,leyenda2,leyenda3,leyenda4,'Location','North');
set(titulo,'FontName','arial','FontUnits','points','FontSize',11,...
    'FontWeight','normal','FontAngle','normal');
set(leyenda,'FontName','arial','FontUnits','points','FontSize',10,...
    'FontWeight','normal','FontAngle','normal');

Espero que todo lo anterior sea lo suficientemente claro. Jueguen y prueben con estos pequeños códigos y revisen la documentación de MATLAB para saber cómo funcionan las cosas, qué otras opciones hay para ser modificadas, etcétera.

05
Dic
09

Compilar programas disponibles en el AUR e instalarlos

El otro día me enteré que se puede postear código fuente en los entradas del blog de manera muy fácil, de modo que voy a tomar unos artículos que había escrito hace un buen tiempo [1] [2] que estaban muy adornados con “teoría” para que el usuario supiera qué era lo que estaba haciendo realmente para dejar solo la parte práctica. En esa ocasión no utilicé el plug in para desplegar código, así que supongo que ahora puede quedar más “limpio”.

Sin embargo, antes que todo claramente debo situar la escena. Pasa que en Arch Linux existe un repositorio (el AUR) que es mantenido por los usuarios de la distribución en los que ellos suben código que permite instalar programas que no están disponibles en los repositorios oficiales. Si bien se corre un riesgo al hacer uso de esta opción (Arch no les da soporte y toda la responsabilidad recae en la comunidad), utilizarla nos permite acceder a montones de programas que no están contemplados oficialmente.

Ahora sí, la parte práctica. Para instalar un programa descargado desde el AUR en la carpeta “downloads” (por ejemplo), basta con seguir la siguiente secuencia de pasos (la cual no está pensada para ser utilizada como script).

#  Supóngase que el nombre del paquete a instalar es "foo"
#+ y que este se encuentra en la carpeta downloads.
cd downloads
gunzip -c foo.tar.gz | tar xopf -
cd foo
makepkg
su
pacman -U foo.pkg.tar.gz
exit

Lo anterior asume que el usuario que mantiene el paquete en el AUR es ordenado y puso todo su código en la carpeta foo y luego la comprimió en un archivo tar.gz. Esto es lo habitual. También se asume que el código que proporcionó no es defectuoso y/o malicioso…

Para conocer todos los detalles que hay detrás de las operaciones anteriores (cómo hacer que se pueda compilar el código como usuario normal, qué es el ABS o el PKGBUILD por ejemplo), visite los artículos Compilar programas en Arch e instalarlos primera y segunda parte. Si usted nunca ha hecho uso de makepkg antes, se lo recomiendo totalmente. Ahora si lo que quiere es tener a mano la secuencia de comandos (como yo), no se moleste.

23
Nov
08

Manejo básico de pacman en Arch Linux

Escribiendo el post acerca de la instalación de Arch Linux me percaté que en muchas ocasiones puse instrucciones que dependían de pacman. Para los no entendidos, pacman (en el mundo de Arch Linux), corresponde al gestor de paquetes de la distribución (algo así como apt en Debian) y toma su nombre por tanto de PACkage MANager.

Pacman está extremadamente bien escrito y es una de las principales razones por las cuales uso Arch Linux. Goza de mucha simpleza y versatilidad, por lo que incluso he leído que mucha gente considera que es superior al mismísimo apt.

El objetivo de este post es ofrecer una pequeña guía de comandos comunes y que son básicos para desenvolverse con pacman en Arch Linux. Nótese que se adopta la misma convención que en el otro artículo: las palabras entre corchetes cuadrados corresponden a parámetros a ingresar por el usuario.

La presente guía está basada en la página de la wiki de Arch para pacman.

Seguir leyendo ‘Manejo básico de pacman en Arch Linux’

22
Nov
08

Instalar Arch Linux

A continuación dejaré mi guía personal (la cual tengo anotada en un cuaderno) para instalar Arch Linux en un PC. La guía está basada en la instalación de la versión 0.8 Voodoo, pero la utilicé hace algunas semanas para instalar la versión 2008.06 Overlord sin mayores problemas ni modificaciones. El concepto de “versión” no tiene mucho sentido en Arch, pero al menos de vez en cuando sacan a la luz nuevos instaladores o modifican pequeñas cosas de ellos y las publican bajo nueva versión.

Arch Linux es una distribución independiente desarrollada y optimizada para las arquitecturas de procesador i686 y x86-64 (es decir, funciona para cualquier procesador medianamente nuevo, creo que de Pentium III para adelante y en procesadores de 64 bits, por lo que no pierda su tiempo tratando de instalar esta distro en un computador extremadamente viejo dado que no funcionará). Arch en particular ha sido programada de manera que “no importa qué versión se instale, pues al actualizar el sistema quedará perfectamente al día” (al menos eso es lo que yo entiendo del concepto rolling-release, además del hecho que siempre se están generando nuevos paquetes). Esto de la rolling-release tiene sus ventajas en el sentido que por lo general el usuario de Arch tiene a su disposición las últimas versiones de los paquetes a su disposición, pero tiene el consiguiente riesgo de la posible inestabilidad de ellos (aunque igual pasan por la rama testing antes de ingresar al repositorio oficial). Personalmente nunca he tenido problemas de inestabilidad sino de malas decisiones de los desarrolladores de la distro al actualizar paquetes que se vuelven incompatibles con otros, pero los descalabros cósmicos nunca han sido tales como para cambiarme de distro, aun cuando es un punto en el que los desarrolladores de Arch tienen que mejorar.

Se dice que corresponde a una distribución de GNU/Linux para usuarios avanzados, pero a mi gusto es más correcto decir que es para gente con ganas de aprender y que no le tema a la línea de comandos, pues el sistema se maneja directamente a través de archivos de texto. A mi gusto es mucho más simple que Ubuntu por ejemplo, con la única deficiencia de poseer menor cantidad de paquetes, en cuyo caso se puede hacer uso del AUR (cosa que bueno, sí es para usuarios más avanzados) siguiendo mi humilde guía partes [1] y [2].

Me extendí mucho en la introducción, por lo que mejor voy directamente a la explicación, la que se encuentra después del salto.

Seguir leyendo ‘Instalar Arch Linux’

14
Ene
08

Reviviendo el PC

Uff… Estuve unos días sin PC porque tuve un error brígido… Kernel panic y cuestiones, inconsistencia en el sistema de archivos… No me di la molestia de arreglarlo pues este error llegó justo en el momento en que necesitaba tiempo libre para leer un mamotreto que pedí en la biblioteca de Santiago (aventura que le lleva una situación que aun no logro comprender y que si me da la gana y el tiempo contaré en otro post). Esto, ya que habitualmente pierdo horas e incluso a veces días resolviendo las quejas de mi PC…

Bueno, habiendo leído ya unas 450 páginas (todavía no llego a la mitad) y como a esta hora están dando Perdidos en el Espacio en la radio, me di la molestia de buscar en internet acerca del problema que tenía el PC y la solución es bastante simple… Procedo a comentar el problema y la solución.

Antecedentes:

  • Sistema Operativo: Arch Linux
  • Memoria RAM: 512 Mb
  • Discos duros: digamos unos 80 – 90 Gb, de esos viejos (creo que los nuevos son SATA, bueno, mis discos no lo son)
  • Sistema de archivos: ext3

Ya, resulta que llegó a mis manos un módulo de memoria RAM de 256 Mb y quise instalarla en el PC. Sumado a esto, quise instalar un disco duro que tenía “botado” por ahí. OK. Abrí el PC, limpié la gran cantidad de suciedad que había e instalé ambas cosas. Reboot… Error en el disco. Bueno, hace años había tenido el mismo problema, pero con un lector de CD, por lo que creo que creo que el malo es el enchufe ese gordo que ahora no me acuerdo cómo se llama… Pero eso es harina de otro costal.

Saqué el disco, reinicié (pasando por la BIOS en todos los casos) y llego a la bienvenida de Arch en KDE. Meto la clave e inicio sesión. Carga, pero falta en la barra faltan los programas que se están ejecutando. “Voy a matar la X”, pensé. CTRL + ALT + DELETE. Bueno, ahora le puedo decir que ¡¡¡no haga esoooo!!! Yo lo había hecho en varias oportunidades (a sabiendas que puede traer problemas) y ahora me tiró unos errores 4 y 8 de no sé dónde. Dije: “no ha de ser grave”. Apreto reset en el PC (no me dejó ocupar ni el comando halt ni reboot) y de nuevo… ¡¡¡Usted no lo haga!!! Corrompí algo (qué se yo qué sería) y me tiró los mansos kernel panics y yo tenía el alma dividida: “wow, nunca había tenido un kernel panic” y “¡qué desastre!”. OK, como no me dejaba ejecutar comandos (me daba errores) al igual que en el caso anterior, nuevamente reset (si ya lo comprendió antes, no creo que sea necesario que le recuerde nuevamente que eso no se debe hacer).

Cargo el sistema… Revisando los discos… Error.

Multiply-claimed block(s) in inode ###: ###

donde los ### eran unos números. Fueron como 4 mensajes de esos y no me dejaba iniciar el PC. Moría ahí mismo. Esperando un rato salía un informe de los nodos conflictivos y los archivos que estaban involucrados. Si bien eran de sistema, eran de baja importancia: imágenes, un .desktop y un PKGBUILD del abs.

Acudí a un PC con internet, puse el error que arriba está en negrita (“blanquita”) en google y el oráculo me dijo al tiro que ejecutara

fsck /dev/partición

donde partición corresponde a hdXY o sdXY según sea el caso (el error especifica la partición conflictiva). Bueno, ejecuté el comando como root (a pesar de no cargar el sistema completo, ofrece la posibilidad de ingresar como root en una sesión “limitada”), me preguntó un par de cosas, a las cuales sólo respondí y (yes, claro está)… Voilà, aquí estoy postando desde mi PC y esperando que al siguiente reboot no haya problemas…

PD: importante, el fsck se debe ejecutar en una partición que NO ESTÉ MONTADA. Se me había olvidado mencionar ese pequeño gran detalle. Si lo ejecutan estando la partición montada, puede que dejen una escoba más grande que la original.

PD2: luego de sucesivos on/off, el PC ha funcionado normalmente…

24
Dic
07

Compilar programas en Arch e instalarlos (segunda parte)

A continuación les dejo la segunda parte del artículo. Si le gustó el primero, debe leer el segundo… Y si no… No no más pues.

Como mencioné en el post anterior, es bueno tener cierto conocimiento acerca de unos conceptos. Continúo con ello.

PKGBUILD. Como mencioné anteriormente, corresponde a un archivo de texto con las instrucciones necesarias para compilar un programa desde su código fuente y dejar el paquete listo para ser instalado mediante pacman. Los archivos PKGBUILD tienen un campo que especifica desde dónde bajar el código fuente, por lo que sólo se necesita éste archivo y todo el proceso debiese efectuarse automáticamente (nuevamente si los astros están alineados y todo eso). Un ejemplo de estos archivos se encuentra en la wiki de Arch y lo puedes ver aquí. Otra explicación de las variables que se usan en el archivo también pueden encontrarla aquí. Como están en inglés voy a nombrar las que me parecen relevantes:

  • pkgname: el nombre del paquete
  • pkgver: versión del paquete
  • pkgdesc: descripción del paquete
  • arch: la arquitectura de software en la que se sabe que funciona el programa (procesador, cantidad de bits 32 vs 64)
  • url: especifica la web asociada al programa
  • license: la licencia bajo la que se distribuye el software
  • depends: dependencias que necesita el programa para funcionar
  • makedepends: dependencias necesarias para compilar el programa (pero que no son necesarias una vez que éste está instalado)
  • conflicts: paquetes que producen conflicto si están instalados al mismo tiempo que el paquete que queremos compilar e instalar
  • install: especifica un archivo anexo que se debe utilizar para la instalación (se debe revisar cuidadosamente dicho archivo para verificar que es seguro)
  • source: dirección desde donde se debe descargar el código fuente del programa
  • md5sums: especifica una llave de comprobación de la integridad del código fuente descargado (o sea, verifica que no se haya bajado con errores)

Bueno, son CASI todas las que aparecen. Revisen los links para más detalles. Otro aspecto relevante corresponde a la función build() que se declara en cada PKGBUILD. Dicha función es la que específicamente se encarga de compilar el programa. Detalles con respecto a esta función se pueden ver aquí. Difieren para cada programa, pero básicamente se trata del ./configure, make y make install habitual junto a otras instrucciones.

makepkg. Corresponde a la herramienta de la que dispone Arch para compilar los programas. Básicamente se encarga de leer los PKGBUILD y ejecutarlos, de modo de obtener un paquete listo para ser instalado por pacman (info más detallada en la wiki de Arch). Un link tipo tutorial acerca de makepkg/abs (en inglés) puede ser visto aquí.

Creo que con respecto a los conceptos, eso es suficiente. Ahora vamos con lo que en realidad nos interesa, compilar e instalar (en base a un PKGBUILD ya hecho).

Seguir leyendo ‘Compilar programas en Arch e instalarlos (segunda parte)’

24
Dic
07

Compilar programas en Arch e instalarlos (primera parte)

El siguiente artículo pretendía ser publicado en su totalidad al tiro, pero como se anduvo alargando lo separo en dos partes, la primera de las cuales dejo a continuación.

No me había animado a hacerlo, pero ahora ya logré mi primera instalación exitosa de un programa que no esté en los repositorios de Arch. La cuestión parece que es bien fácil si el programa se encuentra en el AUR (y los astros están alineados de la manera correcta). Bueno, la verdad es que instalé unos scripts solamente, pero algo es algo.

Vamos por partes. ¿Qué es el AUR? Corresponde a ArchLinux User-community Repository, el Repositorio de la Comunidad de usuarios de Arch Linux. Allí los usuarios suben unos archivos de texto plano conocidos como PKGBUILD en los cuales se detalla la forma de compilación e instalación de los programas en Arch, los cuales pueden ser utilizados por la comunidad de usuarios de la distro para instalar programas que no se encuentren en los repositorios oficiales (en ocasiones también se suben otros archivos como parches, configuraciones, etcétera). La gracia de todo esto del AUR es que si los programas se vuelven suficientemente populares, pueden ser promovidos a los repositorios oficiales, donde cuentan con la garantía de quienes mantienen la distro funcionando. .

Lo último mencionado es importante: los PKGBUILD (y otros archivos) que se encuentran en el AUR no son necesariamente seguros. Por ejemplo, en el mismo sitio del AUR se dice que sólo el 29,4% de los paquetes que se encuentran en unsupported han sido revisados y marcados como seguros, además que sugieren revisar cuidadosamente las instrucciones de todos los archivos que se pueden bajar de dicho sitio. Por ello, el primer paso si se quiere instalar un programa es revisar los repositorios oficiales y sólo luego de ello recurrir a los paquetes disponibles en el AUR.

Ah, con respecto a lo del repositorio oficial, por experiencia propia he visto que en dicha página no se encuentran listados todos los paquetes disponibles, por lo que puede ser una buena idea utilizar pacman para buscar programas:

$ pacman -Ss <nombre_paquete>

Bien, una vez establecido lo anterior, es hora de poner manos a la obra. Veamos… Si usted es un conocedor de la lengua de Shakespeare, puede acceder a la wiki de Arch donde después de su buena búsqueda podrá encontrar cómo diablos instalar paquetes con un PKGBUILD. A mi entender, quizás toda esa info es demasiado técnica, por lo que trataré de simplificar el asunto (si no lo logro lo suficiente, discúlpeme, pero haré mi mejor esfuerzo).

Si quieren saber más de Arch y sus repos, pueden revisar los siguientes links: ArchLinux (Español) y Repositorios Oficiales.

Ahora, conceptos que se supone uno debiese conocer:

ABS, Arch Build System. Según muchos amantes de Arch, una de sus gracias es que existe la posibilidad de compilar uno mismo los programas de acuerdo a una serie de reglas (hecho tan técnico que aun no logro entender, pero básicamente es lo que escribí), tal como en Gentoo. Si uno quiere realizar esto con los programas que están en el respositorio de Arch, puede hacer uso de ABS. Según la wiki (en inglés) de la distro

ABS es una herramienta especializada de Arch para compilar programas desde el código fuente hasta crear un paquete .pkg.tar.gz, el cual es instalable mediante pacman.

¿Dudas? Los archivos con extensión tar son como los zip, pero sin compresión, mientras que los gz sí están comprimidos. Esto es, los tar pueden guardar varios archivos en uno solo el cual luego es comprimido (gzipped). Por otra parte, pacman es el gestor de paquetes de Arch (pacman es por package manager), es decir, el programa que se encarga de instalar/desinstalar los paquetes en Arch y manejar dependencias. Si no se entendó eso, quizás sea buena idea revisar el link que puse en el segundo párrafo al respecto (allí el “símil” de pacman es apt/aptitude).

Si se desea hacer esto de compilar archivos que se encuentren en el repositorio oficial, se debe crear el ABS tal como se explica en la wiki de Arch. Entren ahí y ejecuten los comandos descritos hasta abs (incluido), todos como root. Luego los PKGBUILDs de cada programa que esté en el repo oficial los podrán encontrar bajo /var/abs. Cada vez que ejecuten la instrucción abs, se actualizará el árbol del ABS, por lo que recomiendan hacerlo periódicamente.

Próximamente, la segunda parte.

Cualquier duda o corrección (lo que he escrito no necesariamente es totalmente exacto), sírvase a escribir en los comentarios. En la medida que pueda ayudar, lo haré.

Link a la segunda parte.




buscar en el blog

calendario de posts

marzo 2017
L M X J V S D
« Mar    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Contacto

Siéntase libre de escribir a contacto También puede encontrarme en Last.fm, YouTube, Delicious y Twitter.