Lain and Sakura

Icono

”One byte to rule them all’ – dtmf – old school

SlackBuilds en Slackware 12.1

Dedicado a ASCIIGirl ^.^” (no soy mala onda x’D)

El proyecto SlackBuilds es mantenido por un pequenio grupo de personas que codifican scripts para el uso de la comunidad.

Este proyecto surge a raiz de una de las caracteristicas mas cuestionadas en Slackware … la ‘falta’ de paquetes. Siendo Slackware una distribucion que provee una gran cantidad de paqutes que satisfacen variadas y diferentes necesidades, quedan aplicaciones que no estan incluidas oficialmente y pueden ser requeridas por ciertos usuarios.
Son sabidos algunos servidores donde se suben paquetes precompilados para slackware de terceras partes, a lo cual varios usuarios justificandose reclamaron que no les era fiable el instalar estos paquetes en sus equipos por cuestiones de confianza, seguridad, etc. La solucion para estos usuarios en ese momento era descargar el codigo fuente de la aplicacion y compilarla manualmente, lo que traia inconvenientes por ejemplo en la administracion de sistemas a la hora de mantener las versiones de las distintas aplicaciones.

Solucionando este problema es que aparecen los muchachos de SlackBuilds, quienes codifican scripts que toman el source de la aplicacion y generan un paqute *.tgz, siguiendo la idea de Patrick Volkerding, quien utiliza SlackBuilds para generar los paquetes oficiales que se incluyen en cada release.

Habiendo tenido una pequenia introduccion sobre slackbuilds, veamos como utilizarlos. Para ello vamos a instalar yakuake, una terminal para kde muy bonita 🙂

Ingresamos a slackbuilds.org

bash-3.1$ links slackbuilds.org

Buscams el paquete yakuake, descargamos el source y el SlackBuild. Tambien descargamos el fichero que termina en .asc. Nos deben quedar estos ficheros:

bash-3.1$ ls -l yakuake*
-rw-r–r– 1 lain users 535406 2008-06-16 14:28 yakuake-2.8.1.tar.bz2
-rw-r–r– 1 lain users 1938 2008-06-16 14:28 yakuake.tar.gz
-rw-r–r– 1 lain users 197 2008-06-16 14:28 yakuake.tar.gz.asc

Corroboramos con la llave publica yakuake.tar.gz.asc el Slackbuild yakuake.tar.gz:
Si es la primera vez que realizamos esto, tendremos como resultado lo siguiente:

bash-3.1$ gpg-verify.py yakuake.tar.gz.asc yakuake.tar.gz
Verifying yakuake.tar.gz with yakuake.tar.gz.asc…

gpg: directory `/home/lain/.gnupg’ created
gpg: new configuration file `/home/lain/.gnupg/gpg.conf’ created
gpg: WARNING: options in `/home/lain/.gnupg/gpg.conf’ are not yet active during this run
gpg: keyring `/home/lain/.gnupg/pubring.gpg’ created
gpg: Signature made Wed 07 May 2008 03:08:34 PM ART using DSA key ID 9C7BA3B6
gpg: Can’t check signature: public key not found

No puede encontrar la clave publica … pues la pedimos:

bash-3.1$ gpg-req-key.py 9C7BA3B6
Getting 9C7BA3B6 from blackhole.pca.dfn.de…

gpg: keyring `/home/lain/.gnupg/secring.gpg’ created
gpg: requesting key 9C7BA3B6 from hkp server blackhole.pca.dfn.de
gpg: /home/lain/.gnupg/trustdb.gpg: trustdb created
gpg: key 9C7BA3B6: public key “SlackBuilds.org Development Team ” imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1

Ahora nuevamente comprobamos el Slackbuild :

bash-3.1$ gpg-verify.py yakuake.tar.gz.asc yakuake.tar.gz
Verifying yakuake.tar.gz with yakuake.tar.gz.asc…

gpg: Signature made Wed 07 May 2008 03:08:34 PM ART using DSA key ID 9C7BA3B6
gpg: Good signature from “SlackBuilds.org Development Team ”
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: D307 6BC3 E783 EE74 7F09 B8B7 0368 EF57 9C7B A3B6

Perfecto … el warning se debe a que la llave no se encuentra firmada por una llave en la que yo tenga confianza. Para mas detalles sobre esto click Aqui
Continuamos descomprimiendo el Slackbuild:

bash-3.1$ tar zxvf yakuake.tar.gz
yakuake/
yakuake/README
yakuake/doinst.sh
yakuake/slack-desc
yakuake/yakuake.SlackBuild
yakuake/yakuake.info

Seguimos, moviendo el source de yakuake dentro del SlackBuild:

bash-3.1$ mv yakuake-2.8.1.tar.bz2 ./yakuake; cd ./yakuake

Corremos el SlackBuilds (puede haber casos en los que se necesite hacer esto como root). Tambien constatar que el fichero tiene permisos de ejecucion:

bash-3.1$ ls -l ./yakuake.SlackBuild
-rwxr-xr-x 1 lain users 1616 2008-03-28 21:07 ./yakuake.SlackBuild
bash-3.1$ ./yakuake.SlackBuild

Terminado el proceso de compilacion, nos encontramos en el directorio /tmp con nuestro paqute *.tgz

bash-3.1$ find /tmp/yakuake*
/tmp/yakuake-2.8.1-i486-1_SBo.tgz

Ahora lo podemos instalar normalemente como root con pkgtool:

bash-3.1# installpkg /tmp/yakuake-2.8.1-i486-1_SBo.tgz

De esta manera podemos controlar los paqutes de nuestro sistema con pkgtool, resolviendo el problema de mantenimiento de versiones instaladas, paquetes instalados, etc! 😀

Adjunto el codigo de los dos scripts utilizados. Los mismos simplemente ejecutan gpg con los argumentos necesario y el proposito de dichos scripts es el que no podia recordar dichos parametros 😛 … Si les sirve, aqui los tienen.

gpg-verify.py

#!/usr/bin/env python
# gpg-verify.py

import os
import sys

if len(sys.argv) != 3:
print 'Usage: gpg-verify.py '
sys.exit(1)

p = '--verify'
p1 = sys.argv[1]
p2 = sys.argv[2]

print 'Verifying ' + p2 + ' with ' + p1 + '...\n'

(child_stdin,child_stdout) = os.popen4(cmd = 'gpg %s %s %s' % (p, p1, p2))

for i in child_stdout.readlines():
print i,

print '\n'

gpg-req-key.py

#!/usr/bin/env python

import os
import sys

if len(sys.argv) != 2:
print 'Usage: gpg-key-check.py '
sys.exit(1)

s = 'blackhole.pca.dfn.de'
p = '--keyserver %s' % s
k = sys.argv[1]
p1 = '--recv-keys %s' % k

print 'Getting ' + k + ' from ' + s + '...\n'

(child_stdin,child_stdout) = os.popen4(cmd = 'gpg %s %s' % (p, p1))

for i in child_stdout.readlines():
print i,

print '\n'

Anuncios

Archivado en: Python, Slackware

Virtualenv en Slackware 12.1

Dedicado a Katai ^.^”

Teniendo Python 2.4 instalado, vamos a proceder a realizar un virtualenv:

Virtual Python Environment builder:
virtualenv is a successor to workingenv, and an extension of virtual-python.
What it Does?:
virtualenv is a tool to create isolated Python environments.

A lo bestia, digamos que virtualenv es un ‘chroot’ de la instancia python que vamos a utilizar para trabajar. Mas data Aqui

Creando un Python ‘Virtual’:
Si estas en un sistema Linux, BSD, Cygwin o algun otro de OS de tipo UNIX y no tienes acceso de root, puedes crear tu propia instalacion ‘virtual’ de python, cual utiliza sus propias librerias y enlaza algunas otras con las librerias de python del sistema.

Proseguimos descargando virtual-python.py:

bash-3.1$ wget http://peak.telecommunity.com/dist/virtual-python.py

Lo instalamos:

bash-3.1$ mkdir ~/.vpython
bash-3.1$ python2.4 virtual-python.py –help
usage: virtual-python.py [options]

options:
-h, –help show this help message and exit
-v, –verbose Increase verbosity
–prefix=PREFIX The base directory to install to (default ~)
–clear Clear out the non-root install and start from scratch
–no-site-packages Don’t copy the contents of the global site-packages dir
to the non-root site-packages

bash-3.1$ python2.4 ./virtual-python.py –prefix=/home/lain/.vpython
Creating /home/lain/.vpython/lib/python2.4
Creating /home/lain/.vpython/lib/python2.4/site-packages
Creating /home/lain/.vpython/include/python2.4
Creating /home/lain/.vpython/bin
Copying /usr/local/bin/python2.4 to /home/lain/.vpython/bin
You’re now ready to download ez_setup.py, and run
/home/lain/.vpython/bin/python ez_setup.py

bash-3.1$

Ok, vamos a correr ez_setup.py (easy_install) mas datos Aqui

bash-3.1$ /home/lain/.vpython/bin/python ez_setup.py
Downloading http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c8-py2.4.egg
Processing setuptools-0.6c8-py2.4.egg
creating /home/lain/.vpython/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg
Extracting setuptools-0.6c8-py2.4.egg to /home/lain/.vpython/lib/python2.4/site-packages
Adding setuptools 0.6c8 to easy-install.pth file
Installing easy_install script to /home/lain/.vpython/bin
Installing easy_install-2.4 script to /home/lain/.vpython/bin

Installed /home/lain/.vpython/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg
Processing dependencies for setuptools==0.6c8
Finished processing dependencies for setuptools==0.6c8

Proseguimos con nuestra meta, estamos en condiciones de instalar virtualenv!

bash-3.1$ ~/.vpython/bin/easy_install-2.4 virtualenv
Searching for virtualenv
Best match: virtualenv 1.1
Processing virtualenv-1.1-py2.4.egg
virtualenv 1.1 is already the active version in easy-install.pth
Installing virtualenv script to /home/lain/.vpython/bin

Using /home/lain/.vpython/lib/python2.4/site-packages/virtualenv-1.1-py2.4.egg
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv
bash-3.1$

Ahora a crear nuestro python environment!

bash-3.1$ mkdir ~/.pyenv
bash-3.1$ ~/.vpython/bin/virtualenv ~/.pyenv
New python executable in /home/lain/.pyenv/bin/python
Installing setuptools………….done.

Voila! terminamos 🙂

bash-3.1$ ~/.pyenv/bin/python
Python 2.4.4 (#1, Jun 15 2008, 17:41:52)
[GCC 4.2.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>

El sabor de la victoria! ^.^”
Ahora podemos crear tantos pyenv como queramos en nuestro sistema y utilizar cada uno independientemente en nuestros proyectos :).

pd: bue … tmb dedicado a dergerk … derberk … derrr … dererk ~.~”

Archivado en: Plone, Python, Slackware

Instalando Python 2.4 en Slackware 12.1

La version de Python en Salckware 12.1 es Python 2.5.2 (r252:60911, Mar 1 2008, 13:52:45).
Para instalar la version 2.4 que necesitamos para Zope procedemos de la siguiente manera:

Primero bajamos el source de Python desde el sitio oficial de python

bash-3.1$ wget http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tar.bz2

Desempaquetamos:

bash-3.1$ tar jxvf Python-2.4.4.tar.bz2

Cambiamos al directorio desempaquetado:

bash-3.1$ cd Python-2.4.4

Corremos el configure:

bash-3.1$ ./configure

Compilamos, notese el parametro -j :

-j [jobs], –jobs[=jobs]
Specifies the number of jobs (commands) to run simultaneously. If there is more than one -j option, the last one is effective. If the -j option is given
without an argument, make will not limit the number of jobs that can run simultaneously.

En mi caso:

bash-3.1$ make -j3

Instalamos ( como root ):

bash-3.1$ make install

Eso es todo, ahora ejecutamos :

bash-3.1$ python2.4

Archivado en: Python, Slackware