2013-08-27 2 views
3

У меня есть файл org с R исходными блоками. Теперь я хочу выполнить некоторые или фактически все из них удаленно на моем сервере. Я следил за настройкой из руководства по организации, и я использую = dir: = как в приведенном ниже примере (по очевидным причинам я не показываю свое имя пользователя или имя сервера, но могу подключиться без пароля, поэтому настройка ssh в порядке) :org-mode remote R не работает с org 8.0.7

#+BEGIN_SRC R :dir /[email protected]: :exports both 
    system("hostname") 
#+END_SRC 

, когда я оцениваю это с Cc Cc я получаю следующее:

executing R code block... 
Tramp: Encoding region using function `base64-encode-region'...done 
Tramp: Decoding region into remote file /ssh:[email protected]:/var/folders/2m/4d7t6kwx0tn2p6blmf3l7_kh0000gn/T/R-30000dMv...done 
byte-code: Couldn't write region to `/ssh:[email protected]:/var/folders/2m/4d7t6kwx0tn2p6blmf3l7_kh0000gn/T/R-30000dMv', decode using `base64 -d -i >%s' failed 

по-видимому, есть некоторые проблемы с удаленными папками, так как на моем сервере я не имею разрешение на запись/var или фактически/var/folders не существует, он существует только локально на моем Mac.

Я получаю подобные сообщения об ошибках, когда я пытаюсь использовать ш:

#+BEGIN_SRC sh :dir /[email protected]: :export both 
hostname 
#+END_SRC 

Кто-нибудь есть решение для этого? или альтернативный способ выполнения R-кода на удаленной машине?

Мой Emacs версии 24.3, орг 8.0.7

заранее спасибо за любые ответы!

Update:

я нашел следующую запись emacs org-mode mailing list, что, кажется, связано с моей проблемой. В самом деле, кажется, что org использует неправильные имена файлов, если код выполняется удаленно. Я не знаю, как исправить это, или если я могу найти решение сам ...

Update:

Альтернативный способ выполнить R-код удаленно заключается в следующем:

Запустите удаленное соединение ssh с «Mx ssh», подключитесь к вашему серверу, запустите R и вызовите «Mx ess-remote» в удаленном буфере. Теперь, при указании имени удаленного R буфера в качестве «сессии», он будет выполнять код удаленно:

#+BEGIN_SRC R :exports both :results output :session *ssh xxx* 
    system("hostname") 
#+END_SRC 

это возвратит имя хоста сервера (обратите внимание, что «ххх» выше будет ваше имя сервера). Важное значение «: result value» приведет к той же проблеме с временными файлами, только сейчас: «результат результатов» работает.

Update и решение:

Так :results output это путь. Это также работает и для выполнения удаленного кода :dir.

ответ

0

Я бы сначала испытал, работает ли Tramp на вашем Emacs.

+0

Вы правы. Я должен был это сделать. Ну, теперь я сделал и попытался открыть файл на сервере, используя tramp. Содержимое файла также хорошо отображается в Emacs, но Emacs зависает после этого. Поэтому я должен выяснить, что происходит ... Я уже пробовал все в [link] (http://www.emacswiki.org/emacs/TrampMode#toc3) без успеха. Я пытаюсь подключиться к серверу, на котором работает CentOS 6 с моего Mac (10.8.4 Mountain Lion). – jotsetung

+0

Кажется, что Mac связан ...Я протестировал его, чтобы подключиться от unix к unix, и он работает там. – jotsetung

+0

Обновление: ЕЦБ был виновником. Я нашел это решение: [link] (http://emacs.1067599.n5.nabble.com/ECB-2-40-ecb-tramp-causes-emacs-to-hang-td235473.html). Теперь я могу открывать файлы в Emacs, используя tramp. Так что tramp определенно работает, но я все еще не могу выполнить код из режима org удаленно. – jotsetung

Смежные вопросы