LINUX.ORG.RU

сломал пакетный менеджер

 ,


0

1

Всем привет
Снимаем с другом на двоих удаленный сервер с debian'ом на борту.
Сегодня при попытки поставить mysql мне выдает

n4ela@Debian-60-squeeze-64-minimal:~$ sudo apt-get install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mysql-server : Depends: mysql-server-5.1 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
sudo apt-get install -f не помогает, такая ошибка возникает при попытки установить любой пакет.
cat /etc/debian_version
jessie/sid
Есть предположение что кто то из нас ставил пакеты из нестабильнйо версии, и теперь невозможно вообще поставить не один пакет.
Как можно решить проблему?



Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от kostik87

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

n4ela
() автор топика
Ответ на: комментарий от n4ela

Скинь снимок состояния пакетного менеджера с помощью

aptitude-create-state-bundle

Может что будет понятно.

З.Ы. Осторожно, если лимитированный трафик - бандл весит в районе 200Mb

bkarm
()

Во-первых, скажи, какие репозитории подключены. Прямо вот список дай из /etc/apt/sources.list и из файлов /etc/apt/sources.list.d, если там какие-то есть.

Во-вторых, что говорит apt-cache search mysql-server? Дело в том, что mysql-server - это метапакет, а конкретный пакет - это mysql-server-5.1. В jessie/sid сейчас mysql-server-5.5, а 5.1 был Squeeze (oldstable) и по какой-то причине он смотрит списки пакетов именно oldstable! Что-то где-то вы там накосячили с репозиториями.

Во-вторых, не забыли сделать apt-get update?

Если делали и список репозиториев у вас правильный будет (сначала покажи), то тогда удалите /var/lib/apt/lists (только lists!), /var/cache/apt, сделайте apt-get update.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

source.list

#######################################################################################
# Hetzner APT-Mirror

#deb     http://mirror.hetzner.de/debian/packages squeeze main contrib non-free
#deb     http://mirror.hetzner.de/debian/security squeeze/updates main contrib non-free

#deb     http://mirror.hetzner.de/debian/packages sid main contrib non-free
#deb http://ftp.debian.org/debian experimental main


#######################################################################################
# Backupmirror
#

#deb     http://ftp.uni-bayreuth.de/linux/Debian/debian/  squeeze  main non-free contrib
#deb-src http://ftp.uni-bayreuth.de/linux/Debian/debian/  squeeze  main non-free contrib

#deb     http://security.debian.org/  squeeze/updates  main contrib non-free
#deb-src http://security.debian.org/  squeeze/updates  main contrib non-free

## backports
#deb     http://mirror.hetzner.de/debian/backports squeeze-backports main contrib non-free
#deb     http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

## new
deb http://http.debian.net/debian wheezy main
deb-src http://http.debian.net/debian wheezy main

deb http://http.debian.net/debian wheezy-updates main
deb-src http://http.debian.net/debian wheezy-updates main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

Вот еще интересная штука

n4ela@Debian-60-squeeze-64-minimal:~$ sudo apt-get install perl-base
Reading package lists... Done
Building dependency tree
Reading state information... Done
perl-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
n4ela@Debian-60-squeeze-64-minimal:~$ sudo apt-get install  libdbi-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libdbi-perl : Depends: perlapi-5.14.2
E: Unable to correct problems, you have held broken packages.

libdbi-perl - требует perlapi, perlapi это метамакет на perl-base который уже установлен.

aptitude-create-state-bundle - http://ubuntuone.com/6OARyx4ZWEA9ZoE2SqVJYi

n4ela
() автор топика
Ответ на: комментарий от n4ela

Ну во-первых, если ваш друг хотел поставить какой-то один пакет из не стабильной ветки, то он после добавление в source.list подключения не стабильного релиза, имеенно добавления строк, а не изменения строк подключения стабильного релиза, должен был прочитать про смешивание веток в Debian и указать, что он хочет ставить из не стабильной ветки только postgresql.

Теперь у вас два пути, посмотреть логи apt (dpkg) на предмет установленных / обновлённых пакетов из не стабильного релиза, их удаление (установка версий из стабильного релиза).

Далее оставляете в source.list записи только о стабильном релизе, делаете 'apt-get update' или 'aptitude update', после чего заново 'apt-get dist-upgrade' или 'aptitude dist-upgrade' .

Можете почитать ещё вот это: http://habrahabr.ru/post/59242/

Ну и самый действенный способ, обратиться к тех поддержке и попросить развернуть backup или вообще заново чистую систему, раз это всё у вас для развлечения.

kostik87 ★★★★★
()

Можно попробовать

apt-get install -f
Но будет запущена либо доустановка пакетов, либо удаление тех, что имеют неудовлетворённые зависимости, ничего сверхъестественного.

Winnerer
()

...у моей подруги с ее парнем...

int13h ★★★★★
()
Ответ на: комментарий от n4ela

Ну вот видно, что у вас был Squeeze раньше? Вы прямо с oldstable на sid обновллись? Ладно. Пробуй тогда то, что я написал в послденем абзаце. Напоминаю, что удалять аккуратно. Если боишься, то не удаляй, а перемести куда-то временно. Расскажи, что получилось.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Вообщем, из того что соеветали ни чего не помогло, даже то что писали на хабре.
В результате я вывел все пакеты в системе. Потом вывел для всех пакетов apt-cache policy и те пакеты у которых версия была больше чем в репозиториях переустановил через apt-get install package=version (всего порядка 300 пакетов). И все заработало.

n4ela
() автор топика
Ответ на: комментарий от n4ela

Просто совершенно непонятно, что у вас произошло. Но я предполагаю следующее. Кто-то из вас попытался обновиться из wheezy до jessie, а потом «что-то пошло не так» и он назад репозитории поменял, а назад в wheezy оно уже не вернулось, потому что это даунгрейд. Об этом говорит то, что debian_version у вас стало jessie/sid, а репозитории все wheezy. Такого быть просто не может. Но ты не описал, что же все-таки прозошло у вас. Левая рука не знает, что делает правая. :)

Даунгрейд пакетов сделать можно, если дать необходимые приоритеты репозиториям. Для справок man apt_preferences.

Вот, например:

http://ispire.me/downgrade-from-debian-sid-to-stable-from-jessie-to-wheezy/

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.