标签: apple-silicon

在 M1 Mac 上本地运行 Kubernetes

我想看看目前是否可以在 2020 M1 MacBook air 上本地运行 Kubernetes。

我需要的环境比较简单,只是为了看一些教程。举个例子,这个操作符-sdk 指南

到目前为止,我已经尝试过microk8sminikube,因为它们是我之前在其他机器上使用过的工具。

对于这两个,我brew在打开终端应用程序“with Rosetta 2”(即像这样)后安装了它们。我的进度是:

Minikube

当我运行时minikube start --driver=docker(已经安装了Docker Desktop for M1技术预览版),出现初始化错误。在我看来,这里正在跟踪https://github.com/kubernetes/minikube/issues/9224

Microk8s

microk8s install要求安装multipass,然后出现错误An error occurred with the instance when trying to start with 'multipass': returned exit code 2. Ensure that 'multipass' is setup correctly and try again.。Multipass 显示microk8s-vm卡在启动中。我认为这可能与这个问题有关https://github.com/canonical/multipass/issues/1857

我知道我可能会更好地追查这些问题以寻求有关这些特定错误的帮助。如果目前可以/建议设置基本的 Kubernetes 环境以在 M1 mac …

kubernetes minikube microk8s apple-silicon

12
推荐指数
1
解决办法
2万
查看次数

Xcode 错误“为 iOS 模拟器构建,但链接到为 iOS 构建的 dylib .. 来自 Apple Silicon M1 Mac 的架构 arm64”

我有一个应用程序,它可以在旧 Mac 上在物理设备和 iOS 模拟器中使用 Intel 处理器编译并运行良好。

同一个应用程序也可以在带有 M1 处理器的较新 Apple Silicon Mac 和物理 iPhone 设备上编译并运行良好,但是,它拒绝为 iOS 模拟器编译。

如果没有模拟器支持,调试周转时间会变得很长,所以我试图解决这个问题。更不用说 Xcode 预览功能也不起作用,这很烦人。

我在没有进行任何更改(但从 Intel Mac 移至 M1 Mac)的情况下遇到的第一个错误如下所示。

building for iOS Simulator, but linking in dylib built for iOS, file '/Users/andy/workspace/app/Pods/GoogleWebRTC/Frameworks/frameworks/WebRTC.framework/WebRTC' for architecture arm64

我使用的 Cocoapods 库是 GoogleWebRTC,根据它的文档,应该支持 arm64,所以我很困惑为什么会抛出上述错误。正如我之前所说,它在我认为在 arm64 上运行的真实设备中编译得很好。

根据文档..

这个 pod 包含二进制形式的 WebRTC iOS SDK。它是一个包含 armv7、arm64 和 x86_64 切片的动态库。不支持位码。我们当前提供的 API 仅适用于 Objective C。

我在网上搜索,似乎有两种解决方法可以解决此问题。

  1. 第一个是通过添加arm64Excluded Architectures
  2. 第二个选项是标记Build Active …

xcode cocoa-touch ios apple-silicon

12
推荐指数
2
解决办法
4006
查看次数

是否有选项可以使用终端为特定应用程序切换“使用 Rosetta 打开”值?

我真的厌倦了为 Xcode 手动检查此选项,由于它的大小,我无法复制该选项...也许有一种方法可以创建某种快捷方式来启动应用程序(在我的情况下为 Xcode),其具体值为“使用Rosetta 打开”?

注意:此问题仅与 Apple Silicon Mac 相关。

Finder 中的“使用 Rosetta 打开”选项示例: 在此输入图像描述

macos xcode macos-big-sur apple-silicon apple-m1

12
推荐指数
1
解决办法
2万
查看次数

无法在 Apple Silicon 上安装 lightgbm==3.3.3

这里是 的完整日志pip3 install lightgbm==3.3.3

\n
me % pip3 install lightgbm==3.3.3\nCollecting lightgbm==3.3.3\n  Using cached lightgbm-3.3.3.tar.gz (1.5 MB)\n  Preparing metadata (setup.py) ... done\nRequirement already satisfied: wheel in /opt/homebrew/lib/python3.10/site-packages (from lightgbm==3.3.3) (0.37.1)\nCollecting numpy\n  Using cached numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl (13.4 MB)\nCollecting scipy\n  Using cached scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl (28.5 MB)\nCollecting scikit-learn!=0.22.0\n  Downloading scikit_learn-1.1.3-cp310-cp310-macosx_12_0_arm64.whl (7.7 MB)\n     \xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81\xe2\x94\x81 7.7/7.7 MB 4.7 MB/s eta 0:00:00\nCollecting threadpoolctl>=2.0.0\n  Downloading threadpoolctl-3.1.0-py3-none-any.whl (14 kB)\nCollecting joblib>=1.0.0\n  Using cached joblib-1.2.0-py3-none-any.whl (297 kB)\nBuilding wheels for collected packages: lightgbm\n  Building wheel for lightgbm (setup.py) ... error\n  error: subprocess-exited-with-error\n …
Run Code Online (Sandbox Code Playgroud)

python numpy pip apple-silicon

12
推荐指数
1
解决办法
1万
查看次数

为什么除非我删除以前的可执行文件,否则我使用 x86_64 构建系统构建的本机 arm64 应用程序无法进行代码签名?

我有一个简单的 C 应用程序:

#include <stdio.h>

int main() {
  printf("Hello, world!\n");
}
Run Code Online (Sandbox Code Playgroud)

当我:

  1. 在 Apple Silicon 设备上构建它
  2. 瞄准 arm64
  3. 使用为 x86_64 编译的构建系统
  4. 替换现有的二进制文件(例如在重建期间)

最终的二进制文件无法执行,并根据 shell 报告为“已终止”:

% rm hello

# arch simulates the build system which is still compiled for x86_64
% arch -x86_64 cc -arch arm64 hello.c -o hello

% ./hello
Hello, world!

% arch -x86_64 cc -arch arm64 hello.c -o hello

% ./hello
zsh: killed     ./hello
Run Code Online (Sandbox Code Playgroud)

如果我的构建系统是原生 arm64(或 arm64e),那么没有问题:

% rm hello

% arch -arm64e cc -arch arm64 hello.c …
Run Code Online (Sandbox Code Playgroud)

macos native apple-silicon

11
推荐指数
0
解决办法
1010
查看次数

Apple Silicon 上的 ARCHFLAGS 值正确吗?

在我以前的基于 Intel 的 Mac 上,我曾经包含

export ARCHFLAGS="-arch x86_64"
Run Code Online (Sandbox Code Playgroud)

在我的 shell 资源文件中。新的基于 ARM 的 Apple 芯片上的正确编译标志是什么?armarm64arm-64arm_64?似乎还没有很多资源,非常感谢任何指点!

macos shell apple-silicon

11
推荐指数
1
解决办法
4801
查看次数

iOS 模拟器无法正确滚动(M1 + React Native 项目)

在 M1 MacBook Pro 的模拟器上运行我的 React Native 项目。ScrollViews 在模拟器中不能正确滚动。Big Sur 和 M1 的这个设置只有一个问题。适用于其他计算机和真实设备。

当我滑动时,视图会滚动,但它需要很大的“力”,并且视图在我滚动时似乎滞后。此外,它会在我松开按钮时立即停止(不会按预期继续滚动)。

还有其他人遇到这个问题吗?

设置:

  • M1 mac
  • 罗塞塔航站楼
  • Xcode 12.2、CoreSimulator 732.18.0.2(iPhone 11、iOS 14.0)
  • 反应本机 0.63.2

ios react-native apple-silicon

11
推荐指数
1
解决办法
1617
查看次数

Ansible 上的“ansible_architecture”和“ansible_machine”有什么区别?

我正在尝试使用Ansiblefacts来查找机器的架构。

\n

我们可以通过运行命令来收集有关机器的信息ansible -m setup <host-name>,如文档中所述:发现变量:事实和魔术变量 \xe2\x80\x94 Ansible 文档

\n

但看起来 和ansible_architectureansible_machine相同的值。我不确定它们之间的区别。上述文档中的示例显示了以下两个具有相同值的值:

\n
    "ansible_architecture": "x86_64",\n    "ansible_machine": "x86_64",\n
Run Code Online (Sandbox Code Playgroud)\n

在我的 M1 MacBook 上,结果是这样的:

\n
shuuji3@momo mac-dev-playbook\n> ansible -m setup localhost | egrep \'_architecture|_machine\'\n        "ansible_architecture": "arm64",\n        "ansible_machine": "arm64",\n
Run Code Online (Sandbox Code Playgroud)\n

我们可以互换使用这些值吗?或者在另一种情况下它们可以有其他值吗?

\n

macos ansible ansible-facts apple-silicon

11
推荐指数
1
解决办法
7238
查看次数

在 Apple 芯片上构建 ARM64e

我正在构建我的命令行应用程序,并注意到我创建的所有二进制文件都是类型arm64

但是,macOS 11.4 附带的所有 bin 都是arm64e.

file即在 M1 MacBook 上构建的应用程序上运行显示:

Mach-O 64-bit executable arm64

xxd然而,在同一台计算机上的系统应用程序上运行文件显示:

Mach-O 64-bit executable arm64e

我查看了 Xcode,但看不到如何增强此功能,难道 Xcode 不应该构建吗arm64e?如果是这样我怎样才能达到同样的目的?

这是一张图片: 在此输入图像描述

编辑:我认为答案可能是,arm64e ABI 不稳定,除了 Apple 之外没有人使用?

macos xcode swift apple-silicon apple-m1

11
推荐指数
1
解决办法
4313
查看次数

如何确定 Docker 容器(在 M1 MacBook 上)何时通过 qemu 运行?

已经提到,当在 M1 Mac 上使用 x86_64 Docker 镜像时,当没有可用的 ARM64 镜像时,该容器将在qemu仿真下启动以实现兼容性。(以性能为代价。)

很多时候,当我运行一组容器(以及针对该批次的集成测试)时,我会看到qemu-system-aarch64一些核心。

我的问题:对于给定的运行容器列表(即docker ps),我如何确定哪些是本机运行的,哪些是被模拟的?

macos qemu docker apple-silicon

10
推荐指数
1
解决办法
1121
查看次数