微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 raspbian 切换到 64 位

如何解决将 raspbian 切换到 64 位

我通过将 arm_64bit=1 添加/boot/config.txt 将我的 raspian 切换到 64 位。从这个意义上说,内核现在是 64 位的。

当我想安装软件包(在我的情况下为 docker)时,我想使用 64 位版本,但它安装了 32 位版本。事实证明,包管理器仍然设置为 32 位:

$ dpkg --print-architecture
armhf

如何让包管理器安装 64 位包?

解决方法

$ dpkg --print-architecture
i386
# dpkg --add-architecture arm64
$ dpkg --print-foreign-architectures
amd64
# apt-get update
# apt-get download gcc-4.6-base:arm64 libgcc1:arm64 libc6:arm64 \
          libselinux1:arm64 zlib1g:arm64 libbz2-1.0:arm64 dpkg:arm64
# dpkg -i gcc-4.6-base*.deb libgcc*.deb libc*.deb libselinux*.deb \
          libbz2*.deb zlib*.deb dpkg*.deb
$ dpkg --print-architecture
arm64
$ dpkg --print-foreign-architectures
i386

您的一些软件包是 amd64,但大多数仍是 i386。 apt-get upgrade 会处理一些包,apt-get -f install 会修复一些错误,但大多数包仍然是 i386。如果您想解决这个问题,请跳过棘手的部分;)

使用 dpkg --get-selections | grep :i386 将返回您仍然需要迁移的所有软件包。

我的下一个想法是:

# apt-get install `dpkg --get-selections \
  | grep i386 \
  | awk {'gsub(/:i386/,":amd64"); print $1'}`

但结果证明是个坏主意:有些包在 amd64 中不可用(例如 libc6-i686),apt-get 会混淆,并且在两个版本中都会安装很多包。 aptitude 需要做大量的手工工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。