¿Por qué el centro de software no permite descargas múltiples?

29

Me preguntaba por qué el centro de software no descarga todas las aplicaciones solicitadas y las instala una por una cuando terminan de descargarse. O, por el contrario, ¿por qué el centro de software no descarga una aplicación mientras se instala la otra?

JesusLives ii
fuente
probablemente solo para ahorrar ancho de banda ...
drnessie
1
AFAIK sudo apt-get installpuede instalar tantos paquetes como desee. Necesitas saber el nombre del paquete.
sagarchalise
@drnessie no, no lo es! Si instala ambos al mismo tiempo con apt-get, los descargará al mismo tiempo y luego los instalará solo uno a la vez.
Alvar
@Alvar Ok. Lo he hecho en Linux Mint. Pero intentar lo mismo en Ubuntu no funciona. ¿Cómo hacer?
MycrofD
@MycrofD ¿Y qué intentas?
Alvar

Respuestas:

29

Esa es una buena pregunta. Esto se debe a que se basa en las mismas herramientas de paquete que apt-get y otros usan. Estos están diseñados de una manera que espera que proporcione todos los paquetes que se instalarán, y luego el resto es automático. Esto es muy bueno en la mayoría de los casos, pero para el Centro de software, causa algunos problemas. Debería seleccionar primero los paquetes que desea instalar y luego hacer clic en un botón para descargarlos e instalarlos, o debe poner en cola las aplicaciones y luego descargarlas e instalarlas una por una. Esto proporciona una experiencia de usuario mucho mejor si está instalando una aplicación que tener que usar esos clics adicionales, pero también es molesto cuando está "comprando".

Es posible solucionar esto, por lo que espero que en el futuro esto se solucione, pero significa recrear o reescribir las herramientas existentes, por lo que no creo que tenga una prioridad muy alta.

Déjame elaborar:

Un paquete puede depender de otros paquetes. Si estos paquetes no están disponibles, entonces el paquete no se puede instalar. Entonces, herramientas como apt-get primero descargarán todos los paquetes que solicite y todos los paquetes de los que dependen, etc., y luego los instalarán todos. Por lo tanto, normalmente proporcionaría todos los paquetes que desea de una vez, y primero se descargarían y luego se instalarían.

Cuando elige instalar una aplicación en el centro de software, generalmente querrá que comience a descargarse e instalarse inmediatamente. Pero para garantizar que todo esté en orden, solo se puede realizar una instalación a la vez. Es por eso que cuando instala una aplicación, debe esperar hasta que la aplicación se descargue e instale completamente antes de que pueda comenzar la próxima descarga e instalación.

Esto podría solucionarse no usando apt-get para instalar los paquetes, sino descargando los paquetes manualmente y luego usando dpkg para instalarlos una vez que estén listos. Aún no podría instalar dos paquetes simultáneamente, pero podría comenzar a descargar nuevos paquetes mientras las instalaciones iniciadas anteriormente estaban terminando. En algunos casos, eso ahorraría bastante tiempo, por lo que es una buena idea. Pero en la mayoría de los casos, realmente no importaría, por lo que el esfuerzo está mejor enfocado en otros lugares.

Jo-Erlend Schinstad
fuente
En realidad, apt-get puede descargar paquetes sin instalarlos, aunque no estoy 100% seguro de que funciona con una base de datos bloqueada ...
janc
La descarga simultánea y tal vez la instalación funciona en Linux Mint. No lo hace en Ubuntu.
MycrofD
2
@MycrofD: Realmente no sé cuál era el punto de ese comentario. Claro que puedes descargar varios paquetes a la vez con Ubuntu. Simplemente no puede hacer eso con apt-get y herramientas basadas en él. Obviamente, independientemente de la distribución de la que estés hablando.
Jo-Erlend Schinstad
10

solo puede instalar un paquete al mismo tiempo sudo apt-get install, pero puede instalar varios paquetes con un solo comando. Me gusta esto:

  • sudo apt-get install ubuntu-desktop lubuntu-desktop

Esto instalará ambos ubuntu-desktopy lubuntu-desktopcualquier dependencia que requieran, en la secuencia correcta.

Además, cuando actualiza su sistema sudo apt-get upgrade, primero descarga todo el software y luego instala un paquete a la vez.

La razón por la
que no puede instalar varios paquetes a la vez es que solo una instancia puede usar los apt-getprivilegios al mismo tiempo. Esto se debe a que apt-getbloquea software sourcesy bloquea cualquier otro comando para que no pueda usarlos.

Un ejemplo
Digamos que de alguna manera inicia 2 apt-get por separado como dice @Rinzwind, entonces, en teoría, al menos podría editar la lista de fuentes al mismo tiempo que la usa para buscar e instalar nuevo software. Esto podría llevar a que un programa que haya instalado edite la lista de fuentes y agregue un repositorio inseguro al mismo tiempo que actualiza su sistema. Esto podría ser un problema de seguridad.

Otro ejemplo
Además, si edita la lista de origen en 2 comandos separados, cuando guarde, reemplazará la versión más nueva, que será la que se guarde al final. Lo que significa que el comando en el medio no tendría ningún efecto, ya que guardaría sobre una versión anterior.


Windows se comporta de manera similar usando el instalador "oficial" (MSI)

Incluso en Windows, se pueden instalar varios softwares simultáneamente ... ¿hay una ventaja en esto o por qué es una necesidad en Linux / ubuntu, etc.?

Los paquetes que usan el instalador oficial de Windows (MSI) SE NEGARÁN a ejecutar más de una instancia a la vez. Esto se debe a que la base de datos del instalador MSI es similar a los sources.listarchivos de información dpkg, etc., no desea que más de un instalador los modifique / bloquee a la vez.

Pero muchos paquetes de Windows usan instaladores de terceros como Installshield, NSIS, etc., que se ejecutarán uno al lado del otro porque no necesitan acceder / modificar la base de datos MSI. Del mismo modo, en Linux / Ubuntu, nadie te impide ejecutar un script de instalación perl / bash apt-get, a tar -xzfy a, todo al mismo tiempo :)

Alvar
fuente
1
Si no estoy equivocado, muchas aplicaciones se pueden ejecutar utilizando sudoal mismo tiempo, pero cuando se trata de la gestión de paquetes, sólo una de estas aplicaciones se pueden instalar o Remover paquetes en un momento dado, ya que se ejecuta aptpara crear una cerradura en sources.listy por lo tanto, si los hay se intenta ejecutar otra aplicación de administración de paquetes, no se bloqueará ese archivo y, por lo tanto, no se ejecutará.
Kushal
@Kush es apto para obtener solo uno puede usar, lo siento, ha pasado mucho tiempo desde que recibí ese error.
Alvar
@Rinzwind, ¿es esto lo que quieres decir? :)
Alvar
2
@Alvar: editado para incluir un comportamiento similar de Windows en la parte inferior: no quieren que la gente a quedar mal informados que Windows es de alguna manera "superior";)
ish
1
@Alvar ... ¡Muchas gracias! Eso aclara mis conceptos básicos ...;)
Nirmik
7

Primero, que se sepa que esta respuesta proviene de lo que deduje de mis experiencias con dpkgy apt. No he mirado el código del centro de software real para determinar esto.

Es un límite del diseño del software subyacente.

Parte del dpkgsistema que Ubuntu usa para los paquetes incluye una característica que "bloquea" el /var/lib/dpkg/lockarchivo para evitar que múltiples dpkg( apt-gety el Centro de software de Ubuntu son front-end) se sobrescriban a sí mismo y a otras cosas malas y malas.

¿Qué sucede cuando instalas el software? Lo que sucede es que comienza sudo apt-get install chromium-browser(para usar Chromium como ejemplo).

Y cuando eso sucede, se activa un bloqueo. Una vez que agrega más de un paquete para instalar, lo que sucede a continuación es que espera hasta que se complete el primero antes de que comience el siguiente aptcomando.

jrg
fuente
4

Algunas acciones, como actualizar el menú, indexar las fuentes y reconfigurar las bibliotecas deben realizarse solo una vez si todos los paquetes se instalan al mismo tiempo. Con suerte, una segunda ventaja no debería suceder a menudo, pero si desea instalar paquetes que se excluyan entre sí, ya lo sabe antes de descargarlos.

Una última ventaja es muy importante cuando instala o actualiza muchos paquetes a la vez: si las preguntas tienen que ser respondidas, todas vendrán una tras otra durante el proceso de instalación. Entonces puede seguir trabajando en lugar de ser molestado cada 5 minutos por una pregunta diferente.

johanvdw
fuente
Tenías algunos puntos interesantes allí. :)
Jo-Erlend Schinstad
2

La razón por la que dos instancias de apt-get no pueden funcionar simultáneamente es porque la aplicación está leyendo / escribiendo varios archivos críticos para la operación del sistema. Leer o escribir un archivo mediante una operación apt-get, mientras que otro realiza las mismas operaciones, provocará problemas de mala configuración y / o daños en los archivos. Por lo tanto, cuando se produce una operación apt-get, "bloquea" los archivos que necesita, por lo que no se puede ejecutar otra operación simultáneamente, es decir, levanta una bandera que indica a las otras operaciones que los archivos están actualmente en uso.

Sin embargo, las descargas simultáneas de los archivos que necesita apt (o mejor dicho, la descarga de varias fuentes) son posibles con el comando apt-fast

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

El messie
fuente
0

forma sencilla de instalar varios archivos a la vez, siga estos pasos

  1. copie toda la carpeta de instalación, por ejemplo: / home / user / apps
  2. Terminal abierto y tipo:

    CD / inicio / usuario / aplicaciones

  3. y luego escribe de nuevo

    sudo dpkg -i * .deb

espere hasta que termine la instalación.

hardianto
fuente
1
Eso todavía instala los archivos .deb uno por uno . No es lo que el OP preguntó: quiere que se instalen varios archivos .deb simultáneamente.
ish
-1

puedes descargar el paquete mientras el otro se está instalando, por ejemplo, en la terminal1

sudo apt-get install vlc

luego también descargue otro paquete en otro terminal2

sudo apt-get download openssh-server

para ver otras opciones disponibles con apt-get, consulte su tipo simple de hombre

apt-get <press tab on your keyboard>
marengz
fuente
Esto no responde la pregunta.
Guntbert
@guntbert estaba respondiendo a la segunda parte de su pregunta, él dice "O en su lugar por qué el centro de software no descarga una aplicación mientras la otra está instalando", pensé que estaba afirmando que no es posible descargar otro paquete durante la instalación Otro que está mal.
marengz