R cmd 检查在 R 3.1.3 升级后未在 mac 上定位 texi2pdf

sky*_*end 5 macos r texinfo

有没有人有链接来明确说明如何安装和配置必要的乳胶包以在 mac 上构建 R 包?

我有一些用于在 mac 服务器上构建和检查 R 包的脚本。它们似乎工作正常,但升级到 R 3.1.3 后,许多软件包开始失败

Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
  Running 'texi2dvi' on 'networkVignette.tex' failed.
Messages:
sh: /usr/local/bin/texi2dvi: No such file or directory
Calls: <Anonymous> -> texi2pdf -> texi2dvi
Execution halted
Run Code Online (Sandbox Code Playgroud)

我发现一个线程似乎表明我需要一个比默认安装的版本更新的 texinfo (5.2)。显然我在错误的位置安装了错误的版本?

which texi2pdf
/sw/bin/texi2pdf

texi2pdf --version
texi2pdf (GNU Texinfo 5.1) 5234
Run Code Online (Sandbox Code Playgroud)

system('texi2pdf --version')在 R 中运行时报告相同的版本)

该线程提供了一个指向 texinfo 5.2 源集合的链接:

http://r.789695.n4.nabble.com/R-CMD-build-looking-for-texi2dvi-in-the-wrong-place-R-devel-td4701706.html

但我不熟悉在 Mac 上从 tar.gz 文件安装可执行文件。我发现的 R mac 帮助页面建议安装 MacTex,我尝试过,但似乎没有帮助。


** 更新:** R-SIG-mac 邮件列表相关问题的附加讨论:https : //groups.google.com/forum/#!topic/ r-sig-mac/ xjyuFdl5Ezk


更新: 这是我目前所在的位置:

  1. 我删除了/sw要卸载的目录fink及其所有软件包(无法弄清楚如何升级它)

  2. 安装自制软件

  3. brew install texinfo 安装 5.2 版的软件包,

但会生成消息This formula is keg-only, which means it was not symlinked into /usr/local 并实际安装在/usr/local/Cellar/texinfo/5.2/bin其中,这意味着它不在路径上并且 R 找不到它。

  1. 手动每个符号链接的texi2pdftexi2dvi等如文森特表明(这是因为R的/usr/local/bin位置为默认的tools::texi2dvi功能?

  2. 编辑/etc/paths系统上的文件以添加,/usr/local/bin以便在 osx 系统提供 4.6 版本之前找到安装的 brew 5.2 版本。这可能不是必需的,因为 R 已对其进行了硬编码?

所有这些都消除了“找不到 texi* 错误”,并给了我一堆 Latex 错误(我在 unix 和 windows 版本上看不到),所以我仍然有点卡住了。

这看起来很hackish,所以必须有一个更干净的方法?但听起来 tex 和 mac 的东西目前非常粗略?https://tex.stackexchange.com/questions/208181/why-did-my-tex-related-gui-program-stop-working-in-mac-os-x-yosemite

42-*_*42- 0

在我的 Lion 系统上,终端/bash 提示符和 R.app GUI 提示符处的命令都which texi2pdf告诉我该程序位于:

system("which texi2pdf")
#/opt/local/bin/texi2pdf
Run Code Online (Sandbox Code Playgroud)

这是 MacPorts 安装的典型位置。我认为这 /usr/local/bin/是二进制 R 版本“所期望的”。我并不是那么精通 UNIX,但我认为您可以修改 PATH 环境变量,以便 R 能够找到您的安装。(我不能说它是否兼容,因为你的问题缺少太多细节。)我的 Tex 安装是 MacTex,我从https://www.tug.org/mactex/获得。我承认有一个拼凑起来的系统:

system("echo $PATH")
# /opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin:/usr/X11R6/bin
Run Code Online (Sandbox Code Playgroud)

这是在 R 会话开始时设置的,因为这是我的.Rprofile-(不可见)文件中的第一行:

Sys.setenv(PATH="/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin:/usr/X11R6/bin")
Run Code Online (Sandbox Code Playgroud)

我认为/sw/bin/安装意味着 fink 安装,但我在这方面几乎没有成功。Simon Urbanek 建议不要使用任何软件包安装程序,但随后我们对 UNIX 的其他人留下了很少的关于如何安装各种外部软件包的示例,这些软件包支撑着许多有趣且非常有用的 R 软件包。所以我理解你的痛苦,但我不会竞选总统。

因此,我想您可以在 R 控制台上尝试此操作,然后再次尝试之前的不成功安装之一:

Sys.setenv(PATH=paste( Sys.getenv()$PATH, # should be the character string of the $PATH
                       "/sw/bin/", sep=":")
            )
Run Code Online (Sandbox Code Playgroud)

希望我能提供保证,但如果它坏了,唯一的保证就是你可以保留所有碎片。