在M1芯片Mac上编译oracle_fdw的可行解决方案
在M1 Mac上编译oracle_fdw的可行方案
方案一:用Rosetta 2模拟x86_64环境编译
- 先安装Rosetta 2,终端执行:
softwareupdate --install-rosetta - 打开x86版本的终端:右键终端图标→「获取信息」→勾选「使用Rosetta打开」
- 在这个终端里安装x86架构的Homebrew,然后下载Intel版本的Oracle Instant Client,解压后配置环境变量:
export ORACLE_HOME=/你的instantclient解压路径 export DYLD_LIBRARY_PATH=$ORACLE_HOME - 按常规步骤编译安装oracle_fdw:
依赖Rosetta的转译能力,这套流程能绕开ARM版本缺失的限制。git clone https://github.com/laurenz/oracle_fdw.git cd oracle_fdw make USE_PGXS=1 make USE_PGXS=1 install
方案二:用Docker容器运行
直接用x86_64架构的PostgreSQL镜像,M1上的Docker会自动通过Rosetta转译运行。可以:
- 拉取官方PostgreSQL镜像,进入容器后手动安装Oracle Instant Client并编译oracle_fdw;
- 找现成的已打包好oracle_fdw的PostgreSQL镜像启动使用。
这种方式不用在本地主机处理架构兼容问题,所有操作都在容器内完成。
方案三:远程使用已部署好的oracle_fdw
如果只是需要用oracle_fdw的功能,没必要非要在本地编译。找一台x86架构的服务器,部署PostgreSQL并编译安装好oracle_fdw,然后在你的M1 Mac上远程连接这台服务器使用该扩展即可,完全避开本地架构限制。
内容的提问来源于stack exchange,提问作者YosefAhab
相关产品推荐
相关产品推荐

