Me gustaría construir mi propio repositorio local en mi LAN, para que las máquinas en la LAN puedan actualizarse y actualizarse desde él. Quiero descargar los paquetes y almacenarlos en mi servidor local para poder actualizarlos, actualizarlos, instalarlos, etc., sin usar Internet.
apt
repository
grooveplex
fuente
fuente
Respuestas:
Desde el wiki de Ayuda de Ubuntu :
fuente
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
? Que esta/dev/null
haciendo alli También leí la página del manual, pero no estaba del todo claro.* Para hacer un repositorio fuera de línea a través de LAN * Instalar un servidor
web local Apache
Por defecto, el paquete Apache de Debian configurará un sitio web
/var/www
en su sistema. Para nuestros propósitos, está bien, así que no hay razón para hacer nada más. Puede probarlo fácilmente apuntando a su navegador favoritohttp://localhost
. Debería ver la página web predeterminada posterior a la instalación que en realidad está almacenada en/var/www/index.html
Crear un directorio de repositorio de paquetes de Debian
elegido para crear un directorio
/var/www/debs
para esto. Debajo, debe crear directorios de "arquitectura", uno para cada arquitectura que necesite admitir. Si está usando una sola computadora (o tipo de computadora), entonces solo necesitará una, generalmente "i386" para sistemas de 32 bits o "amd64" para 64 bits. Si está utilizando alguna otra arquitectura, supongo que probablemente ya lo sepa. Ahora solo copie los archivos de paquete ".deb" para una arquitectura dada en los directorios apropiados. Si ahora apunta su navegador web favoritohttp://localhost/debs/amd64
(por ejemplo) verá una lista de los paquetes para sistemas de 64 bits.Crear un archivo Packages.gz
Ahora necesitamos crear un archivo de catálogo para que APT lo use. Esto se hace con una utilidad llamada "dpkg-scanpackages". Aquí'
Dar a conocer el repositorio a APT
Ahora, lo único que queda por hacer es informar a APT sobre su repositorio. Para ello, actualice su archivo /etc/apt/sources.list. Necesitarás una entrada como esta:
Utilicé el nombre de host real de mi sistema en lugar de localhost; de esta manera, el código es el mismo para todas las computadoras en mi LAN, pero localhost funcionará bien si está ejecutando solo una computadora.
Ahora, actualice APT:
fuente
/var/www/debs
en esta respuesta con/var/www/html/debs
. O necesitará pasos adicionales para editar manualmente su configuración de apache en/etc/apache2
Crear un repositorio autenticado
He echado un vistazo a las respuestas aquí y en otros sitios y la mayoría tiene la desventaja (en mi humilde opinión) de que está configurando un repositorio no autenticado. Esto significa que necesita para funcionar
apt-get
con la--allow-unauthenticated
instalación de paquetes de la misma. Esto puede ser un riesgo de seguridad, especialmente en los scripts donde los paquetes que está instalando pueden no ser todos de su repositorio local.Tenga en cuenta que no he cubierto aquí cómo hacerlo disponible a través de LAN, pero esa es una configuración bastante genérica usando Apache o nginx (vea las otras respuestas aquí).
Configurar el directorio repo
Luego agregue una línea como esta para
sources.list
:Agregar y quitar paquetes
eliminar paquetes
agregar paquetes
ahora ejecute el siguiente script que genera los archivos Paquetes, Release e InRelease y los firma con su clave privada gpg:
Contenido de ejemplo del archivo conf / distributions
Origin: My_Local_Repo Label: My_Local_Repo Codename: xenial Architectures: i386 amd64 Components: main Description: My local APT repository SignWith: 12345ABC
Enlaces
https://wiki.debian.org/RepositoryFormat
http://ubuntuforums.org/showthread.php?t=1090731
https://help.ubuntu.com/community/CreateAuthenticatedRepository
fuente
date -Rc
, la corregídate -Ru
asumiendo que eso es lo que quería decir de la descripción de la ediciónTambién puede configurar el servidor de origen local mediante nginx y reprogramar:
Instalar paquetes debian
crear directorios para reprogramar y editarlo
/ srv / reprepro / ubuntu / conf / distributions
/ srv / reprepro / ubuntu / conf / options
Inclúyalo en reprepro, compílelo
Config nginx:
/etc/nginx/sites-available/vhost-packages.conf
Optimizar el tamaño del cubo:
/etc/nginx/conf.d/server_names_hash_bucket_size.conf
Referencia al enlace de la guía de instalación
fuente
Es posible que desee echar un vistazo a
apt-mirror
yapt-cacher
.Aquí hay una guía sobre cómo instalarlo y usarlo.
fuente
Las instrucciones en la respuesta de @ BigSack y la publicación wiki oficial de Ubuntu no me funcionaron en Ubuntu 18.04, hasta que hice estos dos cambios:
Genere un
Packages
archivo sin comprimir (al ejecutar esto, el directorio de trabajo debe estar donde se encuentran todos los paquetes)Agregue la siguiente entrada en
/etc/apt/sources.list
fuente
Sigue leyendo
1 Fuente: Crear un repositorio de Ubuntu
fuente
Para hacer un repositorio local sin conexión
1. haga accesible un directorio (al menos por root)
fuente
Traté de usar
apt-rdepends
como en la respuesta seleccionada, pero cuando intenté instalar el paquete desde mi repositorio local, se quejó de la falta de dependencias.apt-rdepends
no estaba enumerando algunas de las dependencias de mi paquete. Sospecho que tiene algo que ver con el hecho, queapt-cache show
muestra múltiples registros para ello.En cambio, solía
apt-cache depends
, y eso hizo el truco:Obtener una lista recursiva de dependencias
-i
: dependencias importantes solamente--recurse
: recursivoConvertirlo en una lista digerible
| tr -d "|,<,>, "
| sed -e 's/^Depends://g' | sed -e 's/^PreDepends://g'
| sort
| uniq > list.txt
Comando completo:
Descargar los paquetes
Busque los paquetes y conviértalos en Paquetes.gz
fuente
He terminado de usar apt-mirror.
Es bueno, pero necesita tener más espacio en el disco duro, ya que se sincronizará con el servidor repos.
fuente