Como atualizar o servidor natty / oneric para preciso?

3

Eu iniciei com um SO pré-instalado com este arquivo sources.list:

deb http://archive.ubuntu.com/ubuntu natty main

deb http://ro.archive.ubuntu.com/ubuntu/ oneiric universe
deb-src http://ro.archive.ubuntu.com/ubuntu/ oneiric universe
deb http://ro.archive.ubuntu.com/ubuntu/ oneiric-updates universe
deb-src http://ro.archive.ubuntu.com/ubuntu/ oneiric-updates universe

Estou tentando atualizá-lo para isso:

###### Ubuntu Main Repos
deb http://ro.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 
deb-src http://ro.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse 

###### Ubuntu Update Repos
deb http://ro.archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse 
deb http://ro.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse 
deb-src http://ro.archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse 
deb-src http://ro.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse

Mas quando eu tento executar o apt-get upgrade, isso me dá isto:

root@syrius:/etc/apt# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libc-dev-bin : Depends: libc6 (> 2.15) but 2.13-20ubuntu5.2 is installed
 libc6 : Depends: libc-bin (= 2.13-20ubuntu5.2)
 libc6-dev : Depends: libc6 (= 2.15-0ubuntu10.4) but 2.13-20ubuntu5.2 is installed
 libnih-dbus1 : Depends: libnih1 (= 1.0.3-4ubuntu9.1) but 1.0.3-4ubuntu2 is installed
E: Unmet dependencies. Try using -f.

E se eu tentar executar o apt-get -f install, recebo a seguinte mensagem:

root@syrius:/etc/apt# apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  nagios-images nagios3-core nagios3-cgi nagios3-common
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libc6 libnih1
Suggested packages:
  glibc-doc
The following packages will be upgraded:
  libc6 libnih1
2 upgraded, 0 newly installed, 0 to remove and 611 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4708 kB of archives.
After this operation, 58.4 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
locale: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.15' not found (required by locale)
locale: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by locale)
debconf: DbDriver "config": could not open /var/cache/debconf/config.dat
(Reading database ... 121436 files and directories currently installed.)
Preparing to replace libc6 2.13-20ubuntu5.2 (using .../libc6_2.15-0ubuntu10.4_amd64.deb) ...
locale: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.15' not found (required by locale)
locale: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found (required by locale)
debconf: DbDriver "config": could not open /var/cache/debconf/config.dat
dpkg: error processing /var/cache/apt/archives/libc6_2.15-0ubuntu10.4_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/libc6_2.15-0ubuntu10.4_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu não posso permitir a reinstalação do servidor a partir do zero. Alguém pode me ajudar a fazer isso funcionar?

Agradecemos antecipadamente.

Sept. 8 Atualização:

root@localhost:/etc/apt# cat /etc/debian_version
wheezy/sid
root@localhost:/etc/apt# lsb_release -ac
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 11.10
Release:    11.10
Codename:   oneiric
root@localhost:/etc/apt# cat /etc/issue.net
Ubuntu 11.1

Lista atualizada de fontes de volta para

deb http://old-releases.ubuntu.com/ubuntu natty main
deb http://old-releases.ubuntu.com/ubuntu/ oneiric universe
deb-src http://old-releases.ubuntu.com/ubuntu/ oneiric universe
deb http://old-releases.ubuntu.com/ubuntu/ oneiric-updates universe
deb-src http://old-releases.ubuntu.com/ubuntu/ oneiric-updates universe

Ran: link (@admins: Eu não tenho reputação de postar links = & gt; o apt-get update tem links e até mesmo na tag eles são levados em consideração)

Ainda não é possível se livrar desse erro. Devo criar o arquivo de fixação sozinho?

    
por Dragos Cirjan 06.09.2013 / 22:32

2 respostas

5

Você parece estar tentando atualizar o Ubuntu de uma versão para outra editando manualmente os comandos sources.list e executando apt-get . Por favor, não faça isso , especialmente se for importante para você poder atualizar com sucesso sem ter que reinstalar. Essa técnica é a maneira recomendada para atualizar um sistema Debian (embora não exatamente como você fez), mas ele não é suportado nem provavelmente funcionará para um sistema Ubuntu .

Felizmente, nada parece ter acontecido quando você tentou atualizar. Então, seu sistema provavelmente não está quebrado e provavelmente ainda pode ser atualizado da maneira correta.

O caminho certo para atualizar de uma versão do Ubuntu para outra é executar sudo do-release-upgrade . Mas há algumas coisas que precisam ser resolvidas primeiro no seu caso.

Considere fazer um backup.

Se você não deseja reinstalar, faça o backup primeiro.

Se você está apenas esperando para evitar a reinstalação, você deve apenas reinstalar, porque o sistema pode ter problemas que você não conhece até que eles aparecem quando você está usando para alguma tarefa importante (veja abaixo).

Mas se você está esperando para evitar a reinstalação (mas disposto a fazê-lo) e este sistema não será usado para nada importante, então se você fizer ou não um backup completo primeiro será determinado por se vale a pena fazer o backup extra, para evitar o esforço de reinstalar.

Reinstalar do zero não é muito esforço. Mas o backup é bastante simples também.

(Uma vez que você está usando um servidor para alguma finalidade importante, então geralmente é uma boa ideia fazer um backup antes de tentar uma atualização para uma versão subsequente e manter backups regulares de qualquer maneira .)

Corrigir sources.list para representar o sistema atualmente instalado.

Primeiro , edite o /etc/apt/sources.list de volta para ser uma descrição correta do sistema atualmente instalado .

Como fazer isso é um pouco incerto, já que não está claro qual sistema está atualmente instalado. É Natty ou Onírico? O arquivo sources.list preexistente era inconsistente (isto é, errado ). Se você sabe qual lançamento realmente foi, ótimo - faça com que todos os codinomes de lançamento em sources.list apontem para esse lançamento.

Caso contrário, você terá que descobrir isso. Se o que você mostrou não foi o arquivo completo sources.list , forneça isso. Ele deve se encaixar na sua pergunta ou você pode usar o link .

A execução de lsb_release -a geralmente informa a versão atualmente instalada. Mas com um arquivo sources.list inconsistente, todas as apostas estão desativadas - se os pacotes que fornecem os arquivos usados por lsb_release forem de uma versão diferente do Ubuntu de outros pacotes instalados no sistema, então o sistema pode não estar executando o versão do Ubuntu lsb_release reports. Ou pode não estar executando uma única versão bem definida do Ubuntu.

Portanto - e eu sei que você não quer ouvir isso: A menos que você mesmo tenha introduzido a inconsistência Precise / Oneiric, você deve apenas fazer uma nova instalação, especialmente se você quiser usar este servidor para algo importante onde imprevistos, falhas aleatórias seriam um problema.

Mas, podemos tentar trabalhar com essa situação, se você realmente quiser. Ainda não haverá maneira de saber se algo está profundamente errado, o que causará problemas mais tarde, é claro, mesmo que tudo pareça ter sido espetacularmente bem-sucedido. Esse é geralmente o caso quando você obtém um servidor de outra pessoa e sua configuração está desordenada.

libc6 é um pacote realmente importante. (Eu estaria mencionando isso mesmo que não tenha aparecido na saída de alguns dos comandos que você executou.) Outra heurística que você pode usar para descobrir qual versão do Ubuntu está realmente instalada é verificar a versão do libc6 package ( apt-cache policy libc6 ) e veja em qual versão do Ubuntu ele corresponde. (Pesquisando na web com isso é geralmente a melhor maneira de descobrir isso, se não for necessariamente atualizado, mas você pode verificar isso em as informações da versão aqui .

Depois que você descobrir o que o sistema atualmente instalado realmente é - e fique à vontade para pedir mais ajuda com isso e / ou postar mais informações em sua pergunta que possam ser relevantes também - então edite sources.list e altere todos os codinomes da versão para o codinome da versão.

Portanto, cada natty , oneiric , precise ou qualquer outro codinome de versão será alterado para natty se você decidiu que o sistema atual é 11.04 ou para oneiric se tiver decidido é 11,10.

Use os repositórios old-releases .

Agora que você corrigiu as informações da versão no seu arquivo sources.list , é necessário alterar os servidores de download para old-releases.ubuntu.com . Isso é necessário porque tanto o Natty quanto o Oneiric são releases de fim de vida . (Preciso não é, então chegar lá é um bom objetivo, embora eu ainda recomendo considerar uma nova instalação .

Para mais detalhes sobre como mudar para o servidor old-releases , consulte:

Mas, na verdade, você substituirá os nomes de host nas URLs do servidor em sources.list (a parte entre http:// e a próxima / com old-releases.ubuntu.com ).

Atualize seu sistema dentro do release atual, o máximo possível.

Uma atualização pode ter mais chances de ser bem-sucedida se o sistema for atualizado o máximo possível dentro de sua própria versão antes de você fazer upgrade para a próxima versão.

O outro benefício de tentar instalar atualizações é que, se falhar, pode revelar informações sobre problemas que são mais facilmente corrigidos do que se fossem descobertos ao tentar atualizar para uma versão diferente.

Então, corra:

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get dist-upgrade

Observe que dist-upgrade não não tenta atualizar para uma nova versão. (No Debian, você pode editar seu arquivo sources.list e rodar apt-get dist-upgrade . Mas isso não é Debian; isso não costuma funcionar no Ubuntu.)

Ele pode solicitar que você instale novos pacotes ou remova os já existentes. (Isso é a diferença entre upgrade e dist-upgrade .) Portanto, tenha cuidado - preste atenção ao que ele está perguntando antes de pressionar y .

Tente atualizar para o próximo lançamento.

Atualizações entre versões do Ubuntu são suportadas apenas (e provavelmente funcionarão):

  • De um lançamento (normal ou LTS) para o próximo lançamento.
  • De um lançamento do LTS para o próximo lançamento do LTS.

Nem 11.04 nem 11.10 são versões LTS. Então 11,04 Natty só pode ser atualizado para 11,10 Oneiric, e 11,10 Oneric só pode ser atualizado para 12,04 LTS Precise.

Portanto, se o seu sistema for Natty em vez de Oneiric, você precisará fazer isso duas vezes.

Para tentar a atualização, execute:

sudo do-release-upgrade

É isso. Nenhuma edição manual de arquivos de configuração.

No evento incomum em que o utilitário do-release-upgrade não está instalado, você pode instalá-lo com:

sudo apt-get install update-manager-core

(No 12.10 Quantal e posterior é fornecido por ubuntu-release-upgrader-core , no caso de alguém usar Um lançamento recente pergunta por que update-manager-core é o pacote errado.

Se você tiver problemas , sinta-se à vontade para editar sua pergunta ou postar uma nova pergunta (dependendo se eles parecem ou não relacionados ao tópico desta pergunta - provavelmente são). É claro que outras pessoas com problemas com isso devem postar ou editar suas próprias perguntas. Além disso, você pode comentar essa resposta para que eu possa ouvir sobre os problemas e tentar ajudar.

Se funciona , ótimo! Então:

  • Se você acabou de atualizar do Oneiric para o Precise, está pronto!

  • Se você acabou de atualizar do Natty para o Oneiric, tente do-release-upgrade novamente. Mas primeiro, eu recomendo que você:

    1. Reinicie. ( sudo reboot ) Novo software como o kernel será usado. Você pode solucionar problemas antes de atualizar, e a próxima atualização será realizada em um sistema que esteja executando completamente a versão que está sendo atualizada .
    2. Provavelmente é melhor para a etapa principal anterior ("Atualize seu sistema dentro de seu release atual"), então upgrade, exatamente como você fez antes.
por Eliah Kagan 06.09.2013 / 23:27
2

TL; dr: Nunca, nunca modifique seu arquivo sources.list para atualizar o Ubuntu. Existem ajudantes para isso (update-manager, do-release-upgrade, etc.). O Ubuntu não é uma versão móvel como o Debian. No Debian você pode mudar de uma versão para outra apenas alterando a versão alvo, no Ubuntu, não. Agora você tem um sistema que não é uma versão nem outra, e precisa empregar a seguinte solução:

Ok, como a resposta de Eliah parece longa e complicada, vamos tentar seguir em frente:

  1. Vamos ver qual versão do Ubuntu você tem:

    $ cat /etc/debian_version
    natty
    $ lsb_release -ac
    natty
    $ cat /etc/issue.net
    natty
    $ cat /etc/debian_version
    natty
    

    Ao executar todos os comandos que começam com $ devolve natty , a sua versão é natty , se devolver oneiric , a sua versão é oneiric se devolver uma mistura de natty e oneiric então a escolha mais segura é que seu sistema é natty .

  2. Quando tiver certeza de qual é a sua versão, execute o seguinte:

    UBUNTU_VERSION="natty"
    

    Você deve substituir natty aqui pelo resultado do teste anterior!

  3. Permite desativar o antigo sources.list:

    sudo rename 's/\.list$/\.list\.disable/' /etc/apt/sources.list.d/*.list
    sudo mv /etc/apt/sources.list /etc/apt/sources.list.old
    
  4. Agora vamos criar as boas sources.list

    sudo sh -c "echo 'deb http://old-releases.ubuntu.com/ubuntu' $UBUNTU_VERSION 'main universe multiverse restricted' >> /etc/apt/sources.list"
    sudo sh -c "echo 'deb http://old-releases.ubuntu.com/ubuntu' $UBUNTU_VERSION'-updates main universe multiverse restricted' >> /etc/apt/sources.list"
    
  5. Deixa downgrade de qualquer pacote atualizado que não seja da nossa versão do linux

    sudo sh -c "echo 'Package: *' >> /etc/apt/preferences.d/pinning"
    sudo sh -c "echo 'Pin: release a='$UBUNTU_VERSION" >> /etc/apt/preferences.d/pinning"
    sudo sh -c "echo 'Pin-Priority: 1990' >> /etc/apt/preferences.d/pinning"
    sudo apt-get update
    sudo apt-get -f upgrade
    sudo apt-get -t $UBUNTU_VERSION upgrade
    
  6. Agora, instalamos e executamos o auxiliar de atualização:

    sudo apt-get upgrade
    sudo apt-get -y install update-manager-core
    sudo rm /etc/apt/preferences.d/pinning
    sudo do-release-upgrade -m server
    

    Apenas o último comando exigirá seu prompt. Por favor, copie e cole para cada comando, exceto o primeiro , no qual você especifica sua versão do Ubuntu.

por Braiam 08.09.2013 / 20:21

Tags