
Actualmente estoy trabajando con Ubuntu e intento instalar un sistema Debian en una máquina virtual, lo que significa que tengo que lidiar con paquetes. Como soy nuevo en esto, he leído mucho sobre ello en la web y especialmente en la wiki de Debian (la wiki de Ubuntu también es útil). En particular, aprendí cómo crear un repositorio local y cómo editar correctamente el archivo fuentes.list.
Sin embargo, todavía tengo algunas dudas sobre cómo funciona, detalles que no pude encontrar en la web.
Primero, cuando utiliza un repositorio en línea. Entendí que apt-get seguirá el enlace que escribiste en el archivo source.list y buscará un archivo Packages.gz. Lo que no entiendo es cómo este simple archivo (que parece ser sólo una lista depaquetes instalables) permitir la instalación del paquete? ¿Packes.gz brinda información adecuada sobre cómo encontrar el archivo .deb y luego continuar con la instalación? ¿O es otra cosa?
En segundo lugar, sobre el archivo Sources.gz. He leído que es el código fuente de los paquetes enumerados en Packages.gz, PERO en la mayoría de los casos no es necesario. Entonces, si agrego el enlace a este Sources.gz en mi archivo source.list, ¿qué me aporta realmente? ¿Cuál es el punto de esto?
En tercer lugar, sobre el repositorio local; Esto está relacionado con las preguntas anteriores. Sé cómo crear un repositorio local con archivos .deb, pero digamos que solo tengo este archivo Packages.gz: no será suficiente, ¿verdad? y si tengo el archivo Sources.gz, ¿funcionará?
Finalmente, he visto en el repositorio de Debian que, además del repositorio dist, hay un repositorio de grupo con una gran cantidad de .deb. Conozco una manera de instalarlos (descargar .deb y sus dependencias, instalarlos con dpkg -i), pero ¿hay alguna manera más fácil? ¿Algo más automático, que pueda encontrar el .deb en línea, encontrar sus dependencias e instalar todo? (al igual que apt-get, pero hasta donde tengo entendido, apt-get solo funciona con los archivos Packages.gz y Sources.gz, no directamente con .deb)
Lo siento, esto no es realmente una pregunta, más bien una lista de preguntas ^^ pero todo lo que encontré en línea fue principalmente "apt-get busca el paquete y su dependencia en el repositorio en línea e lo instala a través de dpkg", y lo haría. como más detalles al respecto.
Respuesta1
Packages.gz contiene un
Filename
campo con un valor que probablemente se parezca apool/main/n/name-of-package/name-of-package_version_amd64.deb
. Esto le dice al administrador de paquetes que mire esa URL.
Por ejemplo, si tiene la siguiente línea en su fuente.lista(.d):
deb https://some-domain.com/some-url some-distribution main
Tendrá el siguiente archivo:https://some-domain.com/some-url/dists/some-distribution/main/binary-amd64/Packages.gz
Ese archivo hará referenciapool/main/n/name-of-package/name-of-package_version_amd64.deb
, por lo que su administrador de paquetes lo veráhttps://some-domain.com/some-url/pool/main/n/name-of-package/name-of-package_version_amd64.deb
.Sources.gz funciona de la misma manera, pero es opcional. Funciona con
apt source
, que le traerá el código fuente si desea compilarlo usted mismo en lugar de utilizar los archivos binarios prediseñados.
Esto es principalmente útil para administradores de sistemas que desean parchear la versión exacta del paquete utilizado por una distribución, en lugar de contribuyentes/personas curiosas que simplemente irían a la página de inicio del proyecto y seguirían las instrucciones de compilación allí.Si un paquete está en el directorio del grupo de distribución pero no en
Packages.gz
, lo más probable es que esté en otroPackage.gz
. Observe cómo tiene varias palabras en unasources.list
línea típica:
deb http://archive.ubuntu.com/ubuntu precise main universe multiverse
main
yuniverse
cadamultiverse
una tiene su propioPackages.gz
archivo. Es posible que necesite habilitar algunos, ya que Debian, por ejemplo, los deshabilitanon-free
de forma predeterminada. Sin embargo, algunos paquetes aún no estarán disponibles (ni siquiera en el grupo). Puede optar por agregar repositorios que no sean de confianza (como PPA en Ubuntu), empaquetar el programa que falta usted mismo (para que usted y otras personas puedan usar su administrador de paquetes para administrar ese programa) o simplemente compilarlo e instalarlo usted mismo (debe usar el/usr/local
prefijo para evite conflictos con su administrador de paquetes).- Cuando aparece un nuevo paquete (versión de un), el
Release
archivo de la distribución se actualiza. Esto permiteapt update
saber que tiene que volver a descargarsePackages.gz
.