Переключить raspbian на 64bit

Я переключил свой raspian на 64-битный, добавив arm_64bit=1 к /boot/config.txt. Это сработало в том смысле, что ядро ​​теперь 64-битное.

Когда я хочу установить пакеты (в моем случае докер), я хочу использовать его 64-битную версию, но он устанавливает 32-битную версию. Как оказалось, менеджер пакетов по-прежнему настроен на 32-битную версию:

$ dpkg --print-architecture
armhf

Как я могу заставить менеджер пакетов устанавливать 64-битные пакеты?


person user1406177    schedule 02.02.2021    source источник
comment
Это вопрос к сисадмину, а не к программированию. Проголосовали за переход на superuser.com. Может даже лучше подойти для linux.stackexchange.com, где может быть дубликат вопросов и ответов по Debian.   -  person Peter Cordes    schedule 02.02.2021


Ответы (1)


$ 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 должно быть сделано.

person OctopuSS7    schedule 02.02.2021
comment
Хотя этот ответ может дать правильные подсказки, он смешивает arm32 и i386 (а также amd64 и arm64). Pi имеет процессор arm64. - person PMF; 05.02.2021