Только что обновился с Yosemite до El Capitan, и я начал с проблемы с Emacs: он не запускался со значка Emacs.app, жалуясь, что не может найти /bin/false. Я отследил это до того, что Emacs.app пытался запустить /usr/bin/login, значение по умолчанию для приложения «Терминал». Я могу переключить «Терминал» на запуск /bin/bash, но это не решает проблему Emacs.app или аналогичные проблемы для любых других приложений, которые пытаются запустить /usr/bin/login.
Похоже, мне нужно исправить /usr/bin/login для запуска /usr/bin/false, а не /bin/false, но я понятия не имею, как это сделать.
Я пытался обмануть программы в обратном направлении,
sudo ln -s /usr/bin/false /bin/false
и я получаю "Операция не разрешена". Я пытался
sudo cp /usr/bin/false /bin/false
и получаю "Операция запрещена".
Я застрял в поисках «правильного ответа» или других обходных путей.
У меня была та же проблема: emacs выдавал мне «Ошибка (использование пакета): exec-path-from-shell: init: Поиск программы: нет такого файла или каталога, /bin/false» при запуске. Однако я заметил, что это происходит только при запуске Emacs (установленного из emacsformacosx) из Dock или Spotlight. Если я запустил его из своего терминала или щелкнув его в приложениях в Finder, он работал нормально.
После перезагрузки проблема решилась. Я подозреваю, что Dock и Spotlight сохранили мою первоначальную оболочку по умолчанию и после перезапуска использовали новое значение (измененное с /bin/false на /bin/zsh).
Ваша оболочка emacs неправильно направляется в /bin/false, который является просто двоичным файлом, который немедленно завершает работу, возвращая false при вызове. Чтобы перезаписать это, скопируйте и вставьте следующий код в свой файл ~/.emacs/init.el:
(setq explicit-shell-file-name "/bin/sh")
мммммм
echo $SHELL
дает?мммммм
Реб.Кабина
Реб.Кабина
echo $SHELL
показывает/bin/bash
. Пользователь по умолчанию в Системных настройках > Пользователи и группы —/bin/bash
. Я не знаю, нормально ли работает терминал /usr/bin/login, но если я запускаю /usr/bin/login вручную в терминале, он работает. Emacs ВСЕ ЕЩЕ жалуется (после полной загрузки и переустановки), что не может найти /bin/false. Этого не происходит на совершенно отдельном Mac El Capitan, которым я владею (все отлично работает на Mac # 2, идентичном близнеце проблемного Mac).мммммм
Реб.Кабина
Реб.Кабина