Emacs Помещает ошибку «несоответствующий ioctl» в переменную PATH - PullRequest
2 голосов
/ 04 августа 2011

Я на OS X 10.6.8. Я повторил следующие ошибки с Emacs для OS X (http://emacsformacosx.com/) и с Aquamacs (текущие версии обоих).

Я обнаружил проблему, пытаясь войти в режим управления версиями (CTRL-X v v) при редактировании файла в Subversion Repo. Я получаю следующую ошибку:

"Поиск программы: нет такого файла или каталога, 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 не находит svn в /usr/bin.

Есть идеи, как мне это исправить? Или дальнейшие предложения по устранению неполадок?

1 Ответ

1 голос
/ 04 августа 2011

Вот несколько вещей, которые вы можете сделать:

  1. Google для возможных причин написания сообщения "100% не подходит ioctl для устройства" . Это даст вам некоторые подсказки о типах вещей, которые могут вызывать это сообщение.
  2. Запустите emacs без файлов инициализации, а затем проверьте, присутствует ли это сообщение в переменной exec-path. Если это так, то это, вероятно, связано с чем-то внешним по отношению к Emacs (например, ваш .bashrc или другой файл инициализации оболочки). Глядя на исходный код C в callproc.c, кажется, что наиболее вероятными виновниками будут переменные окружения «EMACSPATH» или «PATH», поэтому вы должны проверить эти переменные окружения, а также любой код, устанавливающий эти переменные в любых скриптах оболочки, которые вы запускаете , Однако переменные окружения в Mac OS X также могут быть получены из "~ / .MacOSX / environment.plist", поэтому вы должны проверить, что там установлено, чтобы узнать, является ли это виновником.
  3. Если вы не получили сообщение «Несоответствующий ioctl для устройства» при запуске emacs без файлов инициализации, тогда начните выполнять фрагменты ваших файлов инициализации Emacs (каждый раз проверяя переменную exec-path, чтобы увидеть, был ли запущен код вызвал добавление сообщения об ошибке).

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...