Warum erlaubt das Software-Center keine mehrfachen Downloads?

29

Ich habe mich gefragt, warum das Software-Center nicht alle angeforderten Apps herunterlädt und nacheinander installiert, wenn der Download abgeschlossen ist. Oder warum das Software-Center eine App nicht herunterlädt, während die andere installiert wird

Jesus lebt ii
quelle
wahrscheinlich nur um Bandbreite zu sparen ...
drnessie
1
AFAIK sudo apt-get installkann beliebig viele Pakete installieren. Sie müssen den Paketnamen kennen.
Sagarchalise
@drnessie nein ist es nicht! Wenn Sie beide gleichzeitig mit apt-get installieren, laden Sie sie gleichzeitig herunter und installieren sie dann jeweils nur einmal.
Alvar
@Alvar Ok. Ich habe das in Linux Mint gemacht. Aber das Gleiche in Ubuntu zu versuchen, funktioniert nicht. Wie macht man?
MycrofD
@MycrofD Und was versuchst du?
Alvar

Antworten:

29

Das ist eine gute Frage. Dies liegt daran, dass es auf denselben Pakettools basiert, die auch apt-get und andere verwenden. Diese sind so konzipiert, dass Sie alle zu installierenden Pakete bereitstellen müssen, und der Rest erfolgt automatisch. Dies ist in den meisten Fällen sehr gut, führt jedoch beim Software Center zu Problemen. Sie müssen entweder zuerst die Pakete auswählen, die Sie installieren möchten, und dann auf eine Schaltfläche klicken, um sie tatsächlich herunterzuladen und zu installieren, oder Sie müssen Anwendungen in die Warteschlange stellen und dann einzeln herunterladen und installieren. Dies bietet eine viel bessere Benutzererfahrung, wenn Sie eine Anwendung installieren, als diese zusätzlichen Klicks verwenden zu müssen, aber es ist auch ärgerlich, wenn Sie "einkaufen".

Es ist möglich, dies zu beheben, daher erwarte ich, dass dies in Zukunft behoben wird, aber es bedeutet, vorhandene Tools neu zu erstellen oder neu zu schreiben, sodass ich nicht der Meinung bin, dass es eine sehr hohe Priorität haben wird.

Lassen Sie mich näher darauf eingehen:

Ein Paket kann von anderen Paketen abhängen. Wenn diese Pakete nicht verfügbar sind, kann das Paket nicht installiert werden. Tools wie apt-get laden also zuerst alle Pakete herunter, nach denen Sie fragen, und alle Pakete, von denen sie abhängen, usw., und installieren dann alle. Normalerweise würden Sie dann alle gewünschten Pakete auf einmal bereitstellen, und sie würden zuerst heruntergeladen und dann installiert.

Wenn Sie eine Anwendung im Software Center installieren, möchten Sie normalerweise, dass sie sofort heruntergeladen und installiert wird. Damit aber alles in Ordnung ist, kann immer nur eine Installation durchgeführt werden. Wenn Sie eine Anwendung installieren, müssen Sie daher warten, bis diese Anwendung vollständig heruntergeladen und installiert ist, bevor Sie mit dem nächsten Download und der nächsten Installation beginnen können.

Dies könnte behoben werden, indem nicht apt-get zum Installieren der Pakete verwendet wird, sondern die Pakete manuell heruntergeladen und dann mit dpkg installiert werden, sobald sie fertig sind. Sie könnten immer noch nicht zwei Pakete gleichzeitig installieren, aber Sie könnten neue Pakete herunterladen, während die zuvor gestarteten Installationen abgeschlossen sind. In einigen Fällen würde dies einige Zeit sparen, daher ist dies eine gute Idee. In den meisten Fällen spielt es jedoch keine Rolle, da sich die Anstrengungen auf andere Bereiche konzentrieren.

Jo-Erlend Schinstad
quelle
Tatsächlich kann apt-get Pakete herunterladen, ohne sie zu installieren, obwohl ich nicht 100% sicher bin, ob dies mit einer gesperrten Datenbank funktioniert ...
11.
Das gleichzeitige Herunterladen und vielleicht die Installation funktioniert in Linux Mint. In Ubuntu nicht.
MycrofD
2
@MycrofD: Ich weiß nicht genau, was der Sinn dieses Kommentars sein sollte. Natürlich können Sie mit Ubuntu mehrere Pakete gleichzeitig herunterladen. Mit apt-get und darauf basierenden Tools geht das einfach nicht. Das ist natürlich egal von welcher Distribution du redest.
Jo-Erlend Schinstad
10

Sie können jeweils nur ein Paket mit sudo apt-get installinstallieren, aber Sie können mehrere Pakete mit einem Befehl installieren. So was:

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

Dies installiert beide ubuntu-desktopund lubuntu-desktopund was Abhängigkeiten sie benötigen, in der richtigen Reihenfolge.

Wenn Sie Ihr System mit aktualisieren sudo apt-get upgrade, laden Sie zunächst die gesamte Software herunter und installieren dann jeweils ein Paket.

Der Grund,
warum Sie nicht mehrere Pakete gleichzeitig installieren können, ist, dass nur eine Instanz gleichzeitig die apt-getBerechtigungen verwenden kann . Dies liegt daran, dass das apt-getgesperrt ist software sourcesund andere Befehle daran gehindert werden, sie zu verwenden.

Ein Beispiel
Nehmen wir an, Sie starten irgendwie 2 separate apt-get, wie @Rinzwind sagt, und könnten dann theoretisch mindestens die Quellliste bearbeiten, während Sie sie zum Suchen und Installieren neuer Software verwenden. Dies kann dazu führen, dass ein von Ihnen installiertes Programm die Quellliste bearbeitet und gleichzeitig mit dem Upgrade Ihres Systems ein unsicheres Repository hinzufügt. Dies könnte ein Sicherheitsproblem sein.

Ein weiteres Beispiel
Auch wenn Sie die Quellliste mit zwei separaten Befehlen bearbeiten, ersetzen Sie beim Speichern die neueste Version, die zuletzt gespeichert wurde. Dies bedeutet, dass der Befehl in der Mitte keine Auswirkung hat, da Sie über eine alte Version speichern würden.


Windows verhält sich mit dem "offiziellen" (MSI) Installationsprogramm ähnlich

Auch unter Windows können mehrere Software-Programme gleichzeitig installiert werden. Gibt es einen Vorteil, oder warum dies unter Linux / Ubuntu usw. erforderlich ist?

Pakete, die das offizielle Windows-Installationsprogramm (MSI) verwenden, VERWEIGERN die gleichzeitige Ausführung mehrerer Instanzen. Das liegt daran, dass die MSI-Installationsdatenbank ähnlich ist wie sources.listdpkg-Infodateien usw. - Sie möchten nicht, dass mehr als ein Installationsprogramm sie gleichzeitig ändert / sperrt.

Viele Windows-Pakete verwenden jedoch Installationsprogramme von Drittanbietern wie Installshield, NSIS usw., die nebeneinander ausgeführt werden, da sie nicht auf die MSI-Datenbank zugreifen oder diese ändern müssen. Ebenso hindert Sie unter Linux / Ubuntu niemand daran, gleichzeitig ein apt-get, ein tar -xzfund ein Perl / Bash-Installationsskript auszuführen :)

Alvar
quelle
1
Wenn ich mich nicht irre, können viele Anwendungen sudogleichzeitig ausgeführt werden, aber wenn es um die Paketverwaltung geht, kann nur eine solche Anwendung Pakete zu einem bestimmten Zeitpunkt installieren oder entfernen, da das Ausführen apteine Sperre bewirkt sources.listund daher gegebenenfalls Wenn versucht wird, eine andere Paketverwaltungs-App auszuführen, wird diese Datei nicht gesperrt und daher nicht ausgeführt.
Kushal
@Kush es ist apt-get, das nur einer benutzen kann, sorry, es ist lange her, seit ich diesen Fehler bekommen habe.
Alvar
@Rinzwind ist das was du meinst? :)
Alvar
2
@Alvar: bearbeitet, um ähnliches Windows-Verhalten am unteren Rand aufzunehmen: möchte nicht, dass die Leute falsch informiert werden, dass Windows irgendwie "überlegen" ist;)
ish
1
@Alvar ... Vielen Dank. !! Das hat meine Grundlagen geklärt ..;)
Nirmik
7

Lassen Sie uns zunächst wissen, dass diese Antwort von dem stammt, was ich aus meinen Erfahrungen mit dpkgund gelernt habe apt. Ich habe mir den tatsächlichen Software-Center-Code nicht angesehen, um dies festzustellen.

Das Design der zugrunde liegenden Software ist begrenzt.

Ein Teil des dpkgSystems, das Ubuntu für Pakete verwendet, enthält eine Funktion, die die /var/lib/dpkg/lockDatei "sperrt" , um zu verhindern, dass sich mehrere dpkg( apt-getund Ubuntu Software Center sind Frontends) selbst und andere böse Dinge überschreiben.

Was passiert, wenn Sie Software installieren? Was passiert, ist, dass es beginnt sudo apt-get install chromium-browser(um Chrom als Beispiel zu verwenden).

In diesem Fall wird eine Sperre aktiviert. Wenn Sie mehr als ein zu installierendes Paket hinzugefügt haben, wird als Nächstes gewartet, bis das erste fertig ist, bevor der nächste aptBefehl gestartet wird.

jrg
quelle
4

Einige Aktionen, wie das Aktualisieren der Menüs, das Indizieren von Schriftarten und das Neukonfigurieren der Bibliotheken, müssen nur einmal ausgeführt werden, wenn alle Pakete gleichzeitig installiert sind. Ein zweiter Vorteil sollte hoffentlich nicht oft auftreten, aber wenn Sie Pakete installieren möchten, die sich gegenseitig ausschließen, kennen Sie ihn, bevor Sie alle herunterladen.

Ein letzter Vorteil ist vor allem dann wichtig, wenn Sie viele Pakete auf einmal installieren oder aktualisieren: Wenn Fragen beantwortet werden müssen, werden sie während des Installationsvorgangs alle nacheinander angezeigt. So können Sie weiterarbeiten, anstatt alle 5 Minuten von einer anderen Frage gestört zu werden.

johanvdw
quelle
Sie hatten dort ein paar interessante Punkte. :)
Jo-Erlend Schinstad
2

Der Grund dafür, dass zwei Instanzen von apt-get nicht gleichzeitig ausgeführt werden können, besteht darin, dass die Anwendung mehrere für den Systembetrieb wichtige Dateien liest / schreibt. Das Lesen oder Schreiben einer Datei durch einen apt-get-Vorgang, während ein anderer dieselben Vorgänge ausführt, führt zu Problemen mit falscher Konfiguration und / oder Beschädigung der Dateien. Wenn also eine apt-get-Operation ausgeführt wird, werden die benötigten Dateien "gesperrt", sodass keine andere Operation gleichzeitig ausgeführt werden kann.

Mit dem Befehl apt-fast ist jedoch ein gleichzeitiges Herunterladen der von apt benötigten Dateien (bzw. das Herunterladen von mehreren Quellen) möglich

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

Der Messie
quelle
0

Führen Sie die folgenden Schritte aus, um mehrere Dateien gleichzeitig zu installieren

  1. Kopieren Sie den gesamten Installationsordner, zum Beispiel: / home / user / apps
  2. Offenes Terminal und Typ:

    CD / Home / Benutzer / Apps

  3. und dann erneut eingeben

    sudo dpkg -i * .deb

Warten Sie, bis die Installation abgeschlossen ist.

hardianto
quelle
1
Das installiert noch die .deb - Dateien one-by-one . Nicht das, wonach der OP gefragt hat - er möchte, dass mehrere .deb-Dateien gleichzeitig installiert werden.
ish
-1

Sie erhalten das Paket heruntergeladen, während das andere z. B. in Terminal1 installiert wird

sudo apt-get install vlc

Laden Sie dann auch ein anderes Paket in ein anderes Terminal2 herunter

sudo apt-get download openssh-server

Um zu sehen, welche anderen Optionen mit apt-get verfügbar sind, beziehen Sie sich auf den man simple-Typ

apt-get <press tab on your keyboard>
marengz
quelle
Dies beantwortet die Frage nicht.
guntbert
@guntbert Ich beantwortete den zweiten Teil seiner Frage und sagte: "Oder stattdessen, warum das Software-Center eine App nicht herunterlädt, während die andere installiert wird." eine andere, die falsch ist.
marengz