El otro día en el curro teníamos un servidor medio caído por que si IO waiting era mas heavy que los Hellowen. El problema es que no sabíamos quien era el culpable. Nos pusimos a buscar la manera de dar con el y Txema nos apunto la existencia de iotop. Desgraciadamente el server corría una versión del kernel demasiado antigua y no nos sirvió de mucho. Pero bueno, es una herramienta interesante.

Share on Facebook
Ieup,
Toca mini-receta basado en el artículo de David en la web de crysol.
- Necesitamos un fichero setup.py. Si el software no lo trae deberemos crearlo nosotros.
- creamos el dir debian: mkdir debian
- Creamos el fichero debian/control:
Source: hola-pythoneros
Section: utils
Priority: optional
Maintainer: Juan Nadie <juan.nadie@loquesea.es>
Build-Depends: debhelper (>= 5.0.38)
Build-Depends-Indep: cdbs (>= 0.4.43), python-all-dev (>= 2.3.5-11), python-central (>= 0.5.6)
Standards-Version: 3.7.2
XS-Python-Version: all
Package: hola-pythoneros
Architecture: all
Depends: ${python:Depends}
XB-Python-Version: ${python:Versions}
Description: Ejemplo básico de script Python empaquetado en Debian GNU/Linux
Un script "hola mundo" que sirve únicamente para explicar cómo se
empaquetan scripts Python en GNU/Linux de forma adecuada.
- Creamos el rules (ojo, tiene que ser ejecutable
chmod +x debian/rules):
#!/usr/bin/make -f
DEB_PYTHON_SYSTEM=pycentral
DBK2MAN_XSL=/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/python-distutils.mk
- Creamos el debian/changelog :
dch --create
Con esto tenemos lo ultrabásico para poder compilar el paquete deb: dpkg-buildpackage
Es una manera sucia de empaquetar algo (es más una nota mental para mi que un howto) y para que el paquete sea medio decente hay que hacer muchas más cosas
Leeros el articulo de David que es más completo.
Share on Facebook
Buenas,
Si queremos procesar un fichero .changes de un paquete debian es tan sencillo como:
- Quitarle la firma
- Procesar el contenido con una librería de yaml, por ejemplo syck
En código sería lo siguiente:
import os
import GnuPGInterface
import syck
changes_file = '/tmp/factoriapegaso-panel_0.2.6-4_amd64.changes'
gnupg = GnuPGInterface.GnuPG()
ciphertext = open(changes_file).read()
p2 = gnupg.run(['--decrypt'], create_fhs=['stdin', 'stdout'])
p2.handles['stdin'].write(ciphertext)
p2.handles['stdin'].close()
decrypted_plaintext = p2.handles['stdout'].read()
p2.handles['stdout'].close()
#Puede fallar por no tener la llave GPG
try:
p2.wait()
except:
pass
changes_info = syck.load(decrypted_plaintext)
print "tenemos:"
print changes_info
No es lo mas elegante del mundo, solo una prueba de concepto
Share on Facebook
Firts post in English (just a test
. If yo want to parse a debian package changes file in python is so easy as:
import os
import GnuPGInterface
import syck
changes_file = '/tmp/factoriapegaso-panel_0.2.6-4_amd64.changes'
gnupg = GnuPGInterface.GnuPG()
ciphertext = open(changes_file).read()
p2 = gnupg.run(['--decrypt'], create_fhs=['stdin', 'stdout'])
p2.handles['stdin'].write(ciphertext)
p2.handles['stdin'].close()
decrypted_plaintext = p2.handles['stdout'].read()
p2.handles['stdout'].close()
#Puede fallar por no tener la llave GPG
try:
p2.wait()
except:
pass
changes_info = syck.load(decrypted_plaintext)
print "tenemos:"
print changes_info
Share on Facebook
Vía linux.com(en un árticulo sobre creación/modificación de livecd-s) encuentro esta útil orden para saber que paquetes deb desinstalar cuando estas en plena “operación bikini” en tu compu:
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Share on Facebook