LINUX.ORG.RU

debian, проблема с обновлением

 , ,


0

1

Debian 6.0.1
полез вчера обновить bash. новая версия оказалась только в lts репозитории. добавил в /etc/apt/sources.list

# squeeze-lts

deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

но при попытке обновить bash запросилась еще кучка пакетов к обновлению, согласился. в результате обновление не выполнилось не помню с какой ошибкой ((
на данный момент проблема следующая - при попытке установки любого пакеты получаю ошибку про зависимости:

# apt-get install bash
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.12) but 2.19-11 is to be installed
 libc6-dev : Depends: libc6 (= 2.11.2-10) but 2.19-11 is to be installed
 libgcj-bc : Depends: libgcj-common (>= 1:4.8.3-6) but 1:4.4.5-1 is to be installed
 libgcj15 : Depends: gcc-4.9-base (>= 4.9) but it is not going to be installed
            Recommends: gcj-4.9-jre-lib (>= 4.9) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

при запуске apt-get -f install всё заканчивается на первом же пакете с ошибкой:

dpkg: error processing /var/cache/apt/archives/libgcj-common_1%3a4.8.3-6_all.deb (--unpack):
 parse error, in file '/var/lib/dpkg/tmp.ci/control' near line 7 package 'libgcj-common':
 `Depends' field, invalid package name `python:any': character `:' not allowed (only letters, digits and characters `-+._')
configured to not write apport reports
                                      Errors were encountered while processing:
 /var/cache/apt/archives/libgcj-common_1%3a4.8.3-6_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

подскажите как решить проблему. Спасибо.


invalid package name `python:any': character `:' not allowed

вангую, что в первую очередь сделовало обновить dpkg

попробуй ручками скачать и распаковать, потом с помощью dpkg (если apt-get -f install сразу не сработает) установить свежие apt и прочее

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 1)

6.0.1

Вангую, что надо было full upgrade делать.

Deleted ()
Ответ на: комментарий от MyTrooName

спасибо.
подскажите, а распаковать это:

dpkg -i dpkg-dev_1.17.13_all.deb

я правильно понимаю?

ice-9 ()

libgcj-common_1%3a4.8.3-6_all.deb

Дядя, это пакет из sid'а. Чего-то вы нам про свой sources.list недоговариваете. А вообще, ошибка в том, что multiarch появилась только в wheezy, а ты (ладно, не совсем ты, по зависимостям прилетело) пытаешься установить multiarch-пакет до обновления dpkg.

redgremlin ★★★★★ ()
Ответ на: комментарий от ice-9

если сработает, то да

только надо не (только) dpkg-dev, а просто dpkg

если не сработает, то .deb - это дважды вложенный архив. нужно вытащить оттуда data.tar.gz:

$ ar x dpkg...deb
$ ls
control.tar.gz
data.tar.gz 
$ sudo tar xvzpf data.tar.gz -C /

ну и конечно, файлы сперва забекапить не помешает

MyTrooName ★★★★★ ()
Ответ на: комментарий от MyTrooName
# cat /etc/apt/sources.list 
# main sources

deb http://debian.intergenia.de/debian/ squeeze main contrib non-free
deb-src http://debian.intergenia.de/debian/ squeeze main contrib non-free

# security

deb http://debian.intergenia.de/debian-security/ squeeze/updates main contrib non-free
deb-src http://debian.intergenia.de/debian-security/ squeeze/updates main contrib non-free

# squeeze-lts

deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

ice-9 ()
Ответ на: комментарий от ice-9

dpkg-dev_1.17.13_all.deb

И это сидовский пакет. И в /etc/apt/sources.list.d пусто?

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

И в /etc/apt/sources.list.d пусто?

# ls -l /etc/apt/sources.list.d
total 8
-rw-r--r-- 1 root root  46 Apr  1  2012 sid.list
-rw-r--r-- 1 root root 118 Nov 12  2013 zabbix.list

# cat /etc/apt/sources.list.d/sid.list 
deb http://ftp.us.debian.org/debian/ sid main
# cat /etc/apt/sources.list.d/zabbix.list 
deb http://repo.zabbix.com/zabbix/2.2/debian wheezy main
deb-src http://repo.zabbix.com/zabbix/2.2/debian wheezy main

update сделал перед обновлением?

apt-get update? делал.

ice-9 ()
Ответ на: комментарий от ice-9

deb http://ftp.us.debian.org/debian/ sid main

Я знал, что чудес не бывает. Теперь либо переходи на сид (распаковать пакет dpkg, вытащить оттуда бинарник dpkg, потом ./dpkg -i dpkg<>.deb и далее уже штатно — apt-get -f install, apt-get dist-upgrade) либо откатывать прилетевшее из сида (гугл в помощь, я никогда этим не занимался).

redgremlin ★★★★★ ()

Почисти кеш в apt, удали это libgcj-common и поменяй эти строки

deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free


на те, что без lts. Сделай апдейт + апгрейд фулл.

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

Почисти кеш в apt, удали это libgcj-common

# apt-get clean
# apt-get remove libgcj-common
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:
 dpkg-dev : Depends: libdpkg-perl (= 1.17.13) but 1.15.8.12 is to be installed
 libc-dev-bin : Depends: libc6 (< 2.12) but 2.19-11 is to be installed
 libc6-dev : Depends: libc6 (= 2.11.2-10) but 2.19-11 is to be installed
 libgcj-bc : Depends: libgcj-common (>= 1:4.8.3-6) but it is not going to be installed
 libgcj10 : Depends: libgcj-common (>= 1:4.1.1-21) but it is not going to be installed
            Recommends: gcj-4.4-jre-lib (>= 4.4.4-17) but it is not going to be installed
 libgcj15 : Depends: gcc-4.9-base (>= 4.9) but it is not installable
            Depends: libgcj-common (>= 1:4.1.1-21) but it is not going to be installed
            Recommends: gcj-4.9-jre-lib (>= 4.9) but it is not installable
 libjaxp1.3-java-gcj : Depends: libgcj-common (> 1:4.1.1-13) but it is not going to be installed
 libxerces2-java-gcj : Depends: libgcj-common (> 1:4.1.1-13) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).



я тут еще вот что обнаружил:

ii  dpkg                                 1.15.8.12                      Debian package management system
iU  dpkg-dev                             1.17.13                        Debian package development tools
ii  libdpkg-perl                         1.15.8.12                      Dpkg perl modules

я так понимаю dpkg-dev поставился из sid. я правильно понимаю, чтобы пакеты unstable не ставились надо закоменить

deb http://ftp.us.debian.org/debian/ sid main

и после этого как-то могу даунгрейднуть dpkg-dev на версию 1.15?

ice-9 ()
Ответ на: комментарий от ice-9

Попробуй встроенную решалку aptitude — выбрать для установки версию 2.11.2 libc и из предлагаемых вариантов выбрать такой, при котором предложит заменить все новые версии старыми.

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

спасибо! вы имеете ввиду «apt-get install package=version»? как раз в этом направлении копаю. я вытащил из dpkg.log список пакетов которые были обновлены, не подскажете в каком порядке лучше пробовать откатывать? например, что первым даунгрейдить dpkg-dev или libc6? или какой-то другой из списка?

2014-10-01 08:47:23 upgrade dpkg-dev 1.15.8.12 1.17.13
2014-09-30 14:50:11 upgrade bash 4.1-3 4.2+dfsg-0.1
2014-09-30 18:53:06 upgrade python-support 1.0.10 1.0.15
2014-09-30 18:53:11 upgrade locales 2.11.2-10 2.19-11
2014-09-30 18:53:24 upgrade libc6 2.11.2-10 2.19-11
2014-09-30 18:54:19 upgrade libexpat1-dev 2.0.1-7 2.1.0-6
2014-09-30 18:54:21 upgrade libexpat1 2.0.1-7 2.1.0-6
2014-09-30 18:54:27 upgrade python 2.6.6-3+squeeze6 2.7.8-1
2014-09-30 18:54:33 upgrade python-minimal 2.6.6-3+squeeze6 2.7.8-1
2014-09-30 18:54:34 upgrade mercurial 1.6.4-1 3.1.1-1
2014-09-30 18:54:45 upgrade mercurial-common 1.6.4-1 3.1.1-1
2014-09-30 19:08:52 upgrade libgcj-bc 4.4.5-1 4.9.1-4
2014-09-30 20:12:23 upgrade mime-support 3.48-1 3.56
2014-09-30 20:12:23 upgrade bzip2 1.0.5-6 1.0.6-7
2014-09-30 20:12:26 upgrade libbz2-1.0 1.0.5-6 1.0.6-7
2014-10-01 05:38:13 upgrade mime-support 3.48-1 3.56
2014-10-01 05:38:13 upgrade libtinfo5 5.9-6 5.9+20140913-1

ice-9 ()
Ответ на: комментарий от ice-9

вы имеете ввиду «apt-get install package=version»?

Я имею ввиду делать это в aptitude в графическом режиме. Там есть встроенная решалка конфликтов, где можно выбирать один из нескольких способов решения конфликтов зависимостей. Тебе нужен тот способ, который вернёт старые версии.

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

да это всё как бы по ssh на удаленном сервере происходит %)

ice-9 ()
Ответ на: комментарий от ice-9

aptitude на псевдографике же и прекрасно работает и по ssh.

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

спасибо огромное, redgremlin! всё получилось через aptitude.

ice-9 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.