Posso fazer o do-release-upgrade apenas baixar pacotes para uma atualização posterior?

27

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

De acordo com this , não é uma maneira fácil de fazer isso. O relatório de erros mencionado nesse tópico ainda está aberto.

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

Ou está fazendo isso manualmente, a única maneira de obter o resultado que eu desejo?

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

  1. Desativar repositórios de terceiros em /etc/apt/sources.list e /etc/apt/sources.list.d
  2. Alterar repositórios em /etc/apt/sources.list de maverick para natty
  3. executar sudo apt-get update
  4. execute sudo apt-get -d dist-upgrade para baixar somente os pacotes. Faça isso quantas vezes forem necessárias até que todos os pacotes sejam baixados.
  5. execute sudo apt-get dist-upgrade para concluir o processo de atualização
por Menachem 27.07.2011 / 09:24

6 respostas

5

Existe uma maneira de fazer com que o gerenciador de atualização execute as etapas de 1 a 3 para você.

  1. Execute sudo update-manager de uma janela de terminal na GUI (isso é importante)

    • Inicie o gerenciador de atualização, informe que deseja atualizar para a próxima versão do Ubuntu e deixe-o em execução. Ele desabilitará os repositórios de terceiros, alterará os repositórios principais para a versão mais recente e, em seguida, executará sudo apt-get update para você.
    • Será exibida uma tela informando que, para executar a atualização, será necessário remover, instalar e atualizar os pacotes.
    • Nesse estágio, vá para a janela do terminal e force a saída do programa usando CTRL-C. [Se você não fizer isso e cancelar a atualização através do botão cancelar do gerenciador de atualização, ele irá reverter as alterações].
  2. execute sudo apt-get -d dist-upgrade na linha de comando quantas vezes forem necessárias, até que todos os pacotes sejam baixados e estejam prontos para serem instalados

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

  4. Reabilite os repositórios de terceiros e execute sudo apt-get update && sudo apt-get upgrade novamente 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)

por Menachem 10.02.2014 / 03:25
12

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

Em algumas versões anteriores do do-release-upgrade, havia um bug onde limpava /var/cache/apt/archives antes de baixar os pacotes novamente, mas o IIRC que o bug foi corrigido.

    
por Marius Gedminas 30.07.2011 / 23:45
8

Eu escrevi um script para fazer isso, para minha própria atualização de várias máquinas para o Ubuntu 14.04 "fiel". É 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 tem sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

Por trás das cenas, basicamente, está rodando apt-get update; apt-get -d dist-upgrade com seu próprio conjunto particular de arquivos sources.list. Os resultados são armazenados em / var / cache / apt- $ to_rel / archives, e o sinalizador '-U' os copia para / var / cache / apt / archives em 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 um amd64 e uma atualização i386, copiando apenas os * .deb que não tinham "amd64" em seus nomes; Em seguida, executou outro apt-get-other-release -t trusty na 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 askubuntu. Os motores de busca estão bem conscientes de mim.

NOTA: Eu não fiz realmente uma atualização de um sistema tão tratado! Algum tempo na próxima semana. Obtendo este script enquanto pode ser de alguma utilidade para as pessoas.

> Bela <

    
por user270294 18.04.2014 / 12:36
2

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

link

Uso: em um diretório temporário, execute

 ./fetch-release-upgrade.sh trusty

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

Eu ainda não vi o script do user270294, mas parece que ele funciona em linhas similares e pode ter mais alguns recursos.

    
por Nate Eldredge 06.05.2014 / 16:39
2

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

  1. Execute sudo do-release-upgrade em uma janela de 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 aberto

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

  3. Quando terminar, continue ou aborte como quiser na primeira janela do terminal

Pro dica: instale um multiplexador de terminal como screen e execute o do-release-upgrade dentro dele. Então, você pode se reconectar com screen -D -RR caso algo aconteça ao terminal que mostra o processo de atualização. (Felizmente, minha atualização hoje estava quase completa ...)

    
por krlmlr 02.07.2018 / 09:40
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 com 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 fazer upgrade do CD. Faça o download da iso Alternate , monte-a 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. Bittorrent funcionará bem como com um gerenciador de downloads padrão. O importante é que você queira algo que será retomado, para que você possa interromper o download e recuperá-lo em outro momento. Isso é o que a wget -c flag 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 integrantes do Ubuntu que estão incluídas no CD. Não atualizará seus outros pacotes.

Em teoria , isso deve estar bem. Você pode achar que alguns aplicativos quebram, alguns podem ser forçados a serem removidos pelo atualizador, mas o sistema operacional central 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ê instalar) aptitude .

    
por Oli 27.07.2011 / 12:05