Я запустил предустановленную ОС с этим файлом 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 имеет ссылки, и даже в тегах они учитываются)
Все еще не могу избавиться от этой ошибки. Должен ли я сам создать файл закрепления?
Вы, кажется, пытаетесь обновить 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 только поддерживаются (и только вероятно, работать):
Ни 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
снова. Но сначала, я рекомендую что Вы:
sudo reboot
) Новое программное обеспечение как ядро будет использоваться. Можно диагностировать проблемы перед обновлением, и следующее обновление будет проводиться в системе, которая является полностью рабочей версия, обновляемая от.TL; доктор: Никогда, измените Ваш sources.list
файл для обновления Ubuntu. Существуют помощники для того (менеджер обновления,-обновление-версии, и т.д.). Ubuntu не является прокручивающимся выпуском как Debian. В Debian можно переключить от одной версии до следующего просто изменение целевой версии, в Ubuntu, нет. Теперь у Вас есть система, которая не является одной версией, ни другим, и должна использовать следующее решение:
Хорошо, так как ответ Eliah кажется слишком длинным и сложным, позволяет, пробуют прямое:
Позволяет проверке, какую версию 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
.
После того как Вы уверены, который является Вашей версией, выполняет следующее:
UBUNTU_VERSION="natty"
Необходимо заменить natty
здесь с результатом предыдущего теста!
Позволяет деактивируют старый 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
Теперь позволяет, создают хороший 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"
Позволяет снижению любые обновленные пакеты, который не имеет нашей версии 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
Теперь мы устанавливаем и выполняем помощника обновления:
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.