Как обновить natty / oneric сервер до точного?

Я запустил предустановленную ОС с этим файлом 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

И я пытаюсь обновить его до этого:

###### 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

Но когда Я пытаюсь запустить обновление apt-get, это дает мне следующее:

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.

И если я пытаюсь запустить apt-get -f install, я получаю следующее сообщение:

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)

I не может позволить себе переустановить сервер с нуля. Может ли кто-нибудь помочь мне заставить его работать?

Заранее большое спасибо.

сентября 8 Обновление:

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

Обновлен список источников до

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

Ран: http://pastebin.com/3Z2GZ347 (@admins: У меня нет репутации публиковать ссылки => apt-get update имеет ссылки, и даже в тегах они учитываются)

Все еще не могу избавиться от этой ошибки. Должен ли я сам создать файл закрепления?

3
задан 23 September 2014 в 17:04

2 ответа

Вы, кажется, пытаетесь обновить Ubuntu от одного выпуска до другого путем ручного редактирования sources.list и выполнение apt-get команды. Не делайте этого, особенно если для Вас важно смочь обновить успешно, не имея необходимость переустанавливать. Та техника является рекомендуемым способом обновить систему Debian (хотя не совсем способ, которым Вы сделали это), но это ни не поддерживается, ни вероятно работать на систему Ubuntu.

К счастью, ничего особенного, кажется, не произошло, когда Вы пытались обновить. Так Вы система, вероятно, не повреждается и может, вероятно, все еще быть обновлена правильный путь.

Правильный способ обновить от одного релиза Ubuntu другому состоит в том, чтобы работать sudo do-release-upgrade. Но существуют некоторые вещи, которые должны заботиться о сначала в Вашем случае.

Рассмотрите создание резервного копирования.

Если Вы не желаете переустановить, необходимо создать резервную копию сначала.

Если Вы просто надеетесь постараться не переустанавливать, то необходимо просто переустановить, потому что система могла иметь проблемы, которые Вы не знаете о том, пока они не появляются, когда Вы используете ее для некоторой важной задачи (см. ниже).

Но если Вы будете надеяться постараться не переустанавливать (но готовый сделать так), и эта система не будет использоваться ни для чего важного, затем делаете ли Вы то полное резервное копирование сначала будет определено тем, стоит ли это того Вам, чтобы приложить дополнительные усилия создания резервного копирования, избежать усилия по переустановке.

Переустановка с нуля является действительно не большим усилием. Но резервное копирование довольно просто также.

(После того как Вы использовали сервер для некоторой важной цели, затем это обычно - очень хорошая идея сделать резервное копирование прежде, чем делать попытку обновления последующей версии и сохранить регулярные резервные копии так или иначе.)

Зафиксировать sources.list представить в настоящее время устанавливаемую систему.

Во-первых, редактирование /etc/apt/sources.list назад к тому, чтобы быть корректным описанием в настоящее время устанавливаемой системы.

Как сделать, это немного неясно, поскольку не ясно, какая система в настоящее время устанавливается. Это аккуратно или Сновещательно? Существование ранее sources.list файл был непоследователен (т.е. неправильно). Если Вы знаете то, что выпускает его, действительно был, большой - делают все кодовые названия выпуска в sources.list укажите на тот выпуск.

Иначе необходимо будет понять это. Если то, что Вы показали, не было полным sources.list файл, обеспечьте это. Это должно поместиться в Ваш вопрос, или можно использовать http://paste.ubuntu.com.

Выполнение lsb_release -a часто говорит Вам выпуск, который в настоящее время устанавливается. Но с непоследовательным sources.list файл, все ставки прочь - если пакеты, которые обеспечивают файлы, используемые lsb_release от другого релиза Ubuntu, чем другие пакеты, установленные в системе, затем система не могла бы действительно выполнять версию Ubuntu lsb_release отчеты. Или это не могло бы выполнять единственную четко определенную версию Ubuntu.

Поэтому - и я знаю, что Вы не хотите слышать это: Если Вы не представили Точное/Сновещательное несоответствие сами, действительно необходимо просто сделать новую установку, особенно если бы Вы хотите использовать этот сервер для чего-либо важного, где не предсказано, внезапные отказы были бы проблемой.

Но, мы можем попытаться работать с этой ситуацией, если Вы действительно хотите. Все еще не будет никакого способа знать, неправильно ли что-то очень, что это вызовет проблемы позже, конечно, даже если все кажется, что эффектно успешно выполнилось. Это обычно имеет место, когда Вы получаете сервер от кого-то еще, и его конфигурация испорчена.

libc6 действительно важный пакет. (Я упомянул бы это, даже если бы это не подходило в выводе некоторых команд, которые Вы выполнили.) Другая эвристика можно использовать для выяснения, какая версия Ubuntu действительно установлена, должен проверить версию libc6 пакет (apt-cache policy libc6) и посмотрите, какой версии Ubuntu это соответствует. (Поиск сети с ним часто является лучшим способом понять это, если это не обязательно актуально, но можно проверить его по информации о версии здесь.)

После того как Вы выяснили то, что в настоящее время устанавливаемая система на самом деле - и не стесняйтесь просить больше справки с этим и/или размещать больше информации в Вашем вопросе, который мог бы быть актуальным также, это - затем редактирует sources.list и измените все кодовые названия версии на кодовое название того выпуска.

Так каждый natty, oneiric, precise, или любое другое кодовое название версии будет изменено на natty если Вы решили, что существующая система 11.04, или к oneiric если Вы решили, что это 11.10.

Используйте old-releases репозитории.

Теперь, когда Вы зафиксировали информацию о версии в Вашем sources.list файл, необходимо изменить серверы загрузки в нем к old-releases.ubuntu.com. Это необходимо, потому что и Аккуратный и Сновещательный выпуски конца жизненного цикла. (Точный не, таким образом добираясь существует хорошая цель, хотя я все еще рекомендую рассмотреть новую установку.)

Для получения дополнительной информации о том, как переключиться на old-releases сервер, см.:

Но действительно Вы просто собираетесь заменить имена хостов в URL сервера в sources.list (часть между http:// и следующее / с old-releases.ubuntu.com).

Обновите свою систему в рамках ее текущего выпуска, как можно больше.

Обновление может быть более вероятно успешно выполниться, если Ваша система максимально полностью обновлена в рамках ее собственного выпуска перед попыткой обновления до следующего выпуска.

Другое преимущество попытки установить обновления - то, что, если она перестала работать, она может показать информацию о проблемах, которые намного более легко решены, чем если бы они были обнаружены при попытке обновления другого выпуска.

Так, выполненный:

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

Отметьте это dist-upgrade не пытается обновить до нового выпуска. (В Debian можно отредактировать Ваш sources.list файл и выполненный apt-get dist-upgrade. Но это не Debian; это обычно не работает в Ubuntu.)

Это может предложить Вам устанавливать новые пакеты или удалять существующие, все же. (Вот в чем разница между upgrade и dist-upgrade.) Так быть осторожным - обращают внимание на то, что оно спрашивает перед нажатием y.

Попытайтесь обновить до следующего выпуска.

Обновления между релизами Ubuntu только поддерживаются (и только вероятно, работать):

  • От (нормальный или LTS) выпускают к следующему выпуску.
  • От LTS выпускают к следующему выпуску LTS.

Ни 11.04, ни 11.10 выпуски LTS. Таким образом, 11.04 Аккуратных могут только быть обновлены до 11.10 Сновещательных, и 11.10 Oneric могут только быть обновлены до 12.04 Точных LTS.

Поэтому, если Ваша система будет Аккуратна, а не Сновещательна, то необходимо будет сделать это дважды.

Для попытки обновления работайте:

sudo do-release-upgrade

Именно. Никакое ручное редактирование конфигурационных файлов.

В необычном событии, что do-release-upgrade утилита не установлена, можно установить ее с:

sudo apt-get install update-manager-core

(На 12.10 Quantal и позже этим обеспечивают ubuntu-release-upgrader-core, в случае, если кто-то использующий недавний выпуск задается вопросом почему update-manager-core неправильный пакет.)

Если у Вас есть проблемы, не стесняйтесь редактировать свой вопрос или отправлять новый вопрос (в зависимости от того, кажутся ли они связанными с темой этого вопроса - они, вероятно). Конечно, другие люди с проблемами с этим должны отправить или отредактировать свои собственные вопросы. Также можно хотеть прокомментировать этот ответ, таким образом, я могу услышать о проблемах и попытке помочь.

Если это работает, большое! Затем:

  • Если Вы просто обновили от Сновещательного до Точного, Вы сделаны!

  • Если Вы просто обновили от Аккуратного до Сновещательного, то попытайтесь do-release-upgrade снова. Но сначала, я рекомендую что Вы:

    1. Перезагрузка. (sudo reboot) Новое программное обеспечение как ядро будет использоваться. Можно диагностировать проблемы перед обновлением, и следующее обновление будет проводиться в системе, которая является полностью рабочей версия, обновляемая от.
    2. Это является, вероятно, лучшим к предыдущему существенному шагу ("Обновляют Вашу систему в рамках ее текущего выпуска"), затем обновите, как Вы сделали прежде.
5
ответ дан 23 September 2014 в 17:04

TL; доктор: Никогда, измените Ваш sources.list файл для обновления Ubuntu. Существуют помощники для того (менеджер обновления,-обновление-версии, и т.д.). Ubuntu не является прокручивающимся выпуском как Debian. В Debian можно переключить от одной версии до следующего просто изменение целевой версии, в Ubuntu, нет. Теперь у Вас есть система, которая не является одной версией, ни другим, и должна использовать следующее решение:

Хорошо, так как ответ Eliah кажется слишком длинным и сложным, позволяет, пробуют прямое:

  1. Позволяет проверке, какую версию Ubuntu Вы имеете:

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

    При выполнении каждой команды, которые запускаются с $ возвраты natty, затем Ваша версия natty, если это возвращается oneiric затем Ваша версия oneiric если возвраты смесь natty и oneiric затем самый безопасный выбор состоит в том, что Ваша система natty.

  2. После того как Вы уверены, который является Вашей версией, выполняет следующее:

    UBUNTU_VERSION="natty"
    

    Необходимо заменить natty здесь с результатом предыдущего теста!

  3. Позволяет деактивируют старый 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. Теперь позволяет, создают хороший 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. Позволяет снижению любые обновленные пакеты, который не имеет нашей версии 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. Теперь мы устанавливаем и выполняем помощника обновления:

    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
    

    Только последняя команда потребует Вашей подсказки. Действительно скопируйте вставку для каждой команды кроме первого, в котором Вы указываете свою версию Ubuntu.

2
ответ дан 23 September 2014 в 17:04

Другие вопросы по тегам:

Похожие вопросы: