apt-cache show
показывает различные версии пакета
# apt-cache show libc6:i386
Package: libc6
Version: 2.17-97
Architecture: i386
...
Package: libc6
Status: install ok installed
Version: 2.17-7
Architecture: i386
Multi-Arch: same
...
Package: libc6
Version: 2.13-38
Architecture: i386
...
# apt-get show libc6:amd64
Package: libc6
Version: 2.17-97
Architecture: amd64
...
Package: libc6
Version: 2.13-38
Architecture: amd64
...
Но как сопоставить версию пакета с кодовым именем релиза, например, stable/testing/unstable?
[Заметка о проблеме XY] - что я пытаюсь сделать и что происходит:
Пытаюсь загрузить мой Debian i386 для запуска двоичных файлов amd64 (оставляя i386 в качестве основной архитектуры),
- В качестве первого шага в освоении нового мира amd64 я попробовал запустить программу,
- Не удалось найти libssl.so.1.0.0,
- Я попробовал установить libssl1.0.0:amd64,
- остановился из-за несовместимости libgcc1,
- попробовал установить libgcc1:amd64, получил ошибки о несовместимости,
- обновил систему до более новых пакетов (например,
apt-get upgrade
показывает нули), - принудительно обновленные пакеты i386, связанные с libgcc, путем установки с указанием явных версий (
apt-get install libstdc++6=4.8.2-1 gcc-4.8-base=4.8.2-1 libgcc1=1:4.8.2-1 libgfortran3=4.8.2-1 libquadmath0=4.8.2-1 libgcc-4.8-dev=4.8.2-1 libgomp1=4.8.2-1 libitm1=4.8.2-1 libatomic1=4.8.2-1 libasan0=4.8.2-1 libstdc++-4.8-dev=4.8.2-1
) - попробовал установить libgcc1:amd64, получил меньше ошибок по сравнению с предыдущим, но все равно остановился из-за отсутствия libc6:amd64,
- попытался установить libc6:amd64, но столкнулся с серьезными несовместимостями,
- обнаружил (согласно
apt-cache info
), что для «моей» версии libc6 для i386 в настоящее время не существует соответствующей версии для amd64. - Запутался в разных версиях: какая из "squeeze" (слишком старая), какая из "sid" (доступна только для ручной установки, а не для обновления). Почему нет "моей" версии библиотеки, хотя я только что полностью обновился?..
[/XY примечание к проблеме]
ОбновлятьПытался apt-cache policy
:
# apt-cache policy libc6:i386
libc6:
Installed: 2.17-7
Candidate: 2.17-7
Version table:
2.17-97 0
10 http://ftp.de.debian.org/debian/ sid/main i386 Packages
10 http://ftp.mgts.by/debian/ testing/main i386 Packages
*** 2.17-7 0
100 /var/lib/dpkg/status
2.13-38 0
900 http://ftp.mgts.by/debian/ wheezy/main i386 Packages
Похоже, моя libc6 — это что-то среднее.
решение1
Как получить кодовое имя («wheezy» или «sid») версии пакета?
Поскольку Debian — это непрерывный релиз, пакеты нигде не прикреплены sid
и не wheezy
имеют доступа к какому-либо месту, единственный способ узнать, откуда вы установили пакет, — это использовать apt-cache policy package
.
О проблеме libc6:
Если вы хотите «обновиться» с 32 до 64 бит, то это невозможно, или, что более вероятно, вы сломаете систему.
Пакет libc6
— это мать-владычица всех зависимостей. Это тот, который в конечном итоге скажет, является ли ваша система 64- или 32-битной, и изменить это нелегко. Старыйруководство по миграциибольше не будет работать, так как есть красавица под названием Multiarch.Есть еще один гидноэто слишком опаснодля пробы в производстве (т.е. на вашем домашнем ПК) и вы, вероятно, закончите с незагружаемой системой (начните плакать, если она у вас единственная) с единственным решением переустановки. Итак, вы хотите систему 64-битную до самого ядра и у вас уже установлена 32-битная? Решения:
- Использовать виртуальную машину
- Используйте LXC
- Переустановить
- Попробуй пересечь его
- Плачь, а потом переустанови
Это ваши единственные решения.
решение2
Вы пробовали использовать apt-cache madison?
eclipxe@localhost:~# apt-cache madison iceweasel
iceweasel | 25.0-1 | http://ftp.debian.org/debian/ experimental/main amd64 Packages
iceweasel | 24.1.0esr-1 | http://ftp.debian.org/debian/ unstable/main amd64 Packages
iceweasel | 17.0.9esr-1~deb7u1 | http://ftp.debian.org/debian/ testing/main amd64 Packages
eclipxe@localhost:~# apt-cache madison iceweasel | awk '{print $1,$6}'
iceweasel experimental/main
iceweasel unstable/main
iceweasel testing/main
(Я запускаю Debian Testing с нестабильным [Pin: 200] и экспериментальным [Pin: 1])
Кроме того, при установке пакетов из более поздней версии попробуйте использовать --target-release:
apt-get install -t unstable iceweasel