você pode usar o argumento --print-uris
do comando apt-get para produzir apenas os URIs dos pacotes de atualização. Por exemplo:
sudo apt-get --print-uris update
mostrará a lista de tarballs e arquivos .xz. mas a lista é muito impura e tem o seguinte formato geral.
'http://archive.ubuntu.com/ubuntu/dists/xenial-backports/multiverse/dep11/icons-64x64.tar.xz' archive.ubuntu.com_ubuntu_dists_xenial-backports_multiverse_dep11_icons-64x64.tar 0
no entanto, a saída pode ser limpa simplesmente usando egrep
com a seguinte expressão regular simples que pode ser usada para corresponder links estáticos diretos de URLs a qualquer arquivo.
sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+"
para transformar isso em uma função,
updateURIonly(){
sudo apt-get -y --print-uris update | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ;
}
você também pode usar isso para gerar os URIs de pacotes para os argumentos upgrade
e / ou dist-upgrade
, assim como qualquer outro argumento que possa ser passado para o comando apt-get.
para que isso funcione com o argumento upgrade
:
upgradeURIonly(){
sudo apt-get -y --print-uris upgrade | egrep -o -e egrep -o -e "(ht|f)tp://[^\']+" ;
}
você pode usar os URIs dessa saída para realizar uma atualização rápida usando os downloaders multiencadeados inerentemente mais rápidos, como axel
an / ou aria2c
. Eu tenho um script no meu github que faz exatamente isso. Ou seja, ele usa o método mostrado acima para extrair uma lista de URIs e faz o download dos pacotes .deb
para executar uma atualização muito rápida. velocidade aumenta até 40X. lembre-se que meu script usa axel
, portanto, certifique-se de ter axel
instalado antes de executar o script.
para clonar meu repositório github:
git clone https://github.com/el-beth/apt-faster.git