Por que o centro de software não permite vários downloads?

29

Fiquei me perguntando por que o centro de software não faz o download de todos os aplicativos solicitados e instala um por um quando eles terminam o download. Ou então, por que o centro de software não baixa um aplicativo enquanto o outro está instalando

JesusLives ii
fonte
provavelmente apenas para economizar largura de banda ...
drnessie
11
O AFAIK sudo apt-get installpode instalar quantos pacotes você desejar. Você precisa saber o nome do pacote.
Sagarchalise
@drnessie não, não é! se você instalar os dois ao mesmo tempo com o apt-get, baixe-os ao mesmo tempo e depois instale-os apenas um de cada vez.
Alvar 26/05
@Alvar Ok. Eu fiz isso no Linux Mint. Mas tentar o mesmo no Ubuntu não funciona. Como fazer?
12134 MycrofD
@MycrofD E o que você está tentando?
Alvar

Respostas:

29

Essa é uma boa pergunta. É porque é baseado nas mesmas ferramentas de pacote que o apt-get e outros usam. Eles foram projetados de uma maneira que espera que você forneça todos os pacotes a serem instalados e o restante é automático. Isso é muito bom na maioria dos casos, mas, para o Centro de Software, causa alguns problemas. Você precisaria primeiro selecionar os pacotes que deseja instalar e, em seguida, clicar em um botão para realmente fazer o download e instalá-los, ou terá que enfileirar aplicativos e, em seguida, baixar e instalar um por um. Isso proporciona uma experiência muito melhor para o usuário se você estiver instalando um aplicativo do que para usar esses cliques extras, mas também é irritante quando você está "comprando".

É possível corrigir isso, então espero que no futuro isso seja remediado, mas isso significa recriar ou reescrever as ferramentas existentes, portanto, não acho que terá prioridade muito alta.

Deixe-me elaborar:

Um pacote pode depender de outros pacotes. Se esses pacotes não estiverem disponíveis, o pacote não poderá ser instalado. Portanto, ferramentas como o apt-get baixam primeiro todos os pacotes solicitados e todos os pacotes dos quais dependem, etc, e depois instalam todos eles. Portanto, você normalmente forneceria todos os pacotes desejados de uma só vez, e eles seriam primeiro baixados e depois instalados.

Quando você escolhe instalar um aplicativo no centro de software, geralmente deseja iniciar o download e a instalação imediatamente. Mas, para garantir que tudo esteja em ordem, apenas uma instalação pode ser feita por vez. É por isso que, quando você instala um aplicativo, precisa aguardar até que o aplicativo seja baixado e instalado completamente antes que o próximo download e instalação possa começar.

Isso pode ser corrigido não usando o apt-get para instalar os pacotes, mas baixando os pacotes manualmente e usando o dpkg para instalá-los quando estiverem prontos. Você ainda não conseguiria instalar dois pacotes simultaneamente, mas conseguiria baixar novos pacotes enquanto as instalações iniciadas anteriormente estavam sendo finalizadas. Em alguns casos, isso economizaria bastante tempo, por isso é uma boa ideia. Mas na maioria dos casos, isso realmente não importa, então o esforço é mais focado em outro lugar.

Jo-Erlend Schinstad
fonte
Na verdade, apt-get pode baixar pacotes sem instalá-los, embora eu não estou 100% de certeza que funciona com um banco de dados bloqueado ...
janc
o download simultâneo e talvez a instalação funcionem no Linux Mint. Não no Ubuntu.
12134 MycrofD
2
@ MycrofD: Realmente não sei qual deveria ser o objetivo desse comentário. Claro que você pode baixar vários pacotes ao mesmo tempo com o Ubuntu. Você simplesmente não pode fazer isso com o apt-get e as ferramentas baseadas nele. Obviamente, independentemente de qual distro você está falando.
Jo-Erlend Schinstad
10

você pode instalar apenas um pacote por vez sudo apt-get install, mas pode instalar vários pacotes com um comando. Como isso:

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

Isto irá instalar ambos ubuntu-desktope lubuntu-desktope tudo dependências que necessitam, na sequência correta.

Além disso, quando você atualiza seu sistema sudo apt-get upgrade, primeiro baixa todo o software e depois instala um pacote por vez.

O motivo pelo
qual você não pode instalar vários pacotes de uma vez é que apenas uma instância pode usar os apt-getprivilégios ao mesmo tempo. Isso ocorre porque apt-getbloqueia software sourcese bloqueia qualquer outro comando de usá-los.

Um exemplo
Digamos que você de alguma forma inicie 2 apt-get separados como o @Rinzwind diz, então, em teoria, você poderia pelo menos editar a lista de fontes ao mesmo tempo em que a usa para encontrar e instalar um novo software. Isso pode levar a que um programa instalado edite a lista de fontes e adicione um repositório não seguro ao mesmo tempo em que você está atualizando seu sistema. Isso pode ser um problema de segurança.

Outro exemplo
Além disso, se você editar a lista de fontes em 2 comandos separados, ao salvar, substituirá a versão mais recente, que será a última salva. O que significa que o comando no meio não teria nenhum efeito, pois você salvaria uma versão antiga.


O Windows se comporta de maneira semelhante usando o instalador "oficial" (MSI)

Mesmo no Windows, vários softwares podem ser instalados simultaneamente ... há uma vantagem nisso ou por que isso é uma necessidade no linux / ubuntu, etc ...

Pacotes que usam o instalador oficial do Windows (MSI) RECUSARÃO para executar mais de uma instância por vez. Isso ocorre porque o banco de dados do instalador MSI é semelhante aos sources.listarquivos de informações do dpkg etc. - você não deseja que mais de um instalador os modifique / bloqueie por vez.

Porém, muitos pacotes do Windows usam instaladores de terceiros, como Installshield, NSIS, etc., que serão executados lado a lado porque não precisam acessar / modificar o banco de dados MSI. Da mesma forma, no Linux / Ubuntu, ninguém o impede de executar um script de instalação apt-get, a tar -xzfe perl / bash, tudo ao mesmo tempo :)

Alvar
fonte
11
Se não me engano, muitos aplicativos podem ser executados utilizando sudoao mesmo tempo, mas quando se trata de pacote de gestão, apenas uma dessas aplicativo pode instalar ou pacotes remove em um determinado momento, já em execução aptrecebe um bloqueio on sources.liste, portanto, se houver Se você tentar executar outro aplicativo de gerenciamento de pacotes, ele não ficará bloqueado nesse arquivo e, portanto, não será executado.
Kushal
@Kush é apt-get apenas um pode usar, desculpe, foi um longo tempo desde que eu recebi esse erro.
Alvar
@Rinzwind é isso que você quer dizer? :)
Alvar
2
@Alvar: editado para incluir um comportamento semelhante do Windows na parte inferior: não querem pessoas para se mal informado que o Windows é de alguma forma "superior";)
ish
11
@ Alvar ... Muito obrigado !! Isso esclareceu meu básico ..;)
Nirmik
7

Primeiro, saiba que essa resposta é do que eu recolhi de minhas experiências com dpkge apt. Eu não olhei o código do centro de software real para determinar isso.

É um limite do design do software subjacente.

Parte do dpkgsistema que o Ubuntu usa para pacotes inclui um recurso que "bloqueia" o /var/lib/dpkg/lockarquivo para impedir que vários dpkg( apt-gete o Ubuntu Software Center sejam front-ends) substituam a si mesmos e outras coisas ruins e ruins.

O que acontece quando você instala o software? O que acontece é que ele começa sudo apt-get install chromium-browser(para usar o Chromium como exemplo).

E quando isso acontece, um bloqueio é acionado. Depois de adicionar mais de um pacote a ser instalado, o que acontece a seguir é que ele aguarda até que o primeiro seja concluído antes de iniciar o próximo apt comando.

jrg
fonte
4

Algumas ações, como atualizar os menus, indexar fontes e reconfigurar as bibliotecas, precisam ocorrer apenas uma vez se todos os pacotes estiverem instalados ao mesmo tempo. Espera-se que uma segunda vantagem não aconteça com frequência, mas se você deseja instalar pacotes que se excluem, você o conhece antes de fazer o download de todos eles.

Uma última vantagem é importante principalmente quando você instala ou atualiza muitos pacotes de uma só vez: se as perguntas tiverem que ser respondidas, todas aparecerão uma após a outra durante o progresso da instalação. Portanto, você pode continuar trabalhando, em vez de receber erros a cada 5 minutos, por uma pergunta diferente.

johanvdw
fonte
Você teve alguns pontos interessantes lá. :)
Jo-Erlend Schinstad
2

O motivo pelo qual duas instâncias do apt-get não podem operar simultaneamente é porque o aplicativo está lendo / gravando vários arquivos críticos para a operação do sistema. Ler ou gravar um arquivo por uma operação apt-get, enquanto outro estiver executando as mesmas operações nele, levará a problemas de configuração incorreta e / ou danos aos arquivos. Portanto, quando uma operação apt-get ocorre, ela "bloqueia" os arquivos necessários para que outra operação não possa ser executada simultaneamente, ou seja, levanta uma bandeira que informa as outras operações que os arquivos estão em uso no momento.

Entretanto, downloads simultâneos dos arquivos necessários ao apt (ou melhor, baixar de várias fontes) são possíveis com o comando apt-fast

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

The Messie
fonte
0

maneira simples de instalar vários arquivos de uma só vez, siga estas etapas

  1. copie toda a pasta de instalação, por exemplo: / home / user / apps
  2. Terminal aberto e Tipo:

    CD / home / usuário / aplicativos

  3. e depois digite novamente

    sudo dpkg -i * .deb

aguarde até o término da instalação.

hardianto
fonte
11
Isso ainda instala os arquivos .deb um por um . Não é o que o OP pediu - ele quer que vários arquivos .deb sejam instalados simultaneamente.
Ish
-1

você consegue baixar o pacote enquanto o outro está instalando, por exemplo, no terminal1

sudo apt-get install vlc

depois baixe outro pacote em outro terminal2

sudo apt-get download openssh-server

para ver outras opções disponíveis com o apt-get, consulte seu tipo simples man

apt-get <press tab on your keyboard>
marengz
fonte
Isso não responde à pergunta.
guntbert
@ guntbert, eu estava respondendo a segunda parte de sua pergunta, ele disse: "Em vez disso, por que o centro de software não baixa um aplicativo enquanto o outro está instalando", imaginei que ele estava afirmando que não é possível baixar outro pacote enquanto instala outro que está errado.
Marengz 6/03