R在Mac OS X系统下.pkg安装包生成方法及脚本位置咨询
CRAN macOS R .pkg 构建细节:源脚本位置与复现方法
一、源脚本的位置
CRAN用来构建macOS R安装包的核心脚本,其实就在R的官方源码仓库里,具体路径是R源码根目录下的src/tools/macosx文件夹。
这里面包含了一系列关键文件:
build-R.sh:这是主构建脚本,负责调用pkgbuild、productbuild等工具完成打包流程pkg-preamble、pkg-postamble:定义了pkg安装包的前置/后置脚本逻辑- 还有像
Info.plist.in这类配置模板文件,用来生成安装包的元信息
这些脚本完全公开,你下载对应版本的R源码后就能直接查看细节。
二、模拟复现构建流程的步骤
如果你想自己复现这个打包过程,可以按照以下步骤来做:
1. 准备R源码与编译环境
首先下载和CRAN发布版本一致的R源码包,解压到本地。同时确保你的macOS系统安装了Xcode Command Line Tools(可以用xcode-select --install命令安装),以及编译R所需的依赖库(比如OpenSSL、LaTeX相关工具等,具体参考R源码里的INSTALL文件中macOS章节的说明)。
2. 编译R二进制文件
在终端进入R源码根目录,按照官方指南完成R的编译:
./configure --enable-R-shlib make
等待编译完成后,你会得到完整的R二进制运行环境。
3. 运行pkg构建脚本
进入源码的src/tools/macosx目录,执行主构建脚本:
./build-R.sh
脚本会自动处理文件复制、权限配置,调用pkgbuild生成组件包,再用productbuild组合成最终的.pkg安装包。你可以通过脚本的参数调整版本号、目标架构(比如arm64或x86_64)等细节,具体可以查看脚本里的注释说明。
4. 验证与测试
生成的.pkg文件通常会输出在脚本所在目录或上级目录,你可以双击安装测试,也可以用pkgutil工具检查安装包的结构:
pkgutil --expand your-R-package.pkg temp-dir
如果需要像官方包一样签名,你得有Apple开发者证书,然后在构建脚本中添加签名相关的参数即可。
内容的提问来源于stack exchange,提问作者evolvedmicrobe




