Como parar e reiniciar o apt-get

2

Eu tenho uma conexão muito lenta (~ 10 KB / s) porque minha operadora de celular me estrangulou. Agora, eles enviarão cerca de 32 KB e depois pararão.

Estou tentando instalar pacotes através do apt-get e notei que posso parar (ctrl-c) e reiniciar a instalação, e ela continuará de onde parou.

Ao fazer isso, posso obter um pouco de dados, pará-lo, iniciá-lo e obter um pouco mais de dados; caso contrário (sem parar e reiniciar), tenho que esperar cerca de 15 segundos antes que mais dados cheguem

Existe uma maneira de automatizar isso e fazer com que um script pare o apt-get e inicie novamente?

Jacob Valenta
fonte

Respostas:

4

Aqui está um script que pega os nomes dos pacotes como argumentos e executa apt-getrepetidamente, matando-o após alguns segundos. Ele é executado apt-getno modo "download" e, portanto, apenas baixa, não instala. Você pode ajustar o sleeptempo, dependendo da rapidez com que seu provedor limita o download.

#!/bin/bash

me=$(basename $0)

if (($# == 0))
then
    printf "Usage: %s package [package]...\n" $me
    exit 1
fi

printf "Will install %d package(s).\n" $#
printf "This will run forever.\n"
printf "You can stop it by pressing ctrl-C when prompted.\n"
printf "If that fails, open another window and type 'killall %s'.\n" $me
read -p "Press 'Enter' to continue: "

while :
do
    timeout 3 apt-get -y -d install "$@"
    printf "Press ctrl-C within one second to stop\n"
    sleep 1
done
Tom Zych
fonte
2
Por que não usar a ferramenta de tempo limite do GNU coreutils ? Não deve haver necessidade de reinventar a roda.
a CVn 14/06
Ah muito bem. Não sabia sobre isso. Obrigado.
Tom Zych
Reescrito para usar timeout.
Tom Zych
1

Acredito que seria melhor tentar Ctrl+ Zsuspender o processo em segundo plano. Você pode usar fgpara continuar assim que sua conectividade retornar.

Para pausar um trabalho, pressione Ctrl+ Z.

Para reiniciar o trabalho novamente quando você receber os sinais de rede:

fg %1
stderr
fonte
0

Você pode querer usar o apt-fast , ele baixa de vários espelhos em paralelo. Mesmo se você se desconectar de um, ele continuará o download de outros espelhos. Você pode baixá-lo e configurá-lo diretamente na página do apt-fast do GitHub, que está muito bem documentada.

Parth Parikh
fonte