Posso fazer o download do pacote de download apenas para uma atualização posterior?

33

Estou executando o lubuntu 10.10 e gostaria de atualizar para o 11.04. Eu tenho uma conexão de internet muito temperamental, então gostaria de baixar todos os pacotes antes de executar a instalação.

De acordo com isso , não há uma maneira fácil de fazer isso. O relatório de bug mencionado nesse segmento ainda está aberto.

Minha pergunta: Existe uma maneira de hackear do-release-upgrade para baixar apenas os pacotes, como adicionar um "-d" ao apt-get dist-upgrade?

Ou fazê-lo manualmente é a única maneira de obter o resultado que desejo?

Se eu tiver que fazer isso manualmente, essas são as etapas necessárias ou estou faltando alguma coisa?

  1. Desativar repositórios de terceiros em /etc/apt/sources.liste/etc/apt/sources.list.d
  2. Alterar repositórios /etc/apt/sources.listde maverickparanatty
  3. corre sudo apt-get update
  4. execute sudo apt-get -d dist-upgradepara baixar apenas os pacotes. Faça isso quantas vezes forem necessárias até que todos os pacotes sejam baixados.
  5. executar sudo apt-get dist-upgradepara concluir o processo de atualização
Menachem
fonte
Isso parece próximo ao que eu teria feito.
Jo-Erlend Schinstad

Respostas:

13

Seus quatro primeiros passos estão corretos, mas o passo 5 deve ser sudo do-release-upgrade(em vez de sudo apt-get dist-upgrade). Deve-se notar que todos (ou a maioria) dos pacotes dos quais estava sendo baixado já estão presentes /var/cache/apt/archives.

Em algumas versões anteriores do do-release-upgrade, havia um erro em que ele era limpo /var/cache/apt/archivesantes de baixar os pacotes novamente, mas o IIRC era corrigido.

Marius Gedminas
fonte
Eu fiz isso e funcionou.
Menachem
veja como fazer isso usando a GUI aqui: askubuntu.com/a/418789/21794
Menachem
O processo descrito na pergunta é utilizável para atualizar de um LTS para o outro? Eu tenho um servidor executando o 12.04 que gostaria de passar para o 14.04, mas talvez não tenha a chance de me preparar totalmente para a atualização antes que os repositórios do 12.04 sejam removidos no final deste mês.
Dgw 17/04
9

Eu escrevi um script para fazer isso, para minha própria atualização de várias máquinas para o Ubuntu 14.04 "confiável". É chamado de 'apt-get-other-release'. Uso simples:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

O script está em:

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

e a versão 1.0 possui sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Nos bastidores, ele basicamente roda apt-get update; apt-get -d dist-upgradecom seu próprio conjunto privado de arquivos sources.list. Os resultados são armazenados em / var / cache / apt- $ to_rel / archives, e o sinalizador '-U' copia-os em / var / cache / apt / archives para todo o sistema, para que eles estejam presentes durante a atualização.

Você também pode copiar o arquivo de atualização de um host local para outro, economizando largura de banda. Fiz isso para uma atualização do amd64 e do i386, copiando apenas aqueles * .deb que não tinham "amd64" em seus nomes; depois rodou outro apt-get-other-release -t trustyna máquina i386, que baixou outra grande pilha de pacotes, já que as duas máquinas tinham coisas diferentes instaladas nelas.

Feedback apreciado; e-mail cc apreciado, como eu não sei quando vou olhar em seguida no askubuntu. Os motores de busca estão bem cientes de mim.

NOTA: Na verdade, eu não fiz uma atualização de um sistema assim tratado! Algum tempo na próxima semana. Divulgar esse script, embora possa ser útil para as pessoas.

> Bela <

user270294
fonte
6

Existe uma maneira de obter o gerenciador de atualizações para executar as etapas 1 a 3 para você.

  1. Executar a sudo update-managerpartir de uma janela de terminal na GUI (isso é importante)

    • Inicie o gerenciador de atualizações, diga que deseja atualizar para a próxima versão do Ubuntu e deixe-o começar a funcionar. Ele desabilitará os repositórios de terceiros, alterará os repositórios principais para a versão mais recente e executará sudo apt-get updatepara você.
    • Aparecerá uma tela informando que, para executar a atualização, será necessário remover, instalar e atualizar pacotes.
    • Nesta fase, vá para a janela do terminal e saia do programa com força usando CTRL-C. [Se você não fizer isso e cancelar a atualização usando o botão Cancelar do gerenciador de atualizações, ele reverterá as alterações].
  2. execute a sudo apt-get -d dist-upgradepartir da linha de comando quantas vezes forem necessárias, até que todos os pacotes estejam baixados e prontos para instalar

  3. execute sudo do-release-upgradee deixe concluir a atualização com os pacotes já baixados.

  4. Reative os repositórios de terceiros e execute sudo apt-get update && sudo apt-get upgradenovamente para atualizar os repositórios de terceiros para a versão mais recente (verifique se os repositórios estão atualizados para a versão mais recente do ubuntu)

Menachem
fonte
2

Também escrevi um script para isso, que você pode encontrar em

https://github.com/neldredge/fetch-release-upgrade

Uso: em um diretório inicial, execute

 ./fetch-release-upgrade.sh trusty

ou qualquer nova versão para a qual você queira atualizar. Os pacotes necessários serão baixados para um subdiretório chamado debs. Você pode movê-los para /var/cache/apt/archivesantes de executar do-release-upgrade.

Ainda não examinei o script do user270294, mas parece que funciona de maneira semelhante e pode ter mais alguns recursos.

Nate Eldredge
fonte
2

A seguinte versão um pouco mais curta da resposta de Menachem funcionou para mim:

  1. Execute sudo do-release-upgradeem uma janela do terminal, aguarde até o prompt:

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    Não confirme, deixe em aberto

  2. Em uma segunda janela do terminal, execute sudo apt-get dist-upgrade --download-only

  3. Quando terminar, continue ou aborte à vontade na primeira janela do terminal

Dica profissional: instale um multiplexador de terminal screene execute o do-release-upgradeinterior. Em seguida, você poderá se reconectar screen -D -RRcaso algo aconteça no terminal que mostra o processo de atualização. (Felizmente, minha atualização hoje estava quase completa ...)

krlmlr
fonte
Essa é uma boa maneira de fazê-lo, mas poderá falhar se você precisar desligar o computador no meio.
Menachem
@ Menachem: Obrigado. O que você quer dizer com "falha", você pode por favor elaborar? Sim, as fontes do APT provavelmente estarão em um estado inconsistente, mas fora isso?
precisa saber é
Eu não tentei, então não sei exatamente o que aconteceria. Eu estava pensando que, porque quando você cancela a atualização do-release-update reverte as alterações, mas você está usando as mais recentes fontes apt para baixar atualizações, você pode acabar com um sistema instável ao tentar executar a atualização novamente mais tarde.
Menachem
Não tenho certeza se apenas o download de arquivos de instalação muda alguma coisa, isso não é apenas o cache de arquivos da Internet? De qualquer forma, esse processo funcionou bem para mim e eu abortei e reiniciei do-release-upgradeapós o download.
precisa saber é
1
sim. contanto que você não tente executar uma atualização regular até terminar, tudo bem.
Menachem
0

Disclaimer: Eu nunca fiz isso antes. Pode ser uma ideia horrível. Pode quebrar tudo, esvaziar suas contas bancárias e fugir para o sul da Espanha. Como em qualquer coisa potencialmente perigosa, faça um backup antes de fazer qualquer coisa.


Não sei ao certo quantas coisas você instalou; portanto, essa pode ser uma solução defeituosa, mas você pode atualizar a partir do CD. Faça o download do iso alternativo , monte-o e execute o script de atualização.

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

Antes de prosseguir, você não precisa usar o wget para obter a imagem. O Bittorrent funcionará bem como com um gerenciador de downloads padrão. O importante é que você queira algo que será retomado, para que você possa parar o download e buscá-lo em outro momento. Isto é o que wgeta -cbandeira fará.

Depois de ter o ISO, o próximo passo é bastante simples:

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

A falha de que falei é que isso só atualizará as coisas essenciais para o Ubuntu incluídas no CD. Não atualizará seus outros pacotes.

Em teoria, isso deve estar bem. Você pode achar que alguns aplicativos quebram, outros podem ser removidos à força pelo atualizador, mas o sistema operacional principal deve permanecer estável.

Se minha teoria estiver correta, isso permitirá que você atualize seus outros pacotes usando como e quando quiser através do Synaptic ou (se você o instalar) aptitude.

Oli
fonte
E se o sul da Espanha estiver mais perto?
Matt Joiner