Ir al contenido
Shiba87

Apt-fast. Paralelizando la descarga de paquetes deb

Recommended Posts

jDFCvuH.png

 

Apt-fast es un script shell que permite la paralelización de descargas de paquetes deb, tanto con apt-get, apt o aptitude.

Éste nos permite descargar varios paquetes simultáneamente, desde diferentes mirros  estableciendo varias conexiones por cada uno, en lugar de descargarlos de uno en uno como ocurre por defecto.

 

Esto tiene una ventaja para el usuario, ya que puede exprimir al máximo su conexión a Internet para descargar los paquetes deb mucho más deprisa, pero también tenemos que tener en cuenta el lado del servidor, ya que las descargas en paralelo, para quien las sirve, suponen trabajo extra y no son ni remotamente tan divertidas como para quien los descarga.

En este sentido, además de no exagerar con el número de conexiones y descargas en paralelo, tendremos a bien definir varios mirrors en el archivo de configuración, para no sobrecargar uno sólo, sino hacer descargas de distintos paquetes desde diferentes servidores cada uno.

 

 

PPA

 

Existe un reporitorio PPA desde el que podemos descargar e instalar Apt-fast. Tan sencillo como

add-apt-repository ppa:saiarcot895/myppa
aptitude update
aptitude install apt-fast

 

 

Manualmente

 

Pero como ya nos conocemos, vamos a indicar también cómo instalar el script manualmente desde github.

Como dependencias tendremos los paquetes aria2 y, obviamente, git.

 

El proceso es tan sencillo como clonar el repositorio github, copiar el binario del script a /usr/bin (con permisos de ejecución) y sus archivo de configuración a /etc

aptitude install aria2 git
git clone https://github.com/ilikenwf/apt-fast /tmp/apt-fast
cd /tmp/apt-fast
cp apt-fast /usr/bin
chmod +x /usr/bin/apt-fast
cp apt-fast.conf /etc

 

Bash completion

 

La opción de autocompletado bash es muy útil a la hora de trabajar con paquetes, así que nos conviene activar dicha opción antes de empezar a lidiar con apt-fast

cp completions/bash/apt-fast /etc/bash_completion.d
chown root:root /etc/bash_completion.d/apt-fast
. /etc/bash_completion

Zsh completion

 

Igualmente, sin el lugar de bash nos valemos de zsh, la situación es la misma, pero el proceso ligeramente distinto.

cp completions/zsh/_apt-fast /usr/share/zsh/functions/Completion/Debian
chown root:root /usr/share/zsh/functions/Completion/Debian/_apt-fast
source /usr/share/zsh/functions/Completion/Debian/_apt-fast

 

Páginas Man

 

Porque en algún momento puede que necesitemos consultar el manual

cp ./man/apt-fast.8 /usr/share/man/man8
gzip -f9 /usr/share/man/man8/apt-fast.8
cp ./man/apt-fast.conf.5 /usr/share/man/man5
gzip -f9 /usr/share/man/man5/apt-fast.conf.5

 

 

Configuración

 

Apt-fast cuenta con un asistente, que nos aparecerá tanto al instalar el paquete como al invocar la orden:

dpkg-reconfigure apt-fast

Pero ya que nos hemos estado ensuciando las manos desde el principio, voy a seguir con la configuración manual.

El archivo de configuración de apt-fast está bien comentado, así que me limitaré a hablar de las opciones más relevantes en nuestro caso dentro de /etc/apt-fast.conf:

 

Cita

# Use aptitude or apt-get?
# Note that for outputting the package URI list, we always use apt-get
# ...since aptitude can't do this
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude
# e.g. /usr/bin/aptitude
#
# Default: apt-get
#
#_APTMGR=apt-get

Por defecto utilizará apt-get, pero los que ya me conocen saben que en mi caso siempre recomiendo aptitude en su lugar, así que:

Cita

# Use aptitude or apt-get?
# Note that for outputting the package URI list, we always use apt-get
# ...since aptitude can't do this
# Optionally add the FULLPATH to apt-get or apt-rpm or aptitude
# e.g. /usr/bin/aptitude
#
# Default: apt-get
#
_APTMGR=aptitude

 

 

Definir mirrors

Cita

# Choose mirror list to speed up downloads from same archive. To select some
# mirrors take a look at your distribution's archive mirror lists.
# Debian: http://www.debian.org/mirror/list
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors
#
# Examples:
# To use some German mirrors and official Debian and Ubuntu archives you can us$
# MIRRORS=( 'http://ftp.debian.org/debian,http://ftp2.de.debian.org/debian,http$
#          'http://archive.ubuntu.com/ubuntu,http://de.archive.ubuntu.com/ubunt$
# To use French Ubuntu mirrors you can use:
# MIRRORS=( 'http://fr.archive.ubuntu.com/ubuntu,http://bouyguestelecom.ubuntu.$
#
# Default: disabled
#
#MIRRORS=( 'none' )

 

El listado de mirrors es muy importante, como ya hemos dicho, así que nos tomaremos un momento para definirlos. No es necesario que los especifiquemos tal y como los tenemos en /etc/apt/sources.list, sólo necesitamos la dirección del mirror, ni ramas ni opciones ni nada por el estilo, tal y como se expresa en los ejemplos, simplemente una serie de direcciones separadas por comas:

Cita

# Choose mirror list to speed up downloads from same archive. To select some
# mirrors take a look at your distribution's archive mirror lists.
# Debian: http://www.debian.org/mirror/list
# Ubuntu: https://launchpad.net/ubuntu/+archivemirrors
#
MIRRORS=( 'http://ftp.debian.org/debian,http://ftp.fr,debian.org/debian,http://ftp2.de.debian.org/debian,http://ftp.de.debian.org/debian,ftp://ftp.uni-kl.de/debian,' )

 

Número máximo de conexiones, definido por _MAXNUM. El valor por defecto es de 5, es decir, 5 descargas en paralelo, que es un valor bastante bueno, así que salvo que tengamos otros planes, podemos dejarlo así (¿Han visto cuantos mirros he definido antes? :silba:)

Cita

# Maximum number of connections
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}
#
# Default: 5
#
_MAXNUM=5

 

Máximo de conexiones por servidor. De nuevo el valor por defecto es más que suficiente

Cita

# Maximum number of connections per server
# Default: 10
#
_MAXCONPERSRV=10

 

 

Descargando e instalando paquetes

Apt-fast no se diferencia de las herramientas utilizadas hasta ahora. De hecho, hemos definido la que utilizará por defecto, así que las opciones a utilizar serán las mismas que apt-get o aptitude, sólo que el comanda será apt-fast

 

Cita

apt-fast

 

install         Install/upgrade packages.
 remove          Remove packages.
 purge           Remove packages and their configuration files.
 hold            Place packages on hold.
 unhold          Cancel a hold command for a package.
 markauto        Mark packages as having been automatically installed.
 unmarkauto      Mark packages as having been manually installed.
 forbid-version  Forbid aptitude from upgrading to a specific package version.
 update          Download lists of new/upgradable packages.
 safe-upgrade    Perform a safe upgrade.
 full-upgrade    Perform an upgrade, possibly installing and removing packages.
 build-dep       Install the build-dependencies of packages.
 forget-new      Forget what packages are "new".
 search          Search for a package by name and/or expression.
 show            Display detailed info about a package.
 showsrc         Display detailed info about a source package (apt wrapper).
 versions        Displays the versions of specified packages.
 clean           Erase downloaded package files.
 autoclean       Erase old downloaded package files.
 changelog       View a package's changelog.
 download        Download the .deb file for a package (apt wrapper).
 source          Download source package (apt wrapper).
 reinstall       Reinstall a currently installed package.
 why             Explain why a particular package should be installed.
 why-not         Explain why a particular package cannot be installed.

 

 

Repositorio github

https://github.com/ilikenwf/apt-fast

 

Compartir este post


Enlace al post
Compartir en otros sitios

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invitado
Responder en este tema...

×   Has incluido contenido con formato.   Eliminar formato

  Sólo se permiten 75 emoticonos como máximo.

×   Tu enlace ha sido insertado automáticamente.   Deshacer y mostrar como enlace

×   Su contenido anterior ha sido restaurado.   Limpiar editor

×   No puedes pegar imágenes directamente. Súbelas a algún hosting de imágenes y pega la dirección URL


×
×
  • Crear Nuevo...