![如何获取软件包版本的代号(“wheezy”或“sid”)?](https://linux22.com/image/1388510/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%89%88%E6%9C%AC%E7%9A%84%E4%BB%A3%E5%8F%B7%EF%BC%88%E2%80%9Cwheezy%E2%80%9D%E6%88%96%E2%80%9Csid%E2%80%9D%EF%BC%89%EF%BC%9F.png)
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 问题说明] - 我尝试做什么以及发生了什么:
尝试引导我的 i386 debian 运行 amd64 二进制文件(将 i386 保留为主要架构),
- 作为尝试新的 amd64 世界的第一步,我尝试运行一个程序,
- 找不到 libssl.so.1.0.0,
- 我尝试安装 libssl1.0.0:amd64,
- 由于 libgcc1 不兼容而停止,
- 尝试安装 libgcc1:amd64,出现不兼容错误,
- 将系统升级到较新的软件包(例如
apt-get upgrade
shows zeroes), - 通过指定明确版本安装强制升级 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
)对于“我的”i386 版本的 libc6 目前没有可用的对应 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 的美女。还有另一个指南但太危险了在生产环境中进行测试(即您的家用 PC),并且您最终可能会遇到无法启动的系统(如果这是您的唯一系统,请开始哭泣),唯一的解决方案是重新安装。那么,您想要一个 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
(我正在使用不稳定版本 [Pin:200] 和实验版本 [Pin:1] 运行 Debian 测试)
此外,当您从更高版本安装软件包时,请尝试使用--target-release:
apt-get install -t unstable iceweasel