Apple Silicon 芯片 Mac 在 x86_64 模式下启动 Kettle
苹果于 2020 年推出了自家设计的基于 ARM 架构的 M1 芯片,在日常生活的大部分使用过程中,M1 的体验很好。然而,依然存在一小部分软件无法兼容 ARM 架构,需要我们模拟 x86 的架构来运行。
其中一个例子是 Kettle(又称 PDI)。笔者当年使用 Kettle 时无法直接双击打开,为了打开 Kettle,我们需要进入 x86 模式的终端,然后再在 x86 终端中输入命令打开 x86 版本的 Kettle。
截至 2022.10.13,Pentaho 9.3 尚不支持 AArch64 架构,必须在 x86_64 模式的终端中运行,并且依赖 x86_64 的 Java 11 运行环境。
现在已经很久没用过 Kettle 了,不过当时为了打开 Kettle 还是费了不少事,所以今天想起来特此记录一下。
打开 x86 模式的终端
首先我们要打开一个运行在 x86 模式下的终端。如何做呢?使用下面这条命令即可打开一个 x86 模式的终端:
env /usr/bin/arch -x86_64 /bin/zsh --login
命令各部分的解释:
env: 用于在重建后的环境中运行命令。/usr/bin/arch -x86_64: 这部分调用arch命令(通常是由 Rosetta 2 提供,在一些如苹果的 M1/M2 芯片的 ARM 架构计算机上用于模拟 x86_64 架构的环境),并指定使用-x86_64选项,最终目的是模拟一个 x86_64 架构的环境。/bin/zsh: 这是 Zsh shell 的路径。Zsh 是一个常用的命令行解释器。--login: 这是传递给 Zsh 的参数,指示它启动一个登录 shell。
因此,当你运行这条命令时,它会在模拟的 x86_64 环境中启动一个新的 Zsh 登录 shell。
设置终端描述文件方便下次使用(可选)
为了我们每次启动 x86 终端时不用再输入这条命令,我们可以为终端创建一个描述文件,专门用来打开 x86 终端。
打开终端,按下 ⌘ + , 打开设置,转到“描述文件”标签页,在窗口的左下角点击 + 号创建一个新描述文件。
在新描述文件的设置窗口中,转到“Shell”标签页,勾选“运行命令”复选框,并在命令栏中将我们的命令 env /usr/bin/arch -x86_64 /bin/zsh --login 输入进去。
之后,你可以为你的描述文件设置一个新的名字,比如 x86 终端,我这里设置成了 Rosetta Shell。
设置完成的效果如图:

下次你要打开 x86 终端的时候,直接选择启动你的描述文件就可以打开一个运行在 x86 模式下的终端了。或者,如果你经常要使用 x86 终端的话,你可以将你的描述文件设为默认(点击左下角的“默认”按钮)。
安装 x86 版本的 Homebrew
为了下载到 x86 版本的 Kettle,我们首先需要一个 x86 版本的 Homebrew,这样一会儿使用 brew 命令下载到的 Kettle 才是 x86 版本的。
在 x86 终端中运行 Homebrew 安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
由于国内的网络原因,下载 Homebrew 的速度可能较慢。对于还没有实现高速科技上网的同学,这里提供一个网站 Homebrew 中文网,可以按照这个网站提供的链接快速安装 Homebrew。
️ 注意,有些同学可能已经安装过 ARM 架构的 Homebrew 了。为了让两种 Homebrew 共存,你还需要在你的 ~/.zshrc 文件中添加如下命令:
# 如果运行在转译模式下,将 x86 架构 Homebrew 的路径添加到环境变量 PATH
if [ "$(sysctl -n sysctl.proc_translated)" = "1" ]; then
PATH="/usr/local/homebrew/bin:/usr/local/homebrew/sbin:$PATH"
fi
安装完成之后,使用下面的命令验证你是否正在使用 x86 架构的 Homebrew(你可能需要启动一个新的 x86 终端):
which brew
如果命令的输出是 /usr/local/homebrew/bin/brew,则说明你的 Homebrew 是 x86 架构的。如果输出是 /opt/homebrew/bin/brew,则说明你的 Homebrew 是 ARM 架构的。
安装 x86 版本的 Kettle
确定当前使用的是 x86 架构的 Homebrew后,使用下面的命令安装 x86 架构的 Kettle:
brew install kettle
安装完成之后,为了方便使用,我们可以在 ~/.zshrc 中添加如下命令:
alias kettle='export JAVA_HOME="$(/usr/libexec/java_home -v 11)" && PATH="${JAVA_HOME}/bin:$PATH" && env /usr/bin/arch -x86_64 /bin/sh /usr/local/homebrew/Cellar/kettle/9.3.0.0-428/libexec/spoon.sh'
Kettle 的版本号
9.3.0.0-428需要你根据自己的情况修改。你可以通过命令brew info kettle查看自己安装的 Kettle 的版本号。
解释一下这条命令:
这里设置了一个别名 kettle,别名的作用就是把一长串命令用一个短的名字替代,下次我们想执行这条命令时只需键入这条短的名字就可以了。
接下来看别名的组成部分:
export JAVA_HOME="$(/usr/libexec/java_home -v 11)" && PATH="${JAVA_HOME}/bin:$PATH" && env /usr/bin/arch -x86_64 /bin/sh /usr/local/homebrew/Cellar/kettle/9.3.0.0-428/libexec/spoon.sh
首先设置了一个环境变量 JAVA_HOME,并把 JAVA_HOME 添加到环境变量 PATH 中。
这里的 JAVA_HOME 使用了 Java 11 的根目录$(/usr/libexec/java_home -v 11)。因为 Kettle 是基于 Java 的,而 Kettle 9.3 兼容最好的 Java 版本是 Java 11。如果你还没有安装 Java 11 的话,在 x86 终端中运行 brew install openjdk@11。
接下来,使用了类似前面的命令 env /usr/bin/arch -x86_64 /bin/sh 在 x86 模式下打开 sh,并使用 sh 启动 Spoon /usr/local/homebrew/Cellar/kettle/9.3.0.0-428/libexec/spoon.sh
安装 JDK 11
笔者当时安装 Kettle 时的最新版是 9.3,该版本的 Kettle 支持的 Java 版本为 Java 11。因此我们要安装一个 JDK 11。由于我们的 JDK 是要为 x86 版本的 Kettle 服务的,因此我们也要安装 x86 版本的 JDK。
确保你在 x86 模式的终端,然后运行:
brew install openjdk@11
启动 Kettle
现在,如果你想打开 Kettle,只需在终端输入 kettle 即可(不用打开 x86 终端):
kettle
参考:
Apple Silicon 芯片 Mac 在 x86_64 模式下启动 Kettle的更多相关文章
- IDEA Debug模式下启动慢的解决办法
工程没有做什么大的改动,近期Idea在debug模式下启动耗时800s +,run模式下200s.Idea debug模式启动的时候会有这样的提示: 方法断点会戏剧性的降低debug的速度.当时并没有 ...
- eclipse的debug模式下启动不了tomcat
使用eclipse启动tomcat,正常模式下可以启动tomcat,却在debug模式下无法启动tomcat. 这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动to ...
- Mac上深色模式下的精美炫酷软件
针对发布的 macOS Mojave 10.14 系统中,最大的改变就是引入了深色模式,尤其对技术开发人员来说非常实用,非常的酷! 深色模式使用一种较深的配色方案,这种配色作用于整个系统,包括 Mac ...
- IDEA 在debug模式下启动慢或者无法启动解决
参考:https://www.cnblogs.com/han-1034683568/p/8603588.html 背景 这两天在开发项目的时候发现用debug模式启动项目的时候,项目启动速度非常慢甚至 ...
- intelliJ idea debug模式下启动慢的原因
今天在idea上以debug方式启动项目的时候,特别慢,启动半天启动不起来,一直以为是数据库连接的原因,但重启mysql服务后也不好使,特别郁闷... 最后发现原来是之前调试的时候加的断点还在,导致启 ...
- IDEA debugger模式下启动慢
很可能是因为代码里面有端点造成的. 点击如下图的重叠红点,找到对应端点点掉就可以了.
- spark yarn cluster模式下任务提交和计算流程分析
spark可以运行在standalone,yarn,mesos等多种模式下,当前我们用的最普遍的是yarn模式,在yarn模式下又分为client和cluster.本文接下来将分析yarn clust ...
- 在 Apple Silicon Mac 上 DFU 模式恢复 macOS 固件
DFU 模式全新安装 macOS Big Sur 或 macOS Monterey 请访问原文链接:https://sysin.org/blog/apple-silicon-mac-dfu/,查看最新 ...
- 无意苦争春,一任群芳妒!M1 Mac book(Apple Silicon)能否支撑全栈工程师的日常?(Python3/虚拟机/Docker/Redis)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_187 就像大航海时代里突然诞生的航空母舰一样,苹果把玩着手心里远超时代的M1芯片,微笑着对Intel说:"不好意思,虽然 ...
- 如何在Apple Silicon Mac上主动安装Rosetta2
前提是您的电脑搭载了Apple Silicon处理器 command + space(空格),输入"终端",打开. 输入 : softwareupdate --install-ro ...
随机推荐
- 为ssh服务器添加2fa认证,一个python脚本全搞定
服务器ssh如果被别人登陆就是一场灾难,所以我研究了ssh认证,我发现Google Authenticator PAM可以实现ssh的2fa认证,但是安装和配置比较麻烦.因此我用python实现了ss ...
- Centos 7 永久关闭防火墙
查看防火墙状态 systemctl status firewalld 出现:Active: inactive (dead),代表防火墙已关闭 临时关闭防火墙 重启后,防火墙会重新开启 systemct ...
- 洛谷P1004
洛谷P1004方格取数 题目大意 本题简要意思就是一个人从一个数字矩阵的左上角走到右下角,只能向下和向右走,拿完的数对应位置变成0,并且这个人要走两次,需要计算两次所拿数的最大值 Train of t ...
- 2 - 【RocketMQ 系列】CentOS 7.6 安装部署RocketMQ
二.开始安装部署RocketMQ 官方网站:https://rocketmq.apache.org/ 各版本要求: 1.版本选取 下载地址: https://github.com/apache/roc ...
- yearrecord——一个类似痕迹墙的React数据展示组件
介绍一下自己做的一个类似于力扣个人主页提交记录和GitHub主页贡献记录的React组件. 下图分别是力扣个人主页提交记录和GitHub个人主页的贡献记录,像这样类似痕迹墙的形式可以比较直观且高效得展 ...
- PHP 程序员为什么依然是外包公司的香饽饽?
大家好,我是码农先森. PHP 唯一的爽点就是开发起来「哇真快」这刚好和外包公司的需求相契合,在 Web 领域的芒荒年代 PHP 以王者姿态傲视群雄.如果 PHP 敢说第二,就没有哪门子语言敢称第一, ...
- JavaScript小面试~节流
节流,当用户发出多次请求时,需要对事件进行限制,不要让事件过多触发.场景:在用户浏览页面的时候,用户拼命滚动屏幕时,控制页面滚动的事件会多次触发,会导致网络阻塞或者出现渲染差.此时需要对其进行约束.无 ...
- Django model 层之事务管理总结
Django model 层之事务管理总结 by:授客 QQ:1033553122 实践环境 Python版本:python-3.4.0.amd64 下载地址:https://www.python.o ...
- 《Programming from the Ground Up》阅读笔记:p75-p87
<Programming from the Ground Up>学习第4天,p75-p87总结,总计13页. 一.技术总结 1.persistent data p75, Data whic ...
- 关于visual studio的一个bug
本人初学链表,如有错误多多包涵 快马加鞭,这期只写一个问题.我好像在vs里面发现了一个bug 不管是vs2022还是vs2010都无法正常运行.关于cin.string.链表的问题 #include& ...