Emacs在PATH变量中输入“不适当的ioctl”错误

时间:2011-08-03 21:24:00

标签: macos version-control emacs path

我在OS X 10.6.8上。我已经使用Emacs for OS X(http://emacsformacosx.com/)和Aquamacs(两者的当前版本)复制了以下错误。

我在Subversion Repo中编辑文件时尝试进入版本控制模式(CTRL-X v v),从而发现了问题。我收到以下错误:

“搜索程序:没有这样的文件或目录,svn”

在OS X中,svn位于/ usr / bin。

C-h v exec-path显示了这一点:

exec-path is a variable defined in `C source code'.
Its value is
("mesg" " ttyname" " Inappropriate ioctl for device/usr/bin" "/bin" "/usr/sbin" "/sbin" "/usr/local/bin" "/usr/X11/bin" "/usr/local/git/bin" "/Users/schof/py/scripts" "/usr/texbin" "/Users/schof/py/scripts")

请注意“设备的不适当的ioctl”是如何与“/ usr / bin”混在一起的。我很确定这就是为什么Emacs没有在/ usr / bin中找到svn的原因。

关于如何解决此问题的任何想法?还是进一步的故障排除建议?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

  1. 谷歌正在编写possible causes of the "Inappropriate ioctl for device" message。这将为您提供有关可能导致此消息的事物类型的一些线索。
  2. 运行没有init文件的emacs,然后检查exec-path变量中是否仍然存在此消息。如果是,则可能是由于Emacs外部的东西(例如 - 您的.bashrc或其他shell init文件)。查看callproc.c中的C源代码,看起来最可能的罪魁祸首是环境变量“EMACSPATH”或“PATH”,所以你应该检查那些环境变量,以及在你运行的任何shell脚本中设置这些变量的代码。但是,Mac OS X上的环境变量也可以来自“〜/ .MacOSX / environment.plist”,因此您应该检查那里设置的是否是罪魁祸首。
  3. 如果在没有init文件的情况下运行emacs时没有收到“不合适的ioctl for device”消息,则开始执行Emacs init文件的块(每次检查exec-path变量以查看运行的代码是否导致添加错误消息)。
  4. 祝你好运!