Perché il centro software non consente download multipli?


29

Mi chiedevo perché il software center non scarichi tutte le app richieste e non le installi una dopo l'altra al termine del download. O invece perché il software center non scarica un'app mentre l'altra è in fase di installazione


probabilmente solo per risparmiare larghezza di banda ...
drnessie,

1
AFAIK sudo apt-get installpuò installare tutti i pacchetti che desideri. Devi conoscere il nome del pacchetto.
sagarchalise,

@drnessie no non lo è! se installi entrambi contemporaneamente con apt-get, li scaricherai contemporaneamente e poi li installerai solo uno alla volta.
Alvar,

@Alvar Ok. L'ho fatto in Linux Mint. Ma provare lo stesso in Ubuntu non funziona. Come fare?
MycrofD,

@MycrofD E cosa stai provando?
Alvar,

Risposte:


29

Questa è una buona domanda È perché si basa sugli stessi strumenti di pacchetto che apt-get e altri usano. Questi sono progettati in un modo che prevede di fornire tutti i pacchetti da installare, quindi il resto è automatico. Questo è molto buono nella maggior parte dei casi, ma per il Software Center provoca alcuni problemi. Dovresti prima selezionare i pacchetti che vuoi installare e poi fare clic su un pulsante per scaricarli e installarli, oppure devi accodare le applicazioni e quindi scaricare e installare uno per uno. Ciò fornisce un'esperienza utente molto migliore se stai installando un'applicazione piuttosto che dover usare quei clic extra, ma è anche fastidioso quando fai "acquisti".

È possibile risolvere questo problema, quindi mi aspetto che in futuro venga risolto, ma significa ricreare o riscrivere gli strumenti esistenti, quindi non credo che avrà una priorità molto elevata.

Lasciami elaborare:

Un pacchetto può dipendere da altri pacchetti. Se questi pacchetti non sono disponibili, non è possibile installare il pacchetto. Quindi strumenti come apt-get scaricheranno prima tutti i pacchetti richiesti e tutti i pacchetti da cui dipendono, ecc., Quindi li installeranno tutti. Quindi normalmente forniresti tutti i pacchetti desiderati in una volta sola e verranno prima scaricati e quindi installati.

Quando scegli di installare un'applicazione nel centro software, di solito vorrai che inizi immediatamente a scaricare e installare. Ma al fine di garantire che tutto sia in ordine, è possibile eseguire una sola installazione alla volta. Ecco perché quando installi un'applicazione, devi attendere fino a quando l'applicazione non è stata completamente scaricata e installata prima che possa iniziare il download e l'installazione successivi.

Questo potrebbe essere risolto non usando apt-get per installare i pacchetti, ma invece scaricando i pacchetti manualmente e quindi usando dpkg per installarli quando sono pronti. Non saresti ancora in grado di installare due pacchetti contemporaneamente, ma potresti iniziare a scaricare nuovi pacchetti mentre le installazioni avviate in precedenza stavano finendo. In alcuni casi, ciò risparmierebbe un po 'di tempo, quindi è una buona idea. Ma nella maggior parte dei casi, non avrebbe davvero importanza, quindi lo sforzo è focalizzato meglio altrove.


In realtà, apt-get può scaricare i pacchetti senza installarli, anche se non sono sicuro al 100% che
funzioni

il download simultaneo e forse l'installazione funziona in Linux Mint. Non funziona in Ubuntu.
MycrofD,

2
@MycrofD: Non so davvero quale fosse il punto di quel commento. Sicuramente puoi scaricare più pacchetti contemporaneamente con Ubuntu. Non puoi farlo con apt-get e strumenti basati su di esso. Ovviamente, indipendentemente dalla distro di cui stai parlando.
Jo-Erlend Schinstad,

10

puoi installare un solo pacchetto alla volta con sudo apt-get install, ma puoi installare diversi pacchetti con un solo comando. Come questo:

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

Ciò installerà sia ubuntu-desktope lubuntu-desktopsia le dipendenze che richiedono, nella sequenza corretta.

Inoltre, quando aggiorni il tuo sistema con sudo apt-get upgrade, devi prima scaricare tutto il software e quindi installare un pacchetto alla volta.

Il motivo
per cui non è possibile installare più pacchetti contemporaneamente è che solo un'istanza può utilizzare i apt-getprivilegi contemporaneamente. Questo perché apt-getblocca software sourcese impedisce a qualsiasi altro comando di usarli.

Un esempio
Supponiamo che in qualche modo inizi 2 apt-get separati come dice @Rinzwind, quindi in teoria potresti almeno modificare l'elenco dei sorgenti mentre lo usi per trovare e installare un nuovo software. Ciò potrebbe comportare che un programma che hai installato modifica l'elenco dei sorgenti e aggiunge un repository non sicuro mentre stai aggiornando il tuo sistema. Questo potrebbe essere un problema di sicurezza.

Un altro esempio
Inoltre, se modifichi l'elenco dei sorgenti con 2 comandi separati, quando salvi sostituirai la versione più recente, che sarà quella che verrà salvata per ultima. Ciò significa che quel comando nel mezzo non avrebbe alcun effetto, dal momento che risparmieresti su una versione precedente.


Windows si comporta in modo simile utilizzando il programma di installazione "ufficiale" (MSI)

Anche in Windows, è possibile installare contemporaneamente più software ... c'è un vantaggio in questo o perché questa è una necessità in Linux / Ubuntu, ecc ...

I pacchetti che utilizzano il programma di installazione ufficiale di Windows (MSI) RIFIUTANO di eseguire più di un'istanza alla volta. Questo perché il database del programma di installazione MSI è simile ai sources.listfile di informazioni dpkg, ecc. - Non si desidera che più di un programma di installazione li modifichi / blocchi alla volta.

Molti pacchetti di Windows utilizzano programmi di installazione di terze parti come InstallShield, NSIS, ecc. Che verranno eseguiti uno accanto all'altro perché non devono accedere / modificare il database MSI. Allo stesso modo, in Linux / Ubuntu, nessuno vi impedisce di esecuzione di un apt-get, una tar -xzfe un perl / bash script di installazione tutti allo stesso tempo :)


1
Se non sbaglio, molte applicazioni possono essere eseguiti utilizzando sudoallo stesso tempo, ma quando si tratta di gestione dei pacchetti, solo una di queste app possono installare o rimuovere i pacchetti in un dato momento, dal momento che l'esecuzione aptottiene un blocco su sources.liste, quindi, se del caso si tenta di eseguire un'altra app di gestione dei pacchetti, non verrà bloccato su quel file e quindi non verrà eseguito.
Kushal,

@Kush è apt-get solo uno può usare, scusate, è da tanto tempo che non ho questo errore.
Alvar,

@Rinzwind è questo che vuoi dire? :)
Alvar,

2
@Alvar: modificato per includere un simile comportamento di Windows in basso: non voglio che la gente venga male informata che Windows è in qualche modo "superiore";)
ish,

1
@Alvar ... Grazie mille. !! Ciò ha chiarito le mie basi ...;)
Nirmik,

7

Innanzitutto, sia noto che questa risposta proviene da ciò che ho raccolto dalle mie esperienze con dpkge apt. Non ho esaminato il codice del software center effettivo per determinare questo.

È un limite alla progettazione del software sottostante.

Parte del dpkgsistema che Ubuntu utilizza per i pacchetti include una funzione che "blocca" il /var/lib/dpkg/lockfile per impedire a multipli dpkg( apt-gete Ubuntu Software Center sono front-end) di sovrascrivere se stesso e altre cose cattive e cattive.

Cosa succede quando si installa il software? Quello che succede è che inizia sudo apt-get install chromium-browser(per usare Chromium come esempio).

E quando ciò accade, entra in azione un blocco. Una volta aggiunto più di un pacchetto da installare, ciò che accade dopo è in attesa che il primo sia completato prima di avviare il aptcomando successivo .


4

Alcune azioni, come l'aggiornamento dei menu, l'indicizzazione dei caratteri e la riconfigurazione delle librerie, devono avvenire una sola volta se tutti i pacchetti sono installati contemporaneamente. Si spera che un secondo vantaggio non dovrebbe accadere spesso, ma se si desidera installare pacchetti che si escludono a vicenda, lo si conosce prima di scaricarli tutti.

Un ultimo vantaggio è per lo più importante quando si installano o si aggiornano più pacchetti contemporaneamente: se è necessario rispondere alle domande, tutte si susseguiranno durante l'avanzamento dell'installazione. Quindi puoi continuare a lavorare invece di essere infastidito ogni 5 minuti da una domanda diversa.


Hai avuto alcuni punti interessanti lì. :)
Jo-Erlend Schinstad,

2

Il motivo per cui due istanze di apt-get non possono funzionare contemporaneamente è perché l'applicazione sta leggendo / scrivendo diversi file critici per il funzionamento del sistema. La lettura o la scrittura di un file mediante un'operazione apt-get, mentre un altro sta eseguendo le stesse operazioni su di esso porterà a problemi di errata configurazione e / o danneggiamento dei file. Quindi quando si verifica un'operazione apt-get, "blocca" i file di cui ha bisogno in modo che un'altra operazione non possa essere eseguita contemporaneamente, ovvero alza un flag che dice alle altre operazioni che i file sono attualmente in uso.

Tuttavia, con il comando apt-fast sono possibili download simultanei dei file necessari per apt (o piuttosto download da più fonti)

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


0

modo semplice per installare più file in una volta, seguire questi passaggi

  1. copia tutta la cartella di installazione, ad esempio: / home / user / apps
  2. Terminale aperto e digitare:

    CD / home / utente / app

  3. e quindi digitare di nuovo

    sudo dpkg -i * .deb

attendere fino al termine dell'installazione.


1
Che installa ancora i file .deb uno per uno . Non è quello che l'OP ha chiesto: vuole installare più file .deb contemporaneamente.
Ish,

-1

ottieni il download del pacchetto mentre l'altro sta installando ad es. nel terminal1

sudo apt-get install vlc

quindi scaricare anche un altro pacchetto in un altro terminal2

sudo apt-get download openssh-server

per vedere altre opzioni disponibili con apt-get fare riferimento al suo tipo semplice man

apt-get <press tab on your keyboard>

Questo non risponde alla domanda.
Guntbert,

@guntbert stavo rispondendo alla seconda parte della sua domanda, dice "O invece perché il software center non scarica un'app mentre l'altra sta installando", ho pensato che stava affermando che non è possibile scaricare un altro pacchetto durante l'installazione un altro che è sbagliato.
marengz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.