PDA

Ver la versión completa : Paquetes .deb ubuntu



kracken9
13/01/2010, 19:24
Gente tengo una duda, cada vez que instalo un programa o actualizo, apt-get, aptitude, synaptics y otros guardan los archivos en /var/cache/apt/archives. El tema es que me gustaria poder reutilizarlos cuando instalo el sistema en otra maquina o cuando me mando un moco :hang:.

Hay alguna manera de hacer que los programas tipo aptitude y derivados busquen los archivos en algun directorio predefinido (o mejor aun en otra maquina de la red).

Si bien una de las ventajas de las nuevas distribuciones (Debian, ubuntu, centos y demas ) es el uso de repositorios, muchas veces el ancho de banda no acompaña y se vuelve una tarea bastante densa el instalar y actualizar los sistemas.

TiTuS77
14/01/2010, 09:45
Si la hay, podes hacer un repositorio local y ponerlo en el archivo de configuracion del apt que ahora no me acuerdo el nombre (donde esan puestos todos los repos)

kracken9
14/01/2010, 12:01
Si la hay, podes hacer un repositorio local y ponerlo en el archivo de configuracion del apt que ahora no me acuerdo el nombre (donde esan puestos todos los repos)

Ok, creo que se a que te referis, si logro hacerlo posteo el como se logra.

kracken9
14/01/2010, 22:17
Ok, creo que se a que te referis, si logro hacerlo posteo el como se logra.
Lo prometi y lo cumplí (en parte ya que esta informacion no es mia sino copy-paste:1:)


Como crear un repositorio con apt-cacher


Cuando estás ejecutando la misma distribución en diferentes maquinas, es interesante crear un repositorio cache en tu red para que una vez descargado un paquete de un repositorio oficial, todas las demás maquinas lo descarguen en tu red local. De esta manera, no descargarás un paquete más de una vez desde los repositorios oficiales.
Póngamonos en situación, tenemos una máquina llamada repositorio-cache, esta máquina va a actuar como un repositorio cache, básicamente, y el resto de máquinas de tu red van a usarla como respositorio.

1. Comenzando

Como es normal, en primer lugar necesitas instalar los paquetes necesarios. En la terminal escribimos:

$sudo apt-get install apt-cacher

Una vez está hecho, es el momento de empezar la configuración que se encuentra en /etc/apt-cacher/apt-cacher.conf

2. Configurando Apt-Cacher
2.1. apt-cacher.conf

Una vez abierto el archivo principal de configuración de apt-cacher: /etc/apt-cacher/apt-cacher.conf podemos comenzar a editarlo de acuerdo a nuestras necesidades.

El puerto por defecto para apt-cacher es el 3142. Si quieres puedes cambiar este valor de acuerdo a tus necesidades.

allowed_hosts: por defecto, todos los host tienen permiso de acceder a tu repositorio cache. Puedes cambiar este valor si quieres permitir que sólo ciertos host accedan a él. En mi caso, quiero permitir el acceso a mi LAN 192.168.1.0/24 y al localhost (127.0.0.1 y 127.0.1.1), por lo que cambié el valor a:

allowed_hosts=192.168.1.0/24, 127.0.1.1

ya que 127.0.0.1 siempre tiene permiso, no es necesario añadir 127.0.0.1

generate_reports: Esta opción hace que apt-cacher cree un informe sobre como de eficiente es tu cache en el uso diario. El valor por defecto es 1, si quieres deshabilitarlo deberás ponerlo a 0

path_map: Esta es una opción interesante. Aquí puedes definir diferentes redirecciones a diferentes repositorios. Para mi Ubuntu Edgy, mi path_map es:

path_map = debuntu repository.debuntu.org ; ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu ; ubuntu-security security.ubuntu.com/ubuntu

Déjame explicarte. Aquí he creado mapeados para nombres:

* debuntu para el host repository.debuntu.org
* ubuntu y ubuntu-updates para el host archive.ubuntu.com/ubuntu
* y ubuntu-security para security.ubuntu.com

Ahora, para acceder a un repositorio específico, necesitamos simplemente añadir el nombre del mapeado a nuestro servidor repositorio cache, de esta forma: repository_cache_machine:port/mapping_name

Para acceder al repositorio debuntu a través de http://repository-cache:3142/debuntu y al repositorio ubuntu secutiry a través de http://repository-cache:3142/ubuntu-security.

2.2. Activando apt-cacher al comienzo

Para arrancar apt-cacher necesitamos activarlo desde /etc/default/apt-cacher. Abre /etc/default/apt-cacher y configura AUTOSTART a 1:

AUTOSTART=1

Ahora reinicia apt-cacher:

$sudo /etc/init.d/apt-cacher restart

Ahora que apt-cacher arranca, es hora de actualizar el /etc/apt/sources.list de todos tus clientes para que cada host de la red use nuestro repositorio cache.

3. Configurando el sources.list de los clientes y el Servidor

Ahora es el momento de configurar el sources.list de los clientes: /etc/apt/sources.list. Es importante utilizar nuestro repositorio cache en el servidor también, ya que, cualquier actualización hecha por el servidor repercutirá en la cache.

Aquí esta el /etc/apt/sources.list original:

#debuntu repository
deb http://repository.debuntu.org edgy multiverse
deb-src http://repository.debuntu.org edgy multiverse

#ubuntu main repository
deb http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
deb-srchttp://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse

#ubuntu updates repository
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse

#ubuntu security updates repository
deb http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse

Para utilizar nuestro repositorio cache, necesitamos cambiar estas entradas a:

#debuntu repository
deb http://repository-cache:3142/debuntu edgy multiverse
deb-src http://repository-cache:3142/debuntu edgy multiverse

#ubuntu main repository
deb http://repository-cache:3142/ubuntu edgy main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu edgy main restricted universe multiverse

#ubuntu updates repository
deb http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse

#ubuntu security updates repository
deb http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse

Bien, ahora, cada cliente debe ser capaz de descargar los paquetes .deb desde nuestro repositorio cache:

$sudo apt-get update

debe ser ejecutado en cada cliente.

4. Importando los paquetes desde /var/cache/apt/archives/ al repositorio apt-cacher

Puede que tu servidor ya tenga una gran cantidad de paquetes en su cache local: /var/cache/apt/archives/. apt-cacher ofrece una herramienta para importar estos archivos al repositorio de apt-cacher.

Hay unos scripts muy útiles que se encuentran en /usr/share/apt-cacher/. El que nos interesa es apt-cacher-import.pl. Para importar archivos .deb desde /var/cache/apt/archives al repositorio de to apt-cacher ejecuta:

$sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

Debe ejecutarse como root o los archivos .deb no serán copiados a nuestro repositorio cache

Ahora, en el directorio /var/cache/apt-cacher/packages/ habrá unos cuantos paquetes.

5. Obteniendo el informe de uso del repositorio cache

Si dejas la opción generate_reports configurada a 1, apt-cacher generará un informe de uso diario de la cache.

Podrás acceder a él en la dirección: http://repository-cache:3142/report

Si necesitas regenerar el informe, ejecuta: $sudo /usr/share/apt-cacher/apt-cacher-report.pl

6. Conclusión

apt-cacher es una herramienta sencilla y eficiente que te ayudará a ahorrar tiempo y ancho de banda cuando utilices múltimples máquinas con la misma distribución, cosa que puede ocurrir en una red local en casa o en una compañía.

Copy-pasteado de http://meth.nireblog.com/post/2006/12/17/como-crear-un-repositorio-con-apt-cacher