[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Traducción de, repository-howto



hola adjunto el documento traducido al español del howto repository, esto para su revisión y quizás su aprobación, bueno mas que traducirlo hice un re-make de la guía quedo igual pero en español (ya tengo algo de experiencia en la fabricación de repositorios)

Saludos desde Bolivia.

--
Atte:
Gary Ariel Sandi Vigabriel
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Translation based on English revision 1.?? -->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
     "http://docbook.org/xml/4.2/docbookx.dtd";>
<article lang="es_ES">
  <articleinfo>
    <title>Debian Repository HOWTO</title>
	<subtitle>
         Versión en español de <foreignphrase>Debian Repository HOWTO</foreignphrase>
    </subtitle>
    <author>
      <firstname>Aaron</firstname>
      <surname>Isotton</surname>
      <affiliation>
        <address><email>aaron@isotton.com</email></address>
      </affiliation>
    </author>

	<othercredit role="traduction" class="translator">
     <firstname>Gary Ariel</firstname>
     <surname>Sandi Vigabriel</surname>
     <contrib>Adaptación al Español</contrib>
     <affiliation>
	  <address><email>gary.gsv@gmail.com</email></address>
	</affiliation>
   </othercredit>

    <abstract>
      <para>Este documento explica qué es un repositorio Debian y también como 
        configurar uno.</para>
    </abstract>
  </articleinfo>
  
  <section id="intro">
    <title>Introducción</title>

    <para>
	Un repositorio es un conjunto de paquetes Debian organizados en
	un directorio especial el cual también contiene una gran cantidad
	de archivos que contienen índices y checksums de los paquetes.
	El usuario puede añadir el repositorio al archivo
	<filename>/etc/apt/sources.list</filename>
	, el usuario puede ver e instalar todos los paquetes disponibles
	en el repositorio de paquetes Debian.
	</para>

    <para>
	Un repositorio puede estar online y offline o ambos (por ejemplo
	en un CD-ROM), aun que el primero es el más común de los casos.
	</para>

    <para>
	Este documento explica cómo trabaja un repositorio Debian,
	como crear uno, y como añadirlo al archivo
      <filename>sources.list</filename> de manera correcta.</para>

    <para>La localización principal de este documento original es <ulink
        url="http://www.isotton.com/debian/docs/repository-howto/"/>.</para>

    <section id="copyright">
      <title>Copyright y Licencia</title>

      <para>El documento, <emphasis>Debian Repository
          HOWTO</emphasis>, Copyright (c) 2002-2003 by
          <emphasis>Aaron Isotton</emphasis>.  
		  Tiene permiso de copiar, distribuir y/o modificar este documentos bajo
		  los términos de la GNU Free Documentation Licence, versión 1.1 o
		  cualquier versión posterior publicata po la Free Software Foundation;
		  sin la Seccion de Invariantes, sin Front-Cover Texts, y
          sin Back-Cover Texts.</para>
    </section> <!-- copyright  -->
	
    <section id="feedback">
      <title>Opiniones</title>

      <para>
        Puede enviar correcciones, opiniones y otros al traductor de este HOWTO
		a la siguiente dirección de correo electrónico: <email>gary.gsv@gmail.com</email>
		o a la lista de discusión <email>debian-l10n-spanish@lists.debian.org</email>
      </para>
    </section> <!-- feedback -->
  </section> <!-- intro -->

  <section id="terms">
    <title>Términos usados en este documento</title>

    <variablelist>
      <varlistentry>
        <term>Distribuciones</term>

        <listitem><para>Las tres distribuciones Debian:
          <emphasis>estable (stable)</emphasis>, <emphasis>pruebas(testing)</emphasis>
          e <emphasis>inestable(unstable)</emphasis>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>Indice de archivos</term>

        <listitem><para>El archivo <filename>Packages.gz</filename> y
            <filename>Sources.gz</filename></para>
        </listitem>
      </varlistentry>
    </variablelist>
  </section>

  <section id="how-it-works">
    <title>Como trabajan los repositorios</title>

    <para>
      Un repositorio consiste en nada menos que un directorio con algunos 
	  paquetes DEB dentro del mismo, y especialmente dos archivos:
	  <filename>Packages.gz</filename> para los paquetes binarios, y
	  <filename>Sources.gz</filename> para el código fuente.</para>

    <para>Si su repositorio esta listado correctamente en el archivo
      <filename>sources.list</filename> (en lo posterior),
      <command>apt-get</command> buscara a
      <filename>Packages.gz</filename> el índice de paquetes binarios listados
	  
      con la palabra (<literal>deb</literal>) y
      <filename>Sources.gz</filename> si se lista el código fuente que se muestra con
	  la palabra (<literal>deb-src</literal>).</para>

    <para><filename>Packages.gz</filename> contiene el nombre, versión,
      tamaño, la descripción corta y descripción extendida, y las dependencias
	  de cada uno de los paquetes, más alguna información adicional la cual no
	  nos interesa. Toda la información esta listada (y usada por) El manejador
	  de paquetes Debian tales como 
      <command>dselect</command> o
      <command>aptitude</command>.</para>

    <para><filename>Sources.gz</filename> contiene el nombre, versión,
	  y las dependencias de compilación (las que el paquete requiere para compilarse)
	  para cada paquete (más alguna información que no nos interesa, demasiado);
      información que es usada por <command>apt-get
      source</command> y herramientas similares.</para>

    <para>El archivo<filename>Release</filename> es opcional 
      contiene mas información acerca de su repositorio; este es usado
	  para<emphasis>Pinning</emphasis>, u otros intereses.
	  puede leer más acerca de pinning en
	  
      <ulink
      url="http://www.debian.org/doc/manuals/apt-howto/";>APT
      HOWTO</ulink>.</para>

    <para>Así usted puede configurar su repositorio, usted puede listar
	  instalar todos sus paquetes en Debian;
	  si usted actualiza un paquete, este es actualizado cuando el usuario ejecuta
      <command>apt-get update &amp;&amp; apt-get upgrade</command>; y todos los usuarios
	  pueden ver fácilmente una pequeña descripción y otra información importante
      acerca de su paquete.</para>

    <para>Pero hay más de esto.  Si los crea apropiadamente, los repositorios
	  pueden ofrecer diferentes paquetes para cada distribución soportada y
	  para cada una de las (once actuales) arquitecturas soportadas;
      <literal>apt</literal> puede buscar automáticamente los apropiados para
	  el equipo del usuario, sin que el tenga conocimiento acerca de todas
	  las diferentes arquitecturas. Es también le permite agrupar sus paquetes
	  en componentes, justo como están divididos los paquetes Debian
      en <literal>main</literal>, <literal>non-free</literal> y
      <literal>contrib</literal>.  tambien, especialmente 
	  si su software es multi-plataforma, 
      usted puede crear su propio repositorio.</para>

  </section> <!-- how-it-works -->

  <section id="setting-up">
    <title>Como crear su Repositorio</title>

    <para>Existen dos tipos de repositorios: el más complejo de ellos
	donde el usuario solo especifica la ruta base del repositorio,
	la distribución y los componentes (apt enlista automáticamente
	la arquitectura apropiada, si esta disponible), o simplemente cuando
	el usuario a especificado la ruta exacta (y apt mágicamente busca fuera
    los paquetes apropiados para esta ruta). La primera es la más compleja
	para configurar, pero fácil de usar, y siempre deberíamos usar la compleja
	para tener repositorios multiplataforma; el ultima es muy simple de configurar,
	pero además es solamente usado para repositorios de una arquitectura.</para>

    <para>Aún que esto no es realmente correcto, usaremos la primera
	  <emphasis>Repositorios automáticos</emphasis> y después
      <emphasis>Repositorios triviales</emphasis>.</para>
    <section>

      <title>Repositorios automáticos</title>

      <para>La estructura de un repositorio automático con
		las arquitecturas y componentes estándar de Debian es:
	  </para>

      <example id="debian-repository-example">
        <title>Repositorio Debian Estándar</title>

      <screen>(directorio raíz de su repositorio) 
| 
+-dists
  | 
  |-stable
  | |-main
  | | |-binary-alpha 
  | | |-binary-arm
  | | |-binary-...
  | | +-source 
  | |-contrib
  | | |-binary-alpha 
  | | |-binary-arm
  | | |-binary-...
  | | +-source 
  | +-non-free
  |   |-binary-alpha
  |   |-binary-arm
  |   |-binary-...
  |   +-source
  |
  |-testing 
  | |-main
  | | |-binary-alpha 
  | | |-binary-arm
  | | |-binary-...
  | | +-source 
  | |-contrib
  | | |-binary-alpha 
  | | |-binary-arm
  | | |-binary-...
  | | +-source 
  | +-non-free
  |   |-binary-alpha
  |   |-binary-arm
  |   |-binary-...
  |   +-source
  |
  +-unstable 
    |-main
    | |-binary-alpha 
    | |-binary-arm
    | |-binary-...
    | +-source 
    |-contrib
    | |-binary-alpha 
    | |-binary-arm
    | |-binary-...
    | +-source 
    +-non-free
      |-binary-alpha
      |-binary-arm
      |-binary-...
      +-source</screen>

      </example>

      <para>Los paquetes libres van en <literal>main</literal>; los paquetes no libres
		en <literal>non-free</literal>, y los paquetes
		libres que dependen de otro paquete no libre estan en
        <literal>contrib</literal>.  En la actualidad Debian soporta 11
		arquitecturas; Se omitirán la mayoría de ellos para ser breves,
		en la explicación de este documento.		
      </para>

      <para>Un directorio <filename>binary-*</filename> contiene a
        <filename>Packages.gz</filename> y opcionalmente un archivo
        <filename>Release</filename>; un directorio
        <filename>source</filename> contiene a
        <filename>Sources.gz</filename> y opcionalmente un archivo
        <filename>Release</filename> .  Note que los paquetes
		no tienen por que estar en este mismo directorio ya que este esta
		destinado solamente para los archivo índice, estos contienen
		los índices de archivos que contienen las rutas a cada paquete;
		en efecto, estos pueden estar en 
        <emphasis>cualquier lugar</emphasis> en el repositorio.  Esto
		hace posible crear <link
        linkend="pools">pools</link>.</para>

      <para>Usted es libre de crear muchas distribuciones y
	  componentes y llamar al mejor; Uno de los usados en el ejemplo
	  es justamente uno usado en Debian. Usted podría, por ejemplo, crear
	  la distribución <literal>current</literal>
        y <literal>beta</literal> (dentro de
        <literal>stable</literal>, <literal>testing</literal> y
        <literal>unstable</literal>), y los componentes
        <literal>foo</literal>, <literal>bar</literal>,
        <literal>baz</literal> y <literal>qux</literal> (dentro de
        <literal>main</literal>, <literal>contrib</literal> y
        <literal>non-free</literal>).</para>

      <para>Usted es libre de llamar a los componentes que requiere, esto
	  es una buena idea para usar las distribuciones estándar Debian,
	  por que estos son lo que los usuarios de Debian esperan.</para>

      </section>

    <section>

      <title>Repositorios Triviales</title>

      <para>Los repositorios triviales consisten en un directorio raíz y 
		la cantidad de subdirectorios que desee. Como los usuarios tienen
		que especificar la ruta a la raíz del repositorio y las rutas relativas
		entre la raíz y el directorio que contiene los archivos índice el el,
		usted puede usarlos cuando quiera usando siempre la raíz del repositorio;
		esto usando la ruta relativa simplemente con 
        <quote><filename>/</filename></quote>).</para>

      <example id="trivial-example">
        <title>Un repositorio Trivial con dos subdirectorios</title>
        
        <screen>(su directorio raíz)
|
|-binary
+-source</screen>
      </example>

    </section>

    <section>
      <title>Creando archivos índice</title>

      <para><command>dpkg-scanpackages</command> genera el archivo
        <filename>Packages</filename> y
        <command>dpkg-scansources</command> el archivo
        <filename>Sources</filename>.</para>

      <para>Ambos envían su salida a stdout; así se genera
		un archivo comprimido, usted puede usar un comando para encadenarlo:
		<command>dpkg-scanpackages
        <replaceable>argumentos</replaceable> | gzip -9c &gt;
        Packages.gz</command>.</para>

      <para>Estas dos herramientas trabajan de la misma manera; ambas
		tienen dos argumentos (en realidad tienen más, pero no explicaremos
		todos los argumentos aquí; usted Puede leer mas en los manpages de
		cada herramienta para saber más); el primer directorio contiene
		los paquetes, y el segundo es 
		<emphasis>archivos anulados</emphasis>.  Nosotros no necesitamos
		anular archivos por que tenemos un repositorio simple, pero esto es
		un argumento requerido, le pasamos simplemente
        <literal>/dev/null</literal>.</para>

      <para><command>dpkg-scanpackages</command> escanea los paquetes
        <filename>.deb</filename>;
        <command>dpkg-scansources</command> escanea los archivos
        <filename>.dsc</filename>.  esto siempre es necesario para 
        los archivos <filename>.orig.gz</filename>,
        <filename>.diff.gz</filename> y <filename>.dsc</filename>.
		Los archivos <filename>.changes</filename> son innecesarios.</para>

      <para>Así es como puede crear un repositorio trivial como este
	  <xref linkend="trivial-example"/>, usted puede crear los
	  dos archivos índices de la siguiente manera:</para>
      
      <screen>$ cd my-repository
$ dpkg-scanpackages binary /dev/null | gzip -9c &gt; binary/Packages.gz
$ dpkg-scansources source /dev/null | gzip -9c &gt; source/Sources.gz</screen>

      <para>Si usted tiene un repositorio complejo puede revisar en <xref
          linkend="debian-repository-example"/>, udtes debera escribir
		  algunos scripts para automatizar el proceso.</para>

      <para>Usted puede usar el argumento
        <replaceable>pathprefix</replaceable> de las dos herramientas
		para simplificar un poco la sintaxis; Se realizo un ejercicio
		para el lector.(Este esta documentado en las paginas man).</para>
    </section>

    <section id="release">
      <!-- todo: Release should be between <filename> tags, but then
      xmltex won't compile it --> 
      <title>Creando los archivos Release</title>

      <para>Si usted quiere activar el uso de <emphasis>Pinning</emphasis>
		para los usuarios de su repositorio, Necesariamente debe incluir
		el archivo <filename>Release</filename> en todos los directorios
        que contienen un archivo índice.  (Puede leer más acerca de pinning en
		el siguiente enlace<ulink
        url="http://www.debian.org/doc/manuals/apt-howto/";>APT
        HOWTO</ulink>).</para>

      <para>El archivo <filename>Release</filename> es simple y
        corto, su contenido es el siguiente:</para>

      <screen>Archive: <replaceable>archivo</replaceable>
Component: <replaceable>componente</replaceable>
Origin: <replaceable>sucompañia</replaceable>
Label: <replaceable>sucompañia repositorio Debian</replaceable>
Architecture: <replaceable>arquitectura</replaceable></screen>

      <variablelist>
        <varlistentry>
          <term><literal>Archive</literal></term>

          <listitem>
            <para>El nombre de su distribución de Debian los paquetes
			en este directorio encajan a (o estan diseñador para),
			la rama<literal>stable</literal>,
              <literal>testing</literal> o
              <literal>unstable</literal>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><literal>Component</literal></term>

          <listitem>
            <para>El componente de los paquetes en el directorio,
			por ejemplo <literal>main</literal>,
            <literal>non-free</literal>, o
            <literal>contrib</literal>.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><literal>Origin</literal></term>

          <listitem>
            <para>El nombre de quien fabrico los paquetes.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><literal>Label</literal></term>

          <listitem>
            <para>Una etiqueta adecuada para sus paquetes en el repositorio. 
			Puede usar cualquier nombre o descripción breve.</para>
          </listitem>
        </varlistentry>

        <varlistentry>
          <term><literal>Architecture</literal></term>

          <listitem>
            <para>La arquitectura de los paquetes en el directorio actual,
			arquitecturas como <literal>i386</literal>,
              <literal>amd64</literal> o
              <literal>source</literal> para el código fuente.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para>Esto es impotante para obtener los <literal>Archivos</literal> y
        <literal>Arquitecturas</literal> apropiadas, esto es lo mas usado por
        pinning.  Los otros no son inpresindibles.</para>
    </section>

    <section id="pools">
      <title>Creando Pools</title>

      <para>Con los repositorios automáticos, distribuyendo los paquetes
		en los diferentes directorios es mas fácil dirigir a una bestia
		indomable. Esto también es un desperdicio de espacio y ancho de banda,
		si tiene allí muchos paquetes (por ejemplo, paquetes de documentación)
		los cuales se repiten en todas las arquitecturas.</para>

      <para>En estos casos, una posible solución es un
        <emphasis>pool</emphasis>. Un pool es un directorio adicional
        bajo la raíz del repositorio que contiene <emphasis>todos</emphasis>
        los paquetes (Los binarios para todas la arquitecturas, distribuciones,
		componentes y todo el código fuente).  Atravez de un elegante
		combinación de archivos anulados (el cual no es descrito en este documento) 
		y de scripts para poder evitar muchos problemas. El mejor
		ejemplo de un repositorio usando pools es el mismo repositorio 
		de Debian.</para>
        

      <para>Los pools son usados principalmente para repositorios grandes; 
		jamás he usado uno por qué no lo necesito y no creo que lo necesite,
		y no lo voy a explicar en este documento. Si usted piensa que la sección
		de pools debe ser añadida a este documento, es libre de escribirla,
		y contactarme para añadirla.</para>

    </section>

    <section>
      <title>Herramientas</title>

      <para>Estas son varias herramientas para automatizar y facilitar la creación
		de archivos Debian; A continuación mencionaremos las más destacadas.</para>

      <para><command>apt-ftparchive</command> es usado para mover una
		colección de paquetes Debian a una jerarquía de archivos 
		apropiada la cual es usada en el archivo oficial Debian. Este es parte
		del paquete <literal>apt-utils</literal>.</para>

      <para><command>apt-move</command> es usado para mover una colección
		de paquetes Debian en una jerarquía de archivos apropiada, es usada
		en el archivo oficial Debian.</para>

    </section>

  </section> <!-- setting-up -->

  <section id="using-a-repository">
    <title>Usar un repositorio</title>

    <para>Usar un repositorio es muy simple, pero esto depende de
		que tipo de repositorios hizo: binarios o código fuente, y
		automatico o trivial.</para>

    <para>Cada repositorio obtiene una línea en
      <filename>sources.list</filename>; para los binarios use el comando
      <literal>deb</literal>, y para el código fuente use el comando
      <literal>deb-src</literal>.</para>

    <para>Cada línea tiene la siguiente sintaxis:

      <screen>deb|deb-src <replaceable>dirección_web</replaceable> <replaceable>distribución</replaceable> [<replaceable>componente1</replaceable>] [<replaceable>componente2</replaceable>] [...]</screen>

      La <replaceable>dirección_web</replaceable> es el URI de la raíz del 
	  repositorio, tal como 
      <literal>ftp://ftp.yoursite.com/debian</literal>,
	  <literal>http://yoursite.com/debian</literal>, o de manera local (sin red y sin internet),
      <literal>file::///home/joe/my-debian-repository</literal>.  
      La barra (slash) es opcional.</para>

    <para>Para repositorios automáticos, debe especificar una
	  distribución y uno o mas componentes; la distribución no termina con barra (slash).</para>

    <example>
      <!-- todo: sources.list should be tagged as <filename>, but xmltex
      doesn't support that -->
      <title>Dos repositorios automáticos de sources.list</title>

      <screen>deb ftp://sunsite.cnlab-switch.ch/mirror/debian/ unstable main contrib non-free
deb-src ftp://sunsite.cnlab-switch.ch/mirror/debian/ unstable main contrib non-free</screen>

      <para>Estas dos líneas especifican un repositorio automatico de
		binarios y código fuente con la raíz
      <literal>ftp://sunsite.cnlab-switch.ch/mirror/debian/</literal>,
      la distribución <literal>unstable</literal> y los componentes
      <literal>main</literal>, <literal>contrib</literal> y
      <literal>non-free</literal>.</para>
    </example>

    <para>si el repositorio no es automático, entonces en la
      <emphasis>distribución</emphasis> especifique la ruta relativa
	  a el archivo índice y debe terminar con una barra (slash), y no debe
	  especificar componentes.</para>

    <example>
      <title>Dos repositorios de 
      <filename>sources.list</filename></title>

      <screen>deb file:///home/aisotton/rep-exact binary/
deb-src file:///home/aisotton/rep-exact source/</screen>

      <para>La primera de las dos líneas especifica un repositorio binario
        en <filename>/home/aisotton/rep-exact/binary</filename> en la
        maquina actual; la segunda especifica repositorios código fuente en
        <filename>/home/aisotton/rep-exact/source</filename>.</para>
    </example>
  </section> <!-- using-a-repository -->

  <section>
    <title>Vea También</title>

    <itemizedlist>
      <listitem>
        <para>La documentación de <command>apt-ftparchive</command>.</para>
      </listitem>

      <listitem>
        <para>La documentación de <command>apt-get</command> y la documentación, para
		<literal>apt</literal>.</para>
      </listitem>

      <listitem>
        <para>La documentación de  <command>apt-move</command>.</para>
      </listitem>

      <listitem>
        <para><ulink url="http://www.apt-get.org/"/> para mas ejemplos
          de repositorios en el mundo real.</para>
      </listitem>
        
      <listitem>
        <para>En <ulink
            url="http://www.debian.org/doc/manuals/apt-howto/";>APT
            HOWTO</ulink>.</para>
      </listitem>


      <listitem>
        <para>La documentación de <command>dpkg-scanpackages</command>.</para>
      </listitem>

      <listitem>
        <para>La documentación de <command>dpkg-scansources</command>.</para>
      </listitem>

      <listitem>
        <para>La pagina de ayuda (manpage) <literal>sources.list(5)</literal>.</para>
      </listitem>
    </itemizedlist>

  </section>
</article>

Reply to: