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

29

Eu estava 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, em vez disso, porque o centro de software não faz o download de um aplicativo enquanto o outro está instalando

    
por JesusLives ii 16.09.2011 / 20:37

7 respostas

29

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

É possível consertar isso, então espero que, no futuro, isso seja corrigido, mas isso significa recriar ou reescrever ferramentas existentes, então não acho que tenha 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 primeiro baixam todos os pacotes que você pede e todos os pacotes dos quais eles dependem, etc., e então instalam todos eles. Então você normalmente forneceria todos os pacotes que você queria de uma só vez, e eles primeiro seriam baixados e depois instalados.

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

Isto pode ser corrigido por não usar o apt-get para instalar os pacotes, mas sim baixar os pacotes manualmente e então usar o dpkg para instalá-los assim que estiverem prontos. Você ainda não conseguiria instalar dois pacotes simultaneamente, mas seria capaz de iniciar o download de novos pacotes enquanto as instalações iniciadas anteriormente estivessem sendo concluídas. Em alguns casos, isso pouparia algum tempo, por isso é uma boa ideia. Mas na maioria dos casos, isso realmente não importa, então o esforço é melhor focado em outros lugares.

    
por Jo-Erlend Schinstad 16.09.2011 / 21:37
10

você só pode instalar um pacote no momento com sudo apt-get install , mas você pode instalar vários pacotes com um comando. Assim:

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

Isso instalará os ubuntu-desktop e lubuntu-desktop e quaisquer dependências que eles precisem, na sequência correta.

Além disso, ao atualizar seu sistema com sudo apt-get upgrade , você primeiro faz o download de todo o software e instala um pacote no momento.

A razão
Por que você não pode instalar vários pacotes de uma só vez é que apenas uma instância pode usar os apt-get privilégios ao mesmo tempo. Isso ocorre porque apt-get bloqueia o software sources e 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 você poderia, em teoria, pelo menos editar a lista de fontes ao mesmo tempo em que você a utiliza para encontrar e instalar novos softwares. Isso pode levar a que um programa que você instalou edite a lista de fontes e adicione um repositório não seguro ao mesmo tempo que atualiza 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, você substituirá a versão mais recente, que será a última a ser salva. O que significa que o comando no meio não teria nenhum efeito, já que você salvaria uma versão antiga.

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

% bl0ck_qu0te%

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

Mas muitos dos 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 está impedindo você de executar um script de instalação apt-get , tar -xzf e perl / bash todos ao mesmo tempo:)

    
por Alvar 26.05.2012 / 11:49
7

Primeiro, deixe claro que essa resposta é do que eu obtive das minhas experiências com dpkg e apt . Eu não olhei para o código real do centro de software para determinar isso.

É um limite do design do software subjacente.

Parte do sistema dpkg que o Ubuntu usa para pacotes inclui um recurso que "bloqueia" o arquivo /var/lib/dpkg/lock para evitar que múltiplos dpkg ( apt-get e Ubuntu Software Center sejam os front-ends) sobrescrevendo a si mesmo e a outros coisas ruins, más.

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

E quando isso acontece, um bloqueio entra em ação. Depois de adicionar mais de um pacote a ser instalado, o que acontece a seguir é que ele aguarda até que o primeiro seja feito antes de iniciar o próximo comando apt .

    
por jrg 16.09.2011 / 21:26
4

Algumas ações, como atualizar o menu, indexar fontes e reconfigurar as bibliotecas, precisam acontecer apenas uma vez se todos os pacotes forem instalados ao mesmo tempo. Uma segunda vantagem, esperançosamente, não deveria acontecer com frequência, mas se você quiser instalar pacotes que excluam um ao outro, você sabe disso antes de fazer o download de todos eles.

A última vantagem é mais importante quando você instala ou atualiza vários pacotes de uma só vez: se as perguntas tiverem que ser respondidas, todas elas virão uma após a outra durante o progresso da instalação. Assim, você pode continuar trabalhando em vez de ser grampeado a cada 5 minutos por uma pergunta diferente.

    
por johanvdw 16.09.2011 / 21:25
2

A razão pela 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. A leitura ou gravação de um arquivo por uma operação do apt-get, enquanto outra realiza as mesmas operações, resultará em problemas de configuração incorreta e / ou danos aos arquivos. Assim, quando ocorre uma operação apt-get, ela "bloqueia" os arquivos necessários para que outra operação não possa ser executada simultaneamente, e gera um sinalizador que informa às outras operações que os arquivos estão atualmente em uso.

No entanto, os downloads simultâneos dos arquivos necessários pelo apt (ou melhor, o download de várias fontes) são possíveis com o comando apt-fast

link

    
por The Messie 26.05.2012 / 14:22
0

maneira simples de instalar vários arquivos de uma só vez, siga estes passos

  1. copiar toda a pasta de instalação, por exemplo: / home / user / apps
  2. Abra o terminal e digite:

    % bl0ck_qu0te%
  3. e depois digite novamente

    % bl0ck_qu0te%

aguarde até que a instalação termine.

    
por hardianto 26.05.2012 / 14:28
-1

você obtém o download do pacote enquanto o outro está instalando, por exemplo, no terminal1

sudo apt-get install vlc

faça o download de outro pacote em outro terminal2

sudo apt-get download openssh-server

para ver outras opções disponíveis com o apt-get referem-se ao seu tipo simples de homem

apt-get <press tab on your keyboard>
    
por marengz 06.03.2015 / 15:32