Menú
Está libre
registro
hogar  /  Multimedia/ Cree un repositorio local a partir de paquetes deb. Debian: crea un repositorio local (apt-mirror) repositorio local de Ubuntu

Creamos un repositorio local de paquetes deb. Debian: crea un repositorio local (apt-mirror) repositorio local de Ubuntu

Creando un repositorio local usando la utilidad apt-mirror.
WiKi Debian recomienda este método de duplicación por ser mucho más confiable que debmirror.
Así que comencemos, instale apto-espejo: apt-get install apt-mirror Cree un directorio / mnt / repo / debian, en el que se creará un repositorio de paquetes local. Es recomendable que se trate de una partición lógica montada del disco duro, para que en caso de reinstalar el kit de distribución desde cero, al formatear la partición raíz (/), no pierda el repositorio por completo. Y directorios de servicios:
mkdir -p / mnt / repo / debian / (espejo, var, skel)
Personalización apto-espejo
Digamos que necesitamos un espejo con paquetes listos para instalar (binarios) para x64 Wheezy.
() Editando el archivo de configuración /etc/apt/mirror.list: nano /etc/apt/mirror.list ############ config ############### ### # Directorio base donde se creará un espejo local del repositorio Debian set base_path / mnt / repo / debian # # Rutas para reflejar archivos, archivos temporales y registro de ejecución apt-mirror # set mirror_path $ base_path / mirror # set skel_path $ base_path / skel # set var_path $ base_path / var # set cleanscript $ var_path / clean.sh # # Arquitectura para la que se está creando el espejo. De forma predeterminada, este es el número de arquitectura del sistema en el que se ejecuta apt-mirror (amd64, i386 u otros). No es necesario cambiar, # ya que a continuación indicaremos explícitamente tanto el espejo como la arquitectura. # set defaultarch # # Vayamos al script de posprocesamiento, no hay ningún valor predeterminado hasta que lo necesitemos. # set postmirror_script $ var_path / postmirror.sh # # No ejecutar script de posprocesamiento set run_postmirror 0 set nthreads 20 set _tilde 0 # ############# end config ####### ### #### # Espejo con paquetes wheezy x64 + fuentes deb-amd64 ftp://debian.nsu.ru/debian wheezy main contrib non-free deb-src ftp://debian.nsu.ru // debian wheezy main contrib non-free # Mirror con actualizaciones de seguridad de wheezy + fuentes deb-amd64 http://security.debian.org/ wheezy / updates main contrib non-free deb-src http://security.debian.org/ wheezy / actualiza main contrib non-free # Se requiere espejo para la instalación en red (udebs) deb-amd64 ftp://debian.nsu.ru/debian wheezy main / debian-installer # Elimina archivos no indexados en Release clean ftp: //debian.nsu .ru / debian clean http://security.debian.org # Desactive la limpieza de la carpeta seleccionada skip-clean ftp://debian.nsu.ru/debian/dists/wheezy/main/installer-amd64/ Si necesita mantener múltiples espejos para diferentes versiones y arquitecturas, luego agregamos nuevos e líneas como: # deb-alpha http://ftp.us.debian.org/debian unstable main contrib non-free # deb-amd64 http://ftp.us.debian.org/debian unstable main contrib non-free # deb-armel http://ftp.us.debian.org/debian unstable main contrib non-free # deb-hppa http://ftp.us.debian.org/debian unstable main contrib non-free # deb-i386 http://ftp.us.debian.org/debian unstable main contrib non-free # deb-ia64 http://ftp.us.debian.org/debian unstable main contrib non-free # deb-m68k http: // ftp.us.debian.org/debian unstable main contrib non-free # deb-mips http://ftp.us.debian.org/debian unstable main contrib non-free # deb-mipsel http://ftp.us. debian.org/debian unstable main contrib non-free # deb-powerpc http://ftp.us.debian.org/debian unstable main contrib non-free # deb-s390 http://ftp.us.debian.org/ debian inestable main contrib non-free # deb-sparc http://ftp.us.debian.org/debian unstable main contrib non-free Iniciar y automatizar apt-mirror
Para comenzar a crear / actualizar manualmente el espejo, ejecute el comando:
# apt-mirror Después de descargar los archivos de índice, apt-mirror le dirá cuántos paquetes necesita obtener:
Descargando 47 archivos de índice usando 20 subprocesos ... Hora de inicio: miércoles 8 de enero 21:41:11 2014 ... ... ... ... ... ... ... ... .... .. ... ... ... ... ... ... ... ... ... ... ... Hora de finalización: Wed Jan 8 21:41:33 2014 Proceed indexes: Se descargarán 84,2 GiB en el archivo. Descargando 90890 archivos comprimidos usando 20 subprocesos ... Hora de inicio: miércoles 8 de enero 21:41:50 2014 ... ... ... ... Todo lo que queda es esperar a que se complete la descarga.
Para la sincronización y limpieza automática de espejos, debe agregar una línea a la configuración de cron y establecer la hora adecuada. Los espejos oficiales se actualizan cada 6 horas: 3: 00.9: 00.15: 00.21: 00. Por ejemplo así:
crontab -l 05 01 * * * apt-mirror >> /var/log/apt-mirror.log 05 03 * * * /mnt/repo/debian/var/clean.sh >> / var / log / apt-mirror .log Configuración del acceso al espejo
Una vez finalizado el trabajo, las copias locales de todos los repositorios especificados estarán en los directorios / mnt / repo / debianmirror / repository_name. Por lo tanto, una copia del repositorio, que se definió en mirror.list como
deb-amd64 ftp://debian.nsu.ru/debian wheezy main contrib no libre
estará en el directorio /mnt/repo/debian/mirror/debian.nsu.ru/debian/. Cualquier servidor Web o FTP que le resulte conveniente debe abrir el acceso a este directorio en particular. Para su correcto funcionamiento es necesario agregar enlaces simbólicos "estable", "probando", "inestable" si los hay ...
ln -s /mnt/repo/debian/mirror/debian.nsu.ru/debian/dists/wheezy /mnt/repo/debian/mirror/debian.nsu.ru/debian/dists/stable Además, es muy recomendable firmar el repositorio recién creado

En lugar de usar dpkg -i nombre_paquete.deb para instalar, puede crear un repositorio local para los paquetes traídos en una memoria USB u otro medio, y luego usar synaptic / kynaptic (o apt-get install nombre_paquete).

1. Todas las acciones se realizan mejor como root

sudo su

2.Ahora instale el paquete dpkg-dev. Contendrá la utilidad dpkg-scanpackages, que es lo que necesitamos.

apt-get install dpkg-dev

3. Coloque todos los paquetes .deb en un directorio, por ejemplo / myrepo (y no directamente en este directorio, sino en subdirectorios ubicados en este directorio)

4. Ejecutar

cd / myrepo dpkg-scanpackages. / dev / null | gzip -9c> Paquetes.gz

5. Ahora necesita agregar el nuevo repositorio a /etc/apt/sources.list. Inserte una línea en /etc/apt/sources.list (es mejor insertar más cerca del principio, ya que apt-get (synaptic / kynaptic) prioriza la fuente antes que las demás)

archivo deb: / myrepo ./

6. Actualización de la lista de repositorios

apt-get update

Si cambia el contenido del directorio de paquetes, repita los pasos 1.4.

Para poder, si de repente le pasa algo al sistema Linux, no volver a descargar los programas, sino instalar desde lo que ya se ha descargado.

Entonces pensé en cómo asegurarme de que podríamos instalar estos programas descargados de la manera más habitual usando el comando apt-get? Pensando en esto, se me ocurrió la idea de ¿por qué no crear un repositorio local a partir de estos mismos paquetes? Pensé, busqué en Google, tomó la herramienta principal del administrador del sistema, la pandereta de administración, y comenzó a hacerlo.

Entonces, mis paquetes deb están en el mismo lugar donde los dejé, antes de reinstalar el sistema como un experimento, es decir, en el directorio de inicio en la carpeta debutante... lo tengo / inicio / dante / deb, Describí todo esto, tienes el mismo directorio donde guardaste los paquetes. Abra una terminal y vaya a la carpeta con paquetes deb. En mi caso, en la terminal, el comando se ve así:

cd / inicio / dante / deb

Debe ingresar la ruta a sus paquetes deb.
Después de ir a la carpeta con los paquetes deb guardados. Ingrese el siguiente comando:

sudo apt-ftparchive packages ./ | gzip -9> Packages.gz

A continuación, ingrese la contraseña y espere hasta que se cree el archivo Packages.gz
Ahora nuestro repositorio está prácticamente configurado, queda agregarlo a lista de fuentes... Recuperamos la terminal. Abriendo el archivo:

sudo nano /etc/apt/sources.list

Mi archivo se ve así:

archivo deb: /// inicio / dante / deb ./
# deb cdrom: / oneiric principal restringido

# Consulte http://help.ubuntu.com/community/UpgradeNotes para saber cómo actualizar a
# versiones más nuevas de la distribución.
deb http://archive.ubuntu.com/ubuntu oneiric principal restringido
deb-src http://archive.ubuntu.com/ubuntu oneiric universo principal multiverso restringido # Agregado por software-properties

## Principales actualizaciones de corrección de errores producidas después del lanzamiento final del
## distribución.
deb http://archive.ubuntu.com/ubuntu oneiric-updates principal restringido
deb-src http://archive.ubuntu.com/ubuntu oneiric-updates universo principal restringido del multiverso # Agregado por software-properties


## equipo. Además, tenga en cuenta que el software en el universo NO recibirá ningún
## revisión o actualizaciones del equipo de seguridad de Ubuntu.
deb http://archive.ubuntu.com/ubuntu universo onírico
deb http://archive.ubuntu.com/ubuntu oneiric-updates universe

## N.B. El software de este repositorio NO ES COMPLETAMENTE APOYADO por Ubuntu
## equipo, y puede que no tenga una licencia gratuita. Por favor, satisfacete en cuanto a
## sus derechos para utilizar el software. Además, tenga en cuenta que el software en
## multiverse NO recibirá ninguna revisión o actualización de Ubuntu
## equipo de seguridad.
deb http://archive.ubuntu.com/ubuntu oneiric multiverse
deb http://archive.ubuntu.com/ubuntu oneiric-updates multiverse

## N.B. Es posible que el software de este repositorio no se haya probado como
## extensamente como el contenido en la versión principal, aunque incluye
## versiones más recientes de algunas aplicaciones que pueden proporcionar funciones útiles.
## Además, tenga en cuenta que el software en backports NO recibirá ninguna revisión
## o actualizaciones del equipo de seguridad de Ubuntu.
deb http://archive.ubuntu.com/ubuntu oneiric-backports principal universo restringido multiverso
deb-src http://archive.ubuntu.com/ubuntu oneiric-backports principal universo restringido multiverso # Agregado por propiedades de software

deb http://archive.ubuntu.com/ubuntu oneiric-security principal restringido
deb-src http://archive.ubuntu.com/ubuntu oneiric-security restringido universo principal multiverso # Agregado por software-properties
deb http://archive.ubuntu.com/ubuntu oneiric-security universe
deb http://archive.ubuntu.com/ubuntu oneiric-security multiverse

## Descomente las siguientes dos líneas para agregar software de Canonical "s
## repositorio de "socios".
## Este software no es parte de Ubuntu, pero es ofrecido por Canonical y el
## respectivos proveedores como servicio para los usuarios de Ubuntu.
deb http://archive.canonical.com/ubuntu socio onírico
deb-src http://archive.canonical.com/ubuntu socio onírico

## Este software no es parte de Ubuntu, pero lo ofrecen terceros
## desarrolladores que desean enviar su último software.
deb http://extras.ubuntu.com/ubuntu oneiric main
deb http://archive.ubuntu.com/ubuntu/ universo multiverso principal restringido propuesto por oneiric
deb-src http://archive.ubuntu.com/ubuntu/ universo multiverso principal restringido propuesto por oneiric
deb-src http://extras.ubuntu.com/ubuntu oneiric principal

Para agregar nuestra carpeta con paquetes deb a las fuentes de la aplicación, necesitamos agregar la siguiente línea.

archivo deb: /// inicio / dante / deb ./

Es mejor agregarlo al principio del archivo, ya que el sistema consulta primero los repositorios que están al principio. Lo que yo, como ya habéis visto, hice. Su ruta a la carpeta puede ser diferente, pero no se olvide al final. ./

Todo el repositorio agregado. Puede ver esto en la fuente de la aplicación. Ahora todo lo que tiene que hacer es actualizar las listas de paquetes. Esto se puede hacer en la terminal usando el comando:

sudo apt-get update

Ahora podemos instalar programas desde nuestro repositorio, que creamos a partir de los paquetes deb guardados. También es muy conveniente si descargamos paquetes deb en una computadora y los instalamos en otra.

Ha surgido un interés inactivo (definitivamente será útil, estoy seguro, pero hasta ahora inactivo), digamos que hay una enésima cantidad de máquinas en Ubuntu, y si hay muchas, entonces el tráfico de las llamadas a los repositorios de todas las máquinas será de hecho directamente proporcional a su número y si la actualización de una máquina - esto está bien, entonces 20 o más, esto ya es serio. Con unlims para una fiesta corporativa en nuestro país es malo, por lo que el problema del tráfico suele ser muy agudo. Y no vale la pena cargar el canal por nada, cuando hay soluciones simples y elegantes.

Si busca en Google sobre este tema, en primer lugar aparecerán 2 soluciones populares: apt-mirror y apt-proxy. Ambas soluciones son atractivas a su manera, pero dado que para trasladar todo esto a un plano práctico, uno debe darse cuenta y tomar una decisión, describiré brevemente las características.

Apt-mirror es un paquete que hace un espejo local completo de los repositorios. Se instala, configura, luego se inicia y descarga todo el contenido de los repositorios que especificó en la configuración. En principio, bien, porque todos los paquetes posibles estarán disponibles de inmediato y a gran velocidad. Pero, por otro lado, tendremos que bombear TODO lo que se necesita y no se necesita. Al menos este matiz acabó con la elección de apt-mirror.

Apt-proxy funciona de una manera ligeramente diferente, me gustó más. Creo que el principio es aún más intelectual. No descarga todo, sino que descarga solo lo solicitado, es decir, en la primera llamada descarga el paquete requerido de Internet, por lo que hay que esperar, y en llamadas posteriores entrega una copia local de eso. En general, el proxy de almacenamiento en caché del repositorio es nuestra elección.

En mis manos, para experimentos, había 2 autos. Un pequeño servo sin importancia en Debian Squeese y un escritorio con Ubuntu 9.10 Karmic. (En debian, decidí implementar un proxy para los representantes de karmik, en el escritorio, ajustar sources.list en consecuencia)

Pero DE REPENTE no encontré el paquete apt-proxy en los nabos de Squeese. Después de vagar por Internet, en la página del proyecto apt-proxy, aprendí que la vida es difícil y que alguien se estrelló en un accidente automovilístico al regresar de una fiesta de TI. Como resultado, la refactorización prometida no está terminada y, en general, fig lo sabe. Sin embargo, vi una lista de clones de proyectos, y he aquí, uno de ellos apareció en Debian: apt-cacher.

EN EL SERVIDOR:

Instalación:
$ sudo apt-get install apt-cacher
Configuración:
$ sudo vim /etc/apt-cacher/apt-cacher.conf

Dado que nuestras máquinas cliente usan ubuntu, escribimos path_map en la configuración:
path_map = ubuntu ru.archive.ubuntu.com/ubuntu; ubuntu-updates ru.archive.ubuntu.com/ubuntu; ubuntu-security security.ubuntu.com/ubuntu; ubuntu-partner archive.canonical.com/ubuntu

El puerto predeterminado de apt-caher es 3142. Para colgarlo en el puerto<1024, надо запускать его из под рута, что в целом не нужно.

Así, obtenemos los siguientes paquetes:
http: // localrepo: 3142 / ubuntu => http://ru.archive.ubuntu.com/ubuntu http: // localrepo: 3142 / ubuntu-updates => http://ru.archive.ubuntu.com/ubuntu http: // localrepo: 3142 / ubuntu-security => http://security.ubuntu.com/ubuntu http: // localrepo: 3142 / ubuntu-partner => http://archive.canonical.com/ubuntu

Además, lo que nos gustó, a diferencia de muchos paquetes, no es necesario especificar un kit de distribución específico, es decir, con estas configuraciones podremos servir máquinas con cualquier kit de distribución de ubuntu.

Habilite el inicio automático del demonio:
$ sudo vim / etc / default / apt-cacher
Establezca el valor: AUTOSTART = 1
Reiniciar:
$ sudo /etc/init.d/apt-cacher reiniciar
Voila. Todo está listo.

POR MÁQUINA DE ESCRITORIO:

Ahora agregamos nuestro repositorio a sources.list de la máquina de escritorio:
$ sudo vim /etc/apt/sources.list

Si es administrador de sistemas, debe instalar con frecuencia software nuevo, actualizaciones de seguridad y otros parches en sus sistemas. Si solo hubiera una computadora, esto no causaría problemas, pero generalmente hay varias computadoras en la red y todas necesitan actualizaciones. Esto puede reducir el ancho de banda de la red. En cada sistema, las aplicaciones se descargarán e instalarán directamente desde los repositorios de Ubuntu.

Pero hay una salida, puede guardar todas las aplicaciones en un servidor en la red local y luego distribuirlas a otras computadoras en esta red cuando sea necesario. El repositorio local de Ubuntu es una forma realmente rápida y eficiente de implementar aplicaciones, ya que todas las aplicaciones que necesita se extraerán instantáneamente del servidor local a alta velocidad. Por lo tanto, puede reducir el tráfico de Internet y, como resultado, reducir el costo anual de pago de Internet.

En este tutorial, le mostraré cómo configurar un repositorio local de Ubuntu 16.04 de dos maneras.

En este método, descargaremos todos los paquetes del repositorio público al disco duro del servidor de Ubuntu. Primero debe instalar el servidor web Apache. Es necesario distribuir paquetes a través de una red local:

sudo apt-get install apache2

Ahora instale apt-mirror:

sudo apt-get install apt-mirror

Cree un directorio donde se descargarán todos los paquetes:

sudo mkdir / myrepo

Ahora abra el archivo /etc/apt/mirror.list y agregue la siguiente línea:

sudo vi /etc/apt/mirror.list

############# config ##################
#
# establecer ruta_base / var / spool / apt-mirror

establecer ruta_base / myrepo

Aquí / myrepo es la dirección de la carpeta que acaba de crear. También en este archivo de configuración puede especificar los repositorios que desea usar, usaremos los estándar, pero también puede agregar PPA. Si desea utilizar arquitecturas x64 y x32, los repositorios correspondientes deben especificarse por separado en el archivo.

Por ejemplo, para x32, la línea comenzará con deb-i386 y para x64: deb-amd64. Cuando haya terminado con la configuración, comience a descargar los paquetes con el comando:

La terminal mostrará algo como:

Descargando 162 archivos de índice usando 20 hilos ...
Hora de inicio: miércoles 5 de agosto 16:09:16 2015
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Actualmente, todos los paquetes del repositorio público de Ubuntu se descargan y almacenan en una carpeta local. En nuestro caso, en la carpeta / myrepo. Dependiendo de su velocidad de Internet, esto puede llevar varias horas. Puede cancelar la descarga en cualquier momento, cuando la reanude, continuará donde la interrumpió.

No tiene que ejecutar manualmente este comando todos los días para actualizar el repositorio, puede programar un trabajo cron. Para hacer esto, descomente la siguiente línea en el archivo /etc/cron.d/apt-mirror:

sudo vi /etc/cron.d/apt-mirror

# Trabajos cron regulares para el paquete apt-mirror
#
0 4 * * * apt-mirror / usr / bin / apt-mirror> /var/spool/apt-mirror/var/cron.log

En este ejemplo, Cron ejecutará una actualización de paquete a las cuatro de la mañana todos los días.

Una vez completada la descarga, compruebe si hay paquetes en el directorio / myrepo

Ahora necesita hacer que los paquetes estén disponibles a través de la red. Para hacer esto, creemos un enlace simbólico:

sudo ln -s /myrepo/mirror/us.archive.ubuntu.com/ubuntu/ ubuntu

Configuración del cliente

La configuración en una máquina cliente es sencilla. Simplemente abra el archivo /etc/apt/sources.list y agregue su repositorio local, al igual que agregó el remoto, solo use la dirección IP de su máquina:

sudo vi /etc/apt/sources.list

[...]
deb http://192.168.1.102/ubuntu universo de confianza
deb http://192.168.1.102/ubuntu confiable principal restringido
deb http://192.168.1.102/ubuntu trusty-updates principal restringido
[...]

Eso es todo aqui 192.168.1.102: dirección del servidor con el repositorio. Ahora actualice las listas de paquetes:

sudo apt-get update

Para instalar el programa, simplemente ejecute el comando estándar:

sudo apt-get install nombre-paquete

La configuración de apt-mirror ubuntu 16.04 ahora está completa. Ahora los clientes no necesitan una conexión a Internet para descargar paquetes. Recibirán todos los paquetes y actualizaciones de su repositorio de Ubuntu local.

Método 2: APT-Cacher

Hay más de una forma de crear un repositorio ubuntu local. Apt-cacher es ligeramente diferente de apt-mirror. No descarga todos los paquetes del repositorio, solo guarda y pone a disposición de todos aquellos que fueron solicitados una vez.

Primero, instale el servidor Apache:

sudo apt-get install apache2

Entonces apt-cahcer:

sudo apt-get install apt-cacher

Seleccione el método de lanzamiento - demonio y presione ok:

Ahora necesita editar / etc / default / apt-cacher, estableciendo el parámetro de inicio automático en 1.

sudo vi / etc / default / apt-cacher

archivo de configuración de inicio del demonio apt-cacher

# Establecer en 1 para ejecutar apt-cacher como un demonio independiente, establecer en 0 si va a
# para ejecutar apt-cacher desde / etc / inetd o en modo CGI (obsoleto). Alternativamente,
# invocar "dpkg-reconfigure apt-cacher" debería hacer el trabajo por usted.
#
AUTOSTART = 1

# configuraciones adicionales para anular las de apt-cacher.conf
# EXTRAOPT = "daemon_port = 3142 límite = 30"

También puedes configurar desde qué ip será posible acceder a la caché, para ello abre el archivo /etc/apt-cacher/apt-cacher.conf y edita la línea correspondiente: Por ejemplo, permitiremos la conexión solo a equipos con ip de 192.168.1.20 a 192.168.1.30:

sudo vi /etc/apt-cacher/apt-cacher.conf

[...]
## Descomenta y establece el rango de IP ##
permitidos_hosts = 192.168.1.20 - 192.168.1.30
#denied_hosts =
[...]

Después de completar la configuración, reinicie Apache:

sudo systemctl reiniciar apache2

reinicio de apache2 del servicio sudo

Personalización del lado del cliente

Cree un archivo sudo nano /etc/apt/apt.conf.d/01proxy y agréguele la siguiente línea:

sudo nano /etc/apt/apt.conf.d/01proxy

Adquirir :: http :: Proxy "http://192.168.1.102:3142";

Aquí 192.168.1.102 es la dirección de nuestro repositorio local. Queda por actualizar las listas de paquetes:

sudo apt-get update

No estamos agregando un repositorio local de Ubuntu aquí, solo estamos usando un proxy para descargar paquetes.

conclusiones

Eso es todo. Esta tecnología será muy útil para los administradores de sistemas, así como para los usuarios comunes que tienen una Internet débil. Si tienes alguna duda, ¡pregunta en los comentarios!