Файли LSOpenURLsWithRole () з помилкою -10810 на Yosemite зсередини tmux


17

Спроба відкрити додаток із командного рядка (Terminal.app), всередині tmux(встановленого через MacPorts, версія 1.9a) та отримати наступний результат:

$ open /Applications/Adobe\ Reader.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Adobe Reader.app.

Ця ж команда працює добре з того ж терміналу, якщо виконується поза tmux.

Навколишнє середовище слід читати від господаря; в tmux.conf:set -g update-environment -r

При перезапуску terminal.app або tmux він іноді помиляється спочатку з іншим повідомленням (див. Нижче), а при повторному спробі замість цього наведено вищевказану помилку -10810.

$ open /Applications/Adobe\ Reader.app/
The window server could not be contacted.  open must be run with a user logged in at the console, either as that user or as root.

Я спробував як власні програми Apple (Preview, Font Book, Contacts), так і сторонні (Adobe, Evernote тощо). Без різниці. Один додаток, який, здається, працює, - це пошук. ( open [dirname]наприклад,)

Відповіді:


19

Для цього є рішення / вирішення:

  • Оновіть свою версію reattach-to-user-namespace. Це використовується tmux для виконання програм. Я використовую заварити , а не MacPorts, так що я просто зробив: brew update; brew upgrade reattach-to-user-namespace. Макпорти, ймовірно, зможуть зробити щось подібне.
  • Додайте у .tmux.confфайл наступне :

    set -g default-command "reattach-to-user-namespace -l /bin/bash"

Перезапустіть сеанс tmux, і це дозволить запускати програми з командного рядка.

Додаткову інформацію можна знайти в цьому випуску github.


FWIW, оновлення reattach-to-user-namespaceне має значення для мене, і проблема все ще зберігається. Здається, tmux має бути виправлений сам (див. Іншу відповідь).
Конрад Рудольф

коли не використовується оболонка за замовчуванням, переконайтеся, що змінив шлях у команді (наприклад, path/to/your/fish).
Авіель Гросс

3

Проблема полягає в тому, що tmux змінює завантажувальну систему на домен системи, коли вона не повинна (див. Https://trac.macports.org/ticket/18357 ). Старіші версії запуску працювали навколо цієї помилки в tmux, але перезаписаний запуск в OS X Yosemite не працює навколо цієї помилки tmux.

Вам потрібно буде дочекатися, коли Apple, можливо, випустить оновлення, яке працює навколо помилки tmux або розробників tmux, щоб виправити цю помилку в tmux, яка відома вже принаймні 6 років.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.