<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sandboxed &#187; debian</title>
	<atom:link href="http://www.sandboxed.org/index.php/tag/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sandboxed.org</link>
	<description>mostly harmless...</description>
	<lastBuildDate>Tue, 30 Aug 2011 14:54:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>TechTip: Recompilando paquetes en debian</title>
		<link>http://www.sandboxed.org/index.php/2010/07/recompilando-paquetes-en-debian/</link>
		<comments>http://www.sandboxed.org/index.php/2010/07/recompilando-paquetes-en-debian/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 16:39:39 +0000</pubDate>
		<dc:creator>desleido</dc:creator>
				<category><![CDATA[tecnología]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[techtip]]></category>
		<category><![CDATA[técnico]]></category>

		<guid isPermaLink="false">http://www.sandboxed.org/?p=199</guid>
		<description><![CDATA[Muchas veces encontramos que los paquetes que nos ofrece debian precisan de algún ajuste, por necesidad o por capricho. A continuación viene una nota técnica de cómo hacerlo rápidamente y sin complicaciones. Para empezar, comprobaremos que nuestro archivo de repositorios /etc/apt/sources.list está configurado para que podamos descargarnos las fuentes de los paquetes que queramos modificar. [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces encontramos que los paquetes que nos ofrece debian precisan de algún ajuste, por necesidad o por capricho. A continuación viene una nota técnica de cómo hacerlo rápidamente y sin complicaciones.</p>
<p>Para empezar, comprobaremos que nuestro archivo de repositorios <strong>/etc/apt/sources.list </strong>está configurado para que podamos descargarnos las fuentes de los paquetes que queramos modificar.<br />
<span id="more-199"></span><br />
Para ello, podemos copiar las líneas que especifiquen repositorios de paquetes que comiencen por <strong>deb</strong>, y una vez copiadas entonces sustituiremos el término <strong>deb </strong>por <strong>deb-src</strong> en cada una de ellas:</p>
<pre># vim /etc/apt/sources.list

deb http://ftp.rediris.es/debian lenny main contrib non-free
<strong>deb-src</strong> http://ftp.rediris.es/debian lenny main contrib non-free
</pre>
<p>Hecho esto, procederemos primero a actualizar las listas de paquetes disponibles. Luego instalaremos el conjunto de paquetes <strong>build-essential</strong> para poder bajarnos las fuentes, y el conjunto de paquetes <strong>devscripts </strong>para facilitar la tarea de la recompilación, instalación, etc.</p>
<p>Por último, no hay que olvidar incluir las dependencias de compilación del paquete, instalables fácilmente a través de <strong>apt-get build-dep</strong>.</p>
<p>Un buen lugar para dejar las fuentes puede ser /usr/local/src.</p>
<pre># cd /usr/local/src/.
# apt-get update
# apt-get install build-essential devscripts
# apt-get source vsftpd
[...]
dpkg-source: extracting vsftpd in vsftpd-2.0.7
dpkg-source: info: unpacking vsftpd_2.0.7.orig.tar.gz
dpkg-source: info: applying vsftpd_2.0.7-1.diff.gz

# apt-get build-dep vsftpd
</pre>
<p>A partir de aquí nos habremos descargado tanto las fuentes del paquete como el código fuente descomprimido con todos los ajustes que oficialmente el equipo Debian realizó en su día.</p>
<p>Si queremos trabajar directamente sobre el código fuente original, podemos tirar del archivo <strong>.orig.tar.gz</strong>. Por norma general, será siempre mejor seguir las líneas de mantenimiento de paquetes de Debian.</p>
<pre># ls
vsftpd-2.0.7            vsftpd_2.0.7-1.dsc
vsftpd_2.0.7-1.diff.gz  vsftpd_2.0.7.orig.tar.gz
# cd vsftpd-2.0.7</pre>
<p>A partir de aquí modificaremos la configuración de cómo se compilará el software, así como el directorio <strong>debian</strong> que contiene todos los scripts involucrados en la configuración e instalación del paquete:  Podemos  incluir archivos que no se generan por defecto, modificar las  operaciones que se realizan en la instalación y borrado de este paquete,  etc&#8230;</p>
<pre>/usr/local/src/vsftpd-2.0.7# vim defs.h
(definimos algunos parámetros previos a la compilación del paquete)
[...]define VSFTP_USERNAME_MAX      256

/usr/local/src/vsftpd-2.0.7# cd debian
/usr/local/src/vsftpd-2.0.7/debian# ls
README.Debian  copyright  vsftpd.dirs     vsftpd.logrotate  vsftpd.postrm
changelog      ftpusers   vsftpd.docs     vsftpd.manpages   watch
compat         patches    vsftpd.init.d   vsftpd.pam
control        rules      vsftpd.install  vsftpd.postinst

/usr/local/src/vsftpd-2.0.7/debian# vim ftpusers
(añadimos por ejemplo al un usuario ftp en la configuración)
ftpluser

/usr/local/src/vsftpd-2.0.7/debian# vim vsftpd.pam
(modificamos la configuración de pam, para utilizar la autenticación contra otros mecanismos)
[...]

/usr/local/src/vsftpd-2.0.7/debian# vim vsftpd.logrotate

/var/log/vsftpd.log {
    # ftpd doesn't handle SIGHUP properly
    compress
    missingok
    notifempty
    rotate 15
    daily
}</pre>
<p>Una vez hechas las modificaciones, es necesario dejar un detalle del cambio en el paquete en el archivo <strong>debian/control</strong>, mediante el uso de la herramienta <strong>debchange</strong>.</p>
<p>Es siempre importante indicar de que se trata de una versión local (-l) para identificar el paquete que resultará de la recompilación, añadiendo nuestra dirección de correo, etc. Hecho esto, compilaremos el paquete mediante el uso de <strong>dpkg-buildpackage</strong> desde la raíz del directorio del código fuente.</p>
<pre>/usr/local/src/vsftpd-2.0.7/debian# debchange -u low -l .sandboxed. &amp; cd ..
vsftpd (2.0.7-1.sandboxed.1) unstable; urgency=low

* New maintainer, local version por personal use.
* This version supports now long usernames, tailored for an specific environment.-- sandbox 

&lt;sandbox@boxed.4.u.net&gt;  Mon, 19 Jul 2010 18:08:45 +0200

vsftpd (2.0.7-1) unstable; urgency=medium
* New maintainer, taking over package from Matej.
* New upstream release (Closes: #497149):
[...]

/usr/local/src/vsftpd-2.0.7# dpkg-buildpackage -rfakeroot -D -us -b &amp; cd ..</pre>
<p>Por último, descenderemos a la raíz de /usr/local/src e instalaremos el paquete recompilado&#8230;y ya habremos terminado.</p>
<pre>/usr/local/src7# dpkg -i vsftpd_2.0.7-1.sandboxed.1_i386.deb</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sandboxed.org/index.php/2010/07/recompilando-paquetes-en-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

