martes, 12 de agosto de 2008

Crea tus propios paquetes: Slackware

Algo que nunca esta demás aprender cuando queremos saber mas de nuestra distro es cómo crear paquetes propios y así poder crearlos según nuestras necesidades, además de poder compartirlos con nuestros amigos.

El proceso de crearlos es mas bien simple. Se resume en seguir una serie de pasos que no encierra mayor dificultad, ni misterio.

En esta entrada vamos a ver como hacer nuestros propios paquetes tgz desde el tarball. Los tgz son los paquetes precompilados para Slackware y las distros que se basan en esta, si se preguntan porque empezar por esta distro siendo que no es de las mas populares, la respuesta es muy simple, porque es mi distro preferida :D

Para comenzar elegimos que programa queremos empaquetar, para este caso me parece interesante elegir Amarok. Descargemos el tarball desde a su pagina --> Amarok
Para el caso la ultima versión Stable es la 1.4.9.1.

Ya descargada descomprimimos el tarball y entramos en la carpeta

$ tar xvf amarok-1.4.9.1.tar.bz2
$ cd amarok-1.4.9.1

Ahora es donde empieza el proceso de crear nuestro paquete, para esto necesitamos compilarlo como lo haríamos normalmente.

# ./configure --help

Para evitar tener problemas con los permisos es recomendable que desde ahora hagamos todo como root. El configure --help es un paso esencial en el proceso porque nos va a dar una lista de parametros que le podemos entregar a nuestro paquete.

`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...
Las instrucciones son claras :) . En nuestro caso vamos a pasarle las opciones de compilación --enable-mysql --enable-postgresql y --with-libgpod (para los que tiene ipod), porque lo que necesitamos/queremos es que amarok maneje nuestra musica usando como motor de base de datos a mysql o postgresql. ¿Y esto para qué? la respuesta varia de acuerdo a las necesidades que tengamos, en mi caso, tengo una gran cantidad de música (muchos gigas) y sqlite tiende a portarse mal (es muy grande el volumende datos) lo que se traduce en ralentizacion del tarro y en una mala performance de amarok.

Si queremos o lo necesitamos podemos ademas indicarle rutas especificas, por ejemplo:

--prefix=/usr/local (muchas veces ya esta por defecto /usr)

Esto nos permite elegir el directorio donde queremos que se instale el programa. Supongamos que queremos instalarlo en /opt o en /home, entonces simplemente le ponemos --prefix=/opt ó --prefix=$HOME según sea el caso. Otras variables a destacar:

--bindir=/usr/bin
--sbindir=/usr/sbin
--sysconfdir=/etc
--localstatedir=/var
--libdir=/usr/lib
--includedir=/usr/include
--mandir=/usr/man
--docdir=/usr/doc
--infodir=/usr/info

Entonces un posible configure podria quedar de la siguiente forma:

# ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --includedir=/usr/include --mandir=/usr/man --docdir=/usr/doc --infodir=/usr/info --enable-mysql --enable-postgresql --with-libgpod

Esto solo es a modo de ejemplo, la verdad es que la mayoría de estos parametros ya vienen por defecto por lo que no es absolutamente necesario escribirlos todos, por ahora con un

# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-mysql --enable-postgresql --with-libgpod

Nos va a bastar y sobrar :p . Otro dato interesante de mencinar son las Variables de entorno, estas se especifican al final de este comando (./configure), según el configure --help algunas útiles pueden ser:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
XMKMF Path to xmkmf, Makefile generator for X Window System
PKGCONFIGFOUND
Path to pkg-config
Que no la vamos a usar en este caso y que por lo demás escapan del fin de este tutorial.

==========================
=== Amarok - WARNING ==========================================
=
= pg_config could not be found, this means that support for Postgresql
= will be disabled.
=
==========================
=== Amarok - PLUGINS ======================
=
= The following extra functionality will NOT be included:
= - NMM-engine
= - Helix-engine
= - yauap-engine
= - Postgresql Support
= - MusicBrainz Support
= - MP4/AAC Tag Write Support
= - iRiver iFP Support
=
= The following extra functionality will be included:
= + xine-engine
= + libvisual Support
= + MySql Support
= + Konqueror Sidebar
= + iPod Support
= + Creative Nomad Jukebox Support
= + MTP Device Support
= + Rio Karma Support
= + DAAP Music Sharing Support
=
=====================================

Good - your configure finished. Start make now

Si todo concluyó como queremos y sin problemas, vamos a tener algo así como el resumen de el configure, fíjense que le dimos soporte para mysql, para el ipod, etc. No esta soportado postgresql por el simple hecho de que no lo tengo instalado (no lo uso). Otra cosa a notar es que le podemos dar soporte a Helix y MP4/AAC, entre otros. Yo no los necesito :o cada quien ve lo que estime necesario...

Una vez pasada esta etapa y acabada sin errores, nos toca ejecutar el make

# make

Si no tenemos errores pasamos a la siguiente etapa. En esta parte es donde podríamos decir que se comienza a crear nuestro paquete propiamente tal, para esto ejecutamos en consola

# make install DESTDIR=/tmp/paquete

Es el mismo make install de como si estuviéramos compilando, solo que le agregamos el destino de adónde queremos que cree los archivos binarios o ejecutables, es recomendable siempre crearlo en los temporales para después ser limpiados, por ser amarok lo vamos a crear en /tmp/amarok :)

# make install DESTDIR=/tmp/amarok

Pasada esta etapa sin errores ya solo nos resta limpiar un poco y armar nuestro paquete. La limpieza la hacemos con el comando strip, este nos sirve para descartar los símbolos del ficheros, etc. esto lo hacemos sobre los directorios bin y lib.

# strip -s /tmp/amarok/usr/{lib,bin}/*

Ahora creamos el fichero de la documentación, este se crea dentro de amarok/usr y bajo el nombre del paquete que estamos creando:

# mkdir /tmp/amarok/usr/doc/
# mkdir /tmp/amarok/usr/doc/amarok-1.4.9.1

Y copiamos la documentación que dispone nuestra aplicación:

# cp -r AUTHORS ChangeLog COPYING doc README TODO /tmp/amarok/usr/doc/amarok-1.4.9.1/

En el caso de que contemos con archivos man los comprimimos con gzipped de la siguiente forma:

# gzip -9 man/*.?

En nuestro caso particular no lo necesitamos.

Y por último, creamos el slack-desc. Este no es más que un archivo de texto con la descripción del paquete que estamos creando. Es absolutamente necesario crearlo (obligatorio). ¿Alguna vez se detuvieron a leer la información que entrega un programa cuando lo instalaron? Si lo hicieron lo que estaban leyendo era el slack-desc :D . Este entrañable documento de texto lo debemos crear dentro de un directorio llamado install que lo tenemos que hacer antes en donde estará la "raiz" del paquete, osea en:

# mkdir /tmp/amarok/install
# cd /tmp/amarok/install
# vim slack-desc

Cada uno elige el editor de texto que quiera, yo como siempre uso ViM ;) . Ahora algo importante, las dimenciones del slack-desc deben ser de 79 carateres por 11 lineas, además debe cumplir algunos requisitos que nombro a continuación:

  • Dimensiones: 79 caracteres x 11 lineas
  • Titulo: handy-ruler
  • Las 11 lineas deben comenzar con el nombre del programa.
  • Las lineas deben tener una descripcion breve del paquete.
  • En la primera linea va el nombre de la aplicacion más una descripcion todavía mas breve de la aplicacion entre parentesis. Por ejemplo: Firefox (Navegador web)
  • No me acuerdo que más :$ ...un ejemplo grafico.


Ejemplo:

|-----handy-ruler--------------------------------------------------|
aplicacion: Nombre de la aplicacion. (Descripcion brevisima)
aplicacion:
aplicacion:
aplicacion: Descripcion breve de la aplicacion que estamos creando. Ojo, no
aplicacion: hay que pasar mas allá de los 79 caracteres ok?. Fijate con que
aplicacion: agilidad lo hago yo... esto me llevo mucho tiempo de aprender :o.
aplicacion: La idea de este texto es ayudar al que lo instala e informarlo.
aplicacion: Tampoco es para que escribamos nuestro manifiesto o peor aun
aplicacion: el testamento, eso sí, si lo hacen acuerdense de mí... que me
aplicacion: encantan las herencias xDD... no así los manifiestos :(
aplicacion:



Estas son referencias de como tiene que ser nuestro slack-desc, lo que no significa que tenemos que hacerlo tal cual, cada uno ve cuanto espacio necesita. Si se necesita menos lineas borramos las no necesarias :D . Para nuestro caso podria ser asi:


|-----handy-ruler--------------------------------------------------|
amarok: Amarok (Reproductor de Musica)
amarok:
amarok: Redescubra su musica Con Amarok. El mejor reproductor de
amarok: musica del mundo GNU según el buen Asclepio ;) .
amarok:
amarok: Mas informacion: http://amarok.kde.org/
amarok:


Ya creado el slack-desc, salimos a la carpeta donde estamos creando nuestro paquete y escribimos
las palabras magicas:

# cd /tmp/amarok
# makepkg -l y -c n $HOME/paquetes/amarok-1.4.9.1-i686-1cff.tgz

Con el comando makepkg creamos nuestro paquete, en este caso en particular lo estoi creando en mi home (/home/asclepio) en un directorio donde guardo los paquete que hago, de nuevo, cada quien los crea donde mejor le acomode.

Por convención los paquetes deben nombrarse siguiendo esta estructura:

aplicacion-version-arquitectura-N°-empaquetador.tgz


Como ven la aplicacion es amarok, version 1.4.9.1 hecho para arquitectura i686, es el N° 1 (primer paquete) y hecho por un servidor (mis iniciales, cff) el buen Asclepio ;) .

La acción de crear un paquete es algo trivial que con algo de experiencia se vuelve mecánico, algo que para el que aprendió a crearlos es de mucha utilidad. Por otro lado, tambien hay que notar el hecho de que el paquete creado lo podemos compartir con nuestros amigos o los demás compadres de distro. Algo muy util de aprender y fácil. En mi humilde opinión, elemental para todo Slacker y Linux user.


Mas Info: Slack Wiki: How To - Building a package
Paquetes para Slackware
Instalando desde las Fuentes

lunes, 4 de agosto de 2008

Firefox 3.0.1 en español en Slackware 12.1

Una entrada muy simple y solo para quien le pueda ser útil o interesar.

Hace varias versiones de Firefox que vengo haciendo mis propios paquetes de este navegador. El único motivo es que me gusta tenerlo en mi idioma --Castellano, ese el de los acentos y las eñes-- y como no se encuentra por slackpkg o en los repositorios (creo) acá se los dejo:

Actualización a 3.0.4 ----> Acá

Y como siempre la fotito :D

martes, 29 de julio de 2008

SUSE Linux Toolbox: 1000+ Commands for openSUSE and SUSE Linux Enterprise



Un buen libro dedicado a esta gran distro (para mi una de las mejores). En esta caja de herramientas SuSEras podemos encontrar como instalar, configurar y manejar esta distro. Incluye además temas sobre multimedia y un par de apéndices muy útiles.
Paginas: 339
Idioma: Ingles
Formato: Pdf
Peso: 3.19 Mb.


Contenido

Chapter 1: Starting with SUSE
Chapter 2: Installing openSUSE and Adding Software
Chapter 3: Using the Shell
Chapter 4: Working with Files
Chapter 5: Manipulating Text
Chapter 6: Playing with Multimedia
Chapter 7: Administering File Systems
Chapter 8: Backups and Removable Media
Chapter 9: Checking and Managing Running Processes
Chapter 10: Managing the System
Chapter 11: Managing Network Connections
Chapter 12: Accessing Network Resources
Chapter 13: Doing Remote System Administration
Chapter 14: Locking Down Security
Appendix A: Using vi or Vim Editors
Appendix B: Shell Special Characters and Variables
Appendix C: Getting Information from /proc



Si lo quieres descargar ya sabes ---> Clic Acá




martes, 15 de julio de 2008

Soporta linux mi PC?

¿Cuando instale linux en mi tarro, funcionará todo?

Es una pregunta muy común y por lo demás muy valida -por no decir elemental- a la hora de instalar GNU/linux en una maquina. La pregunta puede responderse de muchas formas, a continuación una de las formas :)

La pagina Debian GNU/Linux device driver check, nos ofrece un test muy interesante de hacer, el que nos entrega rapidamente y de forma muy simple y facil la tan esperada respuesta a la pregunta. Para esto solo tenemos que pegar la salida de comando:

lspci -n
y despues apretar el boton

Check
Y listo, obtenemos una respuesta clara a la pregunta.

"

sábado, 12 de julio de 2008

Honor a quien honor merece...

Este blog es tutosLIBRES, y bueno recurriendo a la palabra libre, me tomo eso mismo, la libertad de colocar este homenaje de retiro del Sr. Bill Gates . Si tutoslibres leyeron bien "HOMENAJE" en mayusculas y entre comillas al Sr. Bill Gates (no le pongo colorcitos para que no me tachen de insurrecto). Y aunque aquí se busca no caer en cuestiones restrictivas yo soy muy desordenado. Seguramente muchos ya lo vieron pero... en fin... veanlo...



Ojo: El retiro de Bill Gates no precisamente lleva al retiro de bugs o algo peor; de licencias restrictivas.

lunes, 7 de julio de 2008

Entrevista a Richard Stallman

Via Tecnologias Libres y gracias al entusiasmo de Eduardo Aguila, hemos podido disfrutar de una corta, pero muy interesante entrevista a nuestro gran gurú Richard Stallman.

La entrevista se hizo via mail, según nos cuenta su autor, y en ella podemos leer las ideas que tiene Stallman respecto al software libre y tambien su forma de ver el mundo y la familia.

Por mi parte, hubiese querido una entrevista mas larga y mejor preparada, pero aun asi sigue siendo un gusto poder leer algo nuevo de este "patriarca" del software libre.

Que disfruten la entrevista:

¿Hola, como estás :)?

Tengo un calor insoportable aquí.

¿Cuando viajaras de nuevo a Chile?

No tengo un plan de volver a Chile, pero me gustaría ir, cuando haya
una invitación con fondos para los costes, y un hueco en mi agenda.

Como lo prefieres ¿”Free Software” o “Software Libre”?

“Software libre” es más claro, porque no se toma por “software
gratuito”. El software libre es el software que respeta la libertad
del usuario y la solidaridad social de su comunidad. No es asunto de
precio. Por lo tanto, en español no digas nunca “free software”, sino
siempre “software libre”. Incluso en inglés digo a veces “libre”.

Peor aun es decir “open source”. Ese término fue inventado para hacer
caso omiso de los asuntos éticos. Si comparas la palabra de los
activistas de software libre, como yo, y los promovidores de open
source, verás una gran diferencia al nivel el más profundo, el de
los valores.

¿Que Sistema Operativo estas usando?

Uso el sistema GNU con Linux. Básicamente es el sistema operativo
GNU, cuyo desarrollo lanc é en 1984, combinado con el kernel Linux,
lanzado en 1991 por el Sr. Torvalds.

Pero no uso su versión de Linux, porque contiene programas privativos.
Son los “blobs” de firmware que son presientes en los archivos
“fuente” de varias pilotas, en la forma de largas listas de números.
Es decir, estos archivos no realmente son de código fuente; no
obstante, los desarrolladores de Linux los ponen en sus archivos.

Ahora tenemos que mantener otra versión de Linux, llamada Linux Libre,
para usar en las versiones libres del sistema GNU/Linux.

Esto nos demuestra que ser libres hoy no garantiza que seremos libres
en un año. Mantener la libertad exige defenderla, en todos los
aspectos de la vida, incluso la informática.

Cuentanos ¿Como es un día promedio de Richard Stallman, desde que te levantas hasta que te duermes?

No me gusta tener rutinas, por lo tanto cada día es diferente en los
detalles. Lo que puedo decir es que paso mucho tiempo leyendo y
contestando mis correos. Mi trabajo se hace usualmente en
comunicación, y usualmente por correo. A parte esto, leo mucho
excepto el trabajo no me deja tiempo.

¿Estas desarrollando algún proyecto que nos puedas contar?

Mi trabajo de hoy en día no es programar, es difundir la filosofía
ética de software libre. Por lo tanto, mayormente no tiene la forma
de proyectos.

¿Has pensado en tener hijos?

La idea de unirse con otro en amor para crear una mezcla es muy
romántica, pero las consecuencias son muchas molestias. Por ejemplo,
las peleas arruinan el mismo amor, y hay que dedicar la vida al ganar
dinero.

El crecimiento de población es también muy malo para el mundo. La
población actual parece más que la tierra puede soportar. Estamos
estropeando nuestro mundo. El no tener hijos es un acto muy importante
para protegerlo.

¿Deseas agregar algo más?

La libertad no se defiende sola; tú tienes que defenderla.

Si aprecias el trabajo del movimiento de software libre, y del
Proyecto GNU, la mejor manera de agradecernos es contribuir.
Programar no es la única manera de contribuir: gnu.org/help sugiere
muchas más.

Para defender tu libertad, tienes que organizar. Si tu país propone
firmar un tratado de comercio con los EEUU, casi seguro que es
injusto. Organiza para que no se firme, o si ya se firmó, para
anularlo. (El Presidente Correa de Ecuador ha rechazado firmar un
tratado; es un muy buen ejemplo.)

Últimamente tienes que resistir la tentación de ceder tu libertad.
Por lo tanto, nunca compres ningún producto que implemente la Gestión
Digital de Restricciones (es decir, DRM) sin tener acceso personal a
las medidas necesarias para superarla.

Fuente: http://gnu.org/help
http://www.tecnologiaslibres.net/2008/06/29/entrevista-a-richard-stallman-desde-chile/

jueves, 3 de julio de 2008

Instalar BackTrack 3 final

Con el lanzamiento de la nueva versión 3 final de esta gran distro, también tenemos nuevas formas de instalación. En esta entrada vamos a ver dos de los tres tipos de instalación, estos son, en un pendrive y en el disco duro


En un Pendrive

Para instalarla en un pendrive necesitamos bajar la siguiente imagen ---> bt3final_usb.iso

Ya descargada el proceso es muy fácil. Basicamente es copiar el contenido en el pendrive. Esto lo podemos conseguir de distintas formas, una de ellas es esta:

* montar la imagen en un directorio:
$ mkdir bt3
# mount -o loop bt3final_usb.iso bt3/

* copiamos el contenido de la carpeta montada en el pendrive:
cp -a bt3/* /media/sda1 # Siendo sda1 el pendrive, obvio.

Esto es exactamente lo mismo a entrar a la carpeta y hacer un "copiar/pegar" con el mouse :)

* Ahora basta entrar a la carpeta boot del pendrive y correr un script
- Si estamos en linux lo hacemos asì:
# cd /media/sda1/boot/
# sh bootinst.sh
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Welcome to Slax boot installer
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This installer will setup disk /dev/sda1 to boot only Slax.

Warning! Master boot record (MBR) of /dev/sda will be overwritten.
If you use /dev/sda to boot any existing operating system, it will not work
anymore. Only Slax will boot from this device. Be careful!

Press any key to continue, or Ctrl+C to abort...
##ENTER##

Flushing filesystem buffers, this may take a while...
Setting up MBR on /dev/sda...
The Master Boot Record of /dev/sda has been updated.
Activating partition /dev/sda1...
No partition table modifications are needed.
Updating MBR on /dev/sda...
Setting up boot record for /dev/sda1...
Disk /dev/sda1 should be bootable now. Installation finished.

Read the information above and then press any key to exit...

##ENTER##

- Desde windows correr el script bootinst.bat

Y listo, ahora solo nos resta reiniciar y entrar a la bios para configurar que botee primero desde la unidad usb.


En el disco duro

Según he estado leyendo en el foro de la comunidad de Backtrack, la gente que hace esta distro esta orientando a que sea instalada principalmente desde un pendrive por lo que ya no esta disponible un instalador gráfico como en la version 2. En un comienzo me parece excelente la idea, todavia más considerando lo bien que anda desde una memoria usb. Pero tambien la podemos instalar en el disco duro en caso de ser necesario.

Para comenzar descargar esta imagen ---> bt3-final.iso

Una vez descargada y quemada en un cd, entramos como liveCD y preparamos las particiones. En este caso solo vamos a necesitar 2 particiones, una para /(raiz) y otra para la swap. No voi a explicar como particionar porque se supone que cada uno ya lo sabe, pero para particionar recomiendo qtparted que ya viene incluida en la distro :)

Supongamos que la queremos instalar en la segunda particion del primer disco duro IDE (hda2) y que la swap estará en la tercera particion del mismo disco duro (hda3).

Hechas las particiones activamos la swap y montamos la partición donde va estar el directorio /(raiz) :

# swapon /dev/hda3 # la swap la creamos antes!
# mkdir /mnt/bt3
# mount /dev/hda2 /mnt/bt3

Ahora copiamos los directorios conservando sus propiedades a la partición seleccionada y creamos los que vamos a necesitar

# cp -p -R /{bin,boot,dev,home,pentest,root,usr,etc,lib,opt,sbin,var} /mnt/bt3/
# mkdir /mnt/bt3/{boot,mnt,proc,sys,tmp}

Remontamos y asignamos el tipo de directorio a /dev y /proc

# mount --bind /dev/ /mnt/backtrack/dev/
# mount -t proc proc /mnt/backtrack/proc/

Solo falta instalar un gestor de arranque. Como sabemos Backtrack usa lilo por defecto, si lo queremos usar lo instalamos de la siguiente manera:

# chroot /mnt/bt3
# vim /etc/lilo.conf # editamos según corresponda, para este caso seria algo así

# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/hda2
label = BackTrack
read-only
Y actualizamos lilo

# lilo -v

En mi caso uso el grub de OpenSuSE, por lo que añado BackTrack al grub

# vim /boot/grub/menu.lst

title BackTrack 3
kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 ro quiet vga=0x317

Y ya solo nos resta usar nuestro nuevo juguete ;)