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 ...
随机推荐
- 快速调用 GLM-4-9B-Chat 语言模型
一.确认本机显卡配置 二.下载大模型 国内可以从魔搭社区下载, 下载地址:https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat/files 三.运行官方 ...
- 实测分享,瑞芯微RK3588八核国产处理器性能测评!确实“遥遥领先”!
RK3588处理器优势 RK3588是瑞芯微最新一代旗舰工业处理器,它具有如下卓越优势: 超强运算能力:四核ARM Cortex-A76@2.4GHz + 四核ARM Cortex-A55@1.8GH ...
- 【规范】Git分支管理,看看我司是咋整的
前言 缘由 Git分支管理好,走到哪里都是宝 事情起因: 最近翻看博客中小伙伴评论时,发现文章[规范]看看人家Git提交描述,那叫一个规矩一条回复: 本狗亲测在我司中使用规范的好处,遂把我司的Git分 ...
- 全新发布!桌面端效率工具RunFlow
RunFlow是一款跨平台的生产力工具,可以启动应用程序和搜索文件等,类似于Windows平台的Wox和PowerToys,同样也类似于Mac平台的Alfred和Raycast.但我们并不与这些工具相 ...
- 4. 系统I/O
系统 I/O 示例代码: #include <iostream> // 标准库头文件 // #include "myheader.h" // 自己写的头文件 void ...
- 免费CDN使用整理
免费CDN使用整理 最近在使用web优化的时候,需要用到cdn,遇到了一些问题,比如某些cdn在特定的条件下访问不同,整理一波免费的CDN,任君采撷 名称 国家 链接 测速 特色 UNPKG 国外 h ...
- leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]
目录 168. Excel表列名称 171. Excel 表列序号 190. 颠倒二进制位 205. 同构字符串 228. 汇总区间 448. 找到所有数组中消失的数字 461. 汉明距离 876. ...
- [MRCTF2020]Ezpop(反序列化)
打开题目即可得源码 Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ct ...
- 从30个角度对比 PostgreSQL 和 MySQL
比较版本:PostgreSQL 11 VS MySQL5.7(innodb引擎) Oracle官方社区版 版权情况:PostgreSQL 11(免费开源).MySQL5.7 Oracl ...
- 【Tutorial C】01 概述
历史 History 欢迎来到C语言的世界!C语言是一种强大的专业化编程语言,深受业余和专业编程人员的欢迎. 在学习之前先让我们了解和认识它! C语言的原型是A语言(ALGOL 60语言). 1963 ...