Pourquoi le centre logiciel n'autorise pas les téléchargements multiples?

29

Je me demandais pourquoi le centre logiciel ne télécharge pas toutes les applications demandées et ne les installe pas une par une à la fin du téléchargement. Ou plutôt pourquoi le centre logiciel ne télécharge pas une application pendant que l'autre installe

JesusLives ii
la source
probablement juste pour économiser la bande passante ...
drnessie
1
AFAIK sudo apt-get installpeut installer autant de packages que vous le souhaitez. Vous devez connaître le nom du package.
sagarchalise
@drnessie non ce n'est pas! si vous installez les deux en même temps avec apt-get, vous les téléchargerez en même temps, puis les installerez une seule à la fois.
Alvar
@Alvar Ok. Je l'ai fait dans Linux Mint. Mais essayer la même chose dans Ubuntu ne fonctionne pas. Comment faire?
MycrofD
@MycrofD Et qu'essayez-vous?
Alvar

Réponses:

29

Voilà une bonne question. C'est parce qu'il est basé sur les mêmes outils de package qu'apt-get et d'autres utilisent. Ceux-ci sont conçus d'une manière qui attend de vous que vous fournissiez tous les packages à installer, puis le reste est automatique. C'est très bien dans la plupart des cas, mais pour le Software Center, cela pose quelques problèmes. Vous devez soit sélectionner d'abord les packages que vous souhaitez installer, puis cliquer sur un bouton pour les télécharger et les installer, soit vous devez mettre les applications en file d'attente, puis les télécharger et les installer une par une. Cela offre une bien meilleure expérience utilisateur si vous installez une application que d'avoir à utiliser ces clics supplémentaires, mais c'est aussi ennuyeux lorsque vous "magasinez".

Il est possible de résoudre ce problème, je m'attends donc à ce que cela soit corrigé à l'avenir, mais cela signifie qu'il faut recréer ou réécrire les outils existants, donc je ne pense pas que cela aura une priorité très élevée.

Permettez-moi d'expliquer:

Un package peut dépendre d'autres packages. Si ces packages ne sont pas disponibles, le package ne peut pas être installé. Ainsi, des outils comme apt-get téléchargeront d'abord tous les packages que vous demandez et tous les packages dont ils dépendent, etc., puis les installeront tous. Donc, vous fourniriez normalement tous les packages que vous vouliez en une seule fois, et ils seraient d'abord téléchargés puis installés.

Lorsque vous choisissez d'installer une application dans le centre logiciel, vous souhaiterez généralement qu'elle démarre immédiatement le téléchargement et l'installation. Mais afin de s'assurer que tout est en ordre, une seule installation peut être effectuée à la fois. C'est pourquoi lorsque vous installez une application, vous devez attendre que cette application soit complètement téléchargée et installée avant que le téléchargement et l'installation suivants puissent commencer.

Cela pourrait être résolu en n'utilisant pas apt-get pour installer les packages, mais en téléchargeant les packages manuellement puis en utilisant dpkg pour les installer une fois qu'ils sont prêts. Vous ne pourrez toujours pas installer deux packages simultanément, mais vous pourrez commencer à télécharger de nouveaux packages pendant que les installations précédemment démarrées se terminent. Dans certains cas, cela gagnerait pas mal de temps, c'est donc une bonne idée. Mais dans la plupart des cas, cela n'a pas vraiment d'importance, donc l'effort est mieux concentré ailleurs.

Jo-Erlend Schinstad
la source
En fait, apt-get peut télécharger des packages sans les installer, bien que je ne sois pas sûr à 100% que cela fonctionne avec une base de données verrouillée ...
JanC
le téléchargement simultané et peut-être l'installation fonctionne sous Linux Mint. Ce n'est pas le cas dans Ubuntu.
MycrofD du
2
@MycrofD: Je ne sais pas vraiment quel était le sens de ce commentaire. Bien sûr, vous pouvez télécharger plusieurs packages à la fois avec Ubuntu. Vous ne pouvez tout simplement pas le faire avec apt-get et des outils basés sur lui. C'est évidemment quelle que soit la distribution dont vous parlez.
Jo-Erlend Schinstad
10

vous ne pouvez installer qu'un seul package à la fois avec sudo apt-get install, mais vous pouvez installer plusieurs packages avec une seule commande. Comme ça:

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

Cela installera à la fois ubuntu-desktopet lubuntu-desktopet quelles que soient les dépendances dont ils ont besoin, dans le bon ordre.

De plus, lorsque vous mettez à jour votre système avec sudo apt-get upgrade, vous téléchargez d'abord tous les logiciels, puis installez un package à la fois.

La raison
pour laquelle vous ne pouvez pas installer plusieurs packages à la fois est qu'une seule instance peut utiliser les apt-getprivilèges en même temps. En effet, les apt-getverrous sur software sourceset empêchent toute autre commande de les utiliser.

Un exemple
Disons que vous démarrez en quelque sorte 2 apt-get séparés comme le dit @Rinzwind, alors vous pourriez en théorie au moins éditer la liste source en même temps que vous l'utilisez pour trouver et installer de nouveaux logiciels. Cela pourrait conduire à ce qu'un programme que vous avez installé modifie la liste source et ajoute un référentiel dangereux en même temps que vous mettez à niveau votre système. Cela pourrait être un problème de sécurité.

Un autre exemple
De plus, si vous modifiez la liste source à l'aide de 2 commandes distinctes, lorsque vous enregistrez, vous remplacez la version la plus récente, qui sera celle qui a été enregistrée en dernier. Ce qui signifie que la commande au milieu n'aurait aucun effet, car vous économiseriez sur une ancienne version.


Windows se comporte de manière similaire en utilisant le programme d'installation "officiel" (MSI)

Même sous Windows, plusieurs logiciels peuvent être installés simultanément ... y a-t-il un avantage à cela ou pourquoi c'est une nécessité sous linux / ubuntu, etc ...

Les packages qui utilisent le programme d'installation officiel de Windows (MSI) REFUSERONT d'exécuter plusieurs instances à la fois. En effet, la base de données du programme d'installation MSI est similaire aux sources.listfichiers d'informations dpkg, etc. - vous ne voulez pas que plus d'un programme d'installation les modifie / les verrouille à la fois.

Mais de nombreux packages Windows utilisent des programmes d'installation tiers tels que Installshield, NSIS, etc. qui s'exécuteront côte à côte car ils n'ont pas besoin d'accéder à / modifier la base de données MSI. De même, sous Linux / Ubuntu, personne ne vous empêche d'exécuter un script d'installation an apt-get, a tar -xzfet perl / bash tout en même temps :)

Alvar
la source
1
Si je ne me trompe pas, de nombreuses applications peuvent être exécutées en utilisant sudoen même temps, mais quand il vient à emballer la gestion, une seule application peut installer ou paquets remove à un moment donné, car en cours d' exécution aptobtient un verrou sur sources.listet donc le cas échéant une autre application de gestion de packages est tentée de s'exécuter, elle ne verrouille pas ce fichier et ne s'exécute donc pas.
Kushal
@Kush c'est apt-get qu'une seule personne peut utiliser, désolé, il y a longtemps que je n'ai pas eu cette erreur.
Alvar
@Rinzwind, c'est ce que tu veux dire? :)
Alvar
2
@Alvar: modifié pour inclure un comportement similaire de Windows en bas: ne voulez pas que les gens soient mal informés que Windows est en quelque sorte "supérieur";)
ish
1
@Alvar ... Merci beaucoup. !! Cela a clarifié mes bases ..;)
Nirmik
7

Tout d'abord, que l'on sache que cette réponse vient de ce que j'ai glané de mes expériences avec dpkget apt. Je n'ai pas regardé le code du centre logiciel réel pour le déterminer.

C'est une limite de la conception du logiciel sous-jacent.

Une partie du dpkgsystème qu'Ubuntu utilise pour les packages comprend une fonctionnalité qui "verrouille" le /var/lib/dpkg/lockfichier pour empêcher plusieurs dpkg( apt-getet Ubuntu Software Center sont des frontaux) de se remplacer et d'autres choses mauvaises et mauvaises.

Que se passe-t-il lorsque vous installez un logiciel? Ce qui se passe, c'est que ça commence sudo apt-get install chromium-browser(pour utiliser le chrome comme exemple).

Et lorsque cela se produit, un verrou se déclenche. Une fois que vous avez ajouté plusieurs packages à installer, ce qui se passe ensuite, c'est qu'il attend le premier avant de lancer la aptcommande suivante .

jrg
la source
4

Certaines actions, comme l'actualisation des menus, l'indexation des polices et la reconfiguration des bibliothèques, ne doivent se produire qu'une seule fois si tous les packages sont installés en même temps. Espérons qu'un deuxième avantage ne devrait pas se produire souvent, mais si vous souhaitez installer des packages qui s'excluent mutuellement, vous le savez avant de tous les télécharger.

Un dernier avantage est surtout important lorsque vous installez ou mettez à niveau plusieurs packages à la fois: si des questions doivent être répondues, elles se succéderont toutes au cours de la progression de l'installation. Vous pouvez donc continuer à travailler au lieu d'être buggé toutes les 5 minutes par une question différente.

johanvdw
la source
Vous aviez là quelques points intéressants. :)
Jo-Erlend Schinstad
2

La raison pour laquelle deux instances d'apt-get ne peuvent pas fonctionner simultanément est que l'application lit / écrit plusieurs fichiers critiques pour le fonctionnement du système. La lecture ou l'écriture d'un fichier par une opération apt-get, tandis qu'un autre effectue les mêmes opérations sur celui-ci entraînera des problèmes de mauvaise configuration et / ou d'endommagement des fichiers. Ainsi, lorsqu'une opération apt-get se produit, elle "verrouille" les fichiers dont elle a besoin pour qu'une autre opération ne puisse pas être exécutée simultanément, c'est-à-dire qu'elle déclenche un indicateur qui indique aux autres opérations que les fichiers sont actuellement en cours d'utilisation.

Cependant, des téléchargements simultanés des fichiers nécessaires à apt (ou plutôt à partir d'un certain nombre de sources) sont possibles avec la commande apt-fast

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

Le Messie
la source
0

moyen simple d'installer plusieurs fichiers en même temps, procédez comme suit

  1. copiez tout le dossier d'installation, par exemple: / home / user / apps
  2. Terminal ouvert et type:

    CD / home / utilisateur / applications

  3. puis tapez à nouveau

    sudo dpkg -i * .deb

attendre jusqu'à la fin de l'installation.

hardianto
la source
1
Cela installe toujours les fichiers .deb un par un . Pas ce que l'OP a demandé - il veut que plusieurs fichiers .deb soient installés simultanément.
ish
-1

vous obtenez télécharger le package pendant que l'autre installe par exemple dans terminal1

sudo apt-get install vlc

puis téléchargez également un autre package dans un autre terminal2

sudo apt-get download openssh-server

pour voir les autres options disponibles avec apt-get se référer à son type man simple

apt-get <press tab on your keyboard>
marengz
la source
Cela ne répond pas à la question.
guntbert
@guntbert je répondais à la deuxième partie de sa question, il dit "Ou plutôt pourquoi le centre logiciel ne télécharge pas une application pendant que l'autre installe", j'ai pensé qu'il affirmait qu'il n'est pas possible de télécharger un autre paquet pendant l'installation un autre qui ne va pas.
marengz