LinuxForum.Fans
Тема

Помогите побороть зависимости

Автор: muxaba 22 сообщений 5872 просмотров
#200574

Два года пользовался Gentoo на домашней файлопомойке, замучался компилировать и зависимости побеждать. Установил Debian - думал тут с этим вопросом проще. Как же, через неделю вылезла проблема. Не могу установить build-essential (нужен для сборки php5, ffmpeg и gpac). Выдает:

Показать
[console]apt-get install build-essential
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:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:4.4.3) but it is not going to be installed
E: Broken packages[/console]

Насколько понял, требует установить еще и g++, делаю

Показать
[console]apt-get install g++
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:
g++ : Depends: g++-4.4 (>= 4.4.5-1~) but it is not going to be installed
E: Broken packages[/console]

и тут непонятно на что жалуется. Хочет более новую версию пакета? Почему тогда не хочет его скачать и установить? И как это вылечить?
Система почти что чистая, установлено не так много пакетов. Ставил rtorrent из тестовой ветки, может это повлияло? Вот sources.list:

Показать
[console]cat /etc/apt/sources.list
#

# deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official i386 NETINST Binary-1 20111008-19:55]/ squeeze main

#deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official i386 NETINST Binary-1 20111008-19:55]/ squeeze main

deb http://mirror.yandex.ru/debian/ squeeze main
deb http://mirror.yandex.ru/debian/ testing main
deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free

deb-src http://mirror.yandex.ru/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb http://security.debian.org/ testing/updates main

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

# squeeze-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ squeeze-updates main
deb-src http://mirror.yandex.ru/debian/ squeeze-updates main

deb http://ftp.debian.org/debian/ stable main
deb http://security.debian.org/ stable/updates main[/console]

В менеджере пакетов Debian пока ориентируюсь плохо, надеюсь на вашу помощь.

#200577

А libc-dev стоит?

#200578

У Вас перемешаны тестинг и стэйбл.
Если приоритеты не установлены, то стэйбл Вам не нужен.
В репозиторий

deb http://mirror.yandex.ru/debian/ testing main

добавьте секции contrib non-free
сделайте
[console]apt-get update[/console]
а потом уже
[console]apt-get install build-essential[/console]

#200581
Zhenjka написал:
А libc-dev стоит?

Глупый вопрос, конечно, но как это проверить?

durc написал:
У Вас перемешаны тестинг и стэйбл.
Если приоритеты не установлены, то стэйбл Вам не нужен.
В репозиторий

deb http://mirror.yandex.ru/debian/ testing main

добавьте секции contrib non-free
сделайте
[console]apt-get update[/console]
а потом уже
[console]apt-get install build-essential[/console]

Приоритеты, насколько понимаю, все же заданы:

[console]cat /etc/apt/preferences
Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650
[/console]

#200585

И всё таки, попробуйте сделать как я написал выше. (Не убирая, естественно, репозиториев стэйбл)

#200589

Не помогло

Показать
[console]
cat /etc/apt/sources.list |grep non-free
deb http://mirror.yandex.ru/debian/ testing main contrib non-free

apt-get install build-essential
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:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:4.4.3) but it is not going to be installed
E: Broken packages


apt-get install g++
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:
g++ : Depends: g++-4.4 (>= 4.4.5-1~) but it is not going to be installed
E: Broken packages

[/console]
#200592

[console]apt-get update[/console]
точно делали?

#200595

Конечно, все полностью как вы сказали. Не стал копировать лишнюю информацию.
Кстати, на команду apt-get install -t testing build-essential не ругается и предлагает целую кучу установок\удалений\обновлений.

Показать
[console]apt-get install -t testing build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libgmp3c2 cpp-4.4
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
binutils cpp cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc gcc-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libc-dev-bin libc6-dev libclass-isa-perl libdb5.1 libdbd-mysql-perl libdbi-perl
libdpkg-perl libfont-freetype-perl libgcc1 libgmp10 libgomp1 liblocale-gettext-perl libmpc2 libmpfr4
libmysqlclient16 libpod-plainer-perl libquadmath0 libstdc++6-4.6-dev libswitch-perl libtext-charwidth-perl
libtext-iconv-perl libtimedate-perl libuuid-perl linux-libc-dev make manpages-dev mysql-common perl perl-base
perl-modules
Suggested packages:
binutils-doc cpp-doc gcc-4.6-locales debian-keyring g++-multilib g++-4.6-multilib gcc-4.6-doc libstdc++6-4.6-dbg
gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.6-multilib libmudflap0-4.6-dev libgcc1-dbg
libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold glibc-doc libstdc++6-4.6-doc make-doc perl-doc
libterm-readline-gnu-perl libterm-readline-perl-perl
The following NEW packages will be installed:
binutils build-essential cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc gcc-4.6 libalgorithm-diff-perl
libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin libc6-dev libclass-isa-perl libdb5.1 libdpkg-perl
libgmp10 libgomp1 libmpc2 libpod-plainer-perl libquadmath0 libstdc++6-4.6-dev libswitch-perl libtimedate-perl
linux-libc-dev make manpages-dev
The following packages will be upgraded:
cpp libdbd-mysql-perl libdbi-perl libfont-freetype-perl libgcc1 liblocale-gettext-perl libmpfr4 libmysqlclient16
libtext-charwidth-perl libtext-iconv-perl libuuid-perl mysql-common perl perl-base perl-modules
15 upgraded, 28 newly installed, 0 to remove and 416 not upgraded.
Need to get 50.0 MB of archives.
After this operation, 107 MB of additional disk space will be used.
[/console]

Как думаете, насколько эта процедура безопасна?

#200603
muxaba написал:

Как думаете, насколько эта процедура безопасна?

Смешанная система это минное поле.
А установка из стэйбла не проходит, видимо, из-за того что какие то пакеты, входящие в зависимости, уже установлены из тестинговой ветки.

#200732

Удалил пакет, который ставил из testing, попытался опять установить build-essential - все равно требует более старые версии пакетов. Выходит, придется всю систему на testing переводить? В Gentoo был вариант с установкой двух версий одного и того же пакета. В Debian такого нет?

#200736
muxaba написал:
Удалил пакет, который ставил из testing, попытался опять установить build-essential - все равно требует более старые версии пакетов.

Возможно не всё удалили.
Но можно попробовать так, откатить все пакеты до уровня stable, для этого отредактируйте файл /etc/apt/preferences следующим образом:

Package: *
Pin: release a=stable
Pin-Priority: 1001

и запустите команду "apt-get upgrade", которая вызовет принудительный откат из-за значения Pin-priority > 1000.
Потом верните старое значение Pin-Priority для stable, а для testing измените Pin-Priority: 650 на Pin-Priority: 50

(0 - 99: неавтоматические приоритеты. Они используются только в случае, если пакет не установлен и нет другой доступной версии пакета.)

#200774

Установил приоритет, сделал apt-get update. Все равно не помогает


apt-get install build-essential

Показать
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:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:4.4.3) but it is not going to be installed
E: Broken packages

apt-get install g++

Показать
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:
g++ : Depends: g++-4.4 (>= 4.4.5-1~) but it is not going to be installed
E: Broken packages

apt-get install libc6-dev

Показать
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:
libc6-dev : Depends: libc6 (= 2.11.2-10) but 2.13-21 is to be installed
Depends: libc-dev-bin (= 2.11.2-10) but it is not going to be installed
E: Broken packages

Вот тут человек решает похожую проблему при помощи multiarch-support. Установил себе этот пакет и вот что получаю:

aptitude install build-essential

Показать
The following NEW packages will be installed:
binutils{a} build-essential dpkg-dev{a} fakeroot{a} g++{a} g++-4.4{a} gcc{a} gcc-4.4{a}
libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-merge-perl{a} libc-dev-bin{ab}
libc6-dev{ab} libdpkg-perl{a} libgomp1{a} libstdc++6-4.4-dev{a} libtimedate-perl{a} linux-libc-dev{a} make{a}
manpages-dev{a}
0 packages upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.9 MB of archives. After unpacking 69.7 MB will be used.
The following packages have unmet dependencies:
libc-dev-bin: Depends: libc6 (< 2.12) but 2.13-21 is installed.
libc6-dev: Depends: libc6 (= 2.11.2-10) but 2.13-21 is installed.
The following actions will resolve these dependencies:

Keep the following packages at their current version:
1) build-essential [Not Installed]
2) g++ [Not Installed]
3) g++-4.4 [Not Installed]
4) libc-dev-bin [Not Installed]
5) libc6-dev [Not Installed]
6) libstdc++6-4.4-dev [Not Installed]

Leave the following dependencies unresolved:
7) dpkg-dev recommends build-essential
8) gcc-4.4 recommends libc6-dev (>= 2.5)
9) gcc recommends libc6-dev | libc-dev


Accept this solution? [Y/n/q/?]
#200810
muxaba написал:
Установил приоритет, сделал apt-get update. Все равно не помогает

apt-get upgrade
или
apt-get dist-upgrade

#200812
papin-aziat написал:
apt-get upgrade
или
apt-get dist-upgrade

И что это должно дать? Перевести систему из stable в testing?

#200819
text
apt-get upgrade

проверяет наличие новых пакетов

text
apt-get dist-upgrade

обновляет полностью систему.
P.S. Насчет первого могу ошибаться.

#200829

В любом случае никаких новых пакетов не устанавливается:


apt-get upgrade

Показать
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

apt-get dist-upgrade

Показать
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
#200831

muxaba, перед этим сделать то что сказал durc, и таким образом совершить даунгрейд системы в stable.

#200833
muxaba написал:
В любом случае никаких новых пакетов не устанавливается

Ну так с Вашими приоритетами так и должно быть.
Два вопроса:
первый, выполнялось ли следующее?

durc написал:
Но можно попробовать так, откатить все пакеты до уровня stable, для этого отредактируйте файл /etc/apt/preferences следующим образом:

Package: *
Pin: release a=stable
Pin-Priority: 1001

и запустите команду "apt-get upgrade", которая вызовет принудительный откат из-за значения Pin-priority > 1000.

второй, более интересный, зачем Вы прописали репозитории тестинга?
Если Вам нужна смешанная система так выполните
[console]apt-get install -t testing build-essential[/console]

#200918
durc написал:
первый, выполнялось ли следующее?

Вчера невнимательно прочитал ваш ответ и не выполнил. Сегодня все как вы сказали:

cat /etc/apt/preferences

Показать
Package: *
Pin: release a=stable
Pin-Priority: 1001

Package: *
Pin: release a=testing
Pin-Priority: 50

apt-get upgrade

Показать
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
libfreetype6 libpam-modules libpam-runtime libpam0g
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1049 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]?
durc написал:
второй, более интересный, зачем Вы прописали репозитории тестинга?
Если Вам нужна смешанная система так выполните

Устанавливал последние версии rtorrent и ffmpeg. Хотел установить именно из дерева пакетов, а не компилировать вручную. Более ранние версии не подходят.

#200929
muxaba написал:
Устанавливал последние версии

Для таких случаев тоже надо настраивать preferences, это если грамотно, или по простому, установил и выключил репы :-).

Войдите или зарегистрируйтесь, чтобы ответить.