Abrindo o emacs através do SSH no OS X

0
[kevin@serverA myFolder]$ emacs sample
emacs: Cannot connect to X server <IP Address>
Check the DISPLAY environment variable or use '-d'. Also use the 'xhost'
program to verify that it is set to permit connections from your machine.

Eu corri xhost+ antes do ssh para o meu servidor.

Por que não consigo abrir o emacs?

    
por Kevin Meredith 09.08.2012 / 21:48

2 respostas

3

xhost não é realmente relevante neste caso, se você estiver ssh tunneling X. Você realmente não mencionou qual é a sua configuração, então eu assumirei que seu cliente de exibição é um mac, e seu servidor é um caixa de linux de algum tipo, e você está mergulhando nisso.

  1. Você está encaminhando o X11 para sua sessão ssh? Você pode fazer isso adicionando -X à sua linha de comando ssh, ou colocando "ForwardX11 yes" em ~ / .ssh / config. Feito isso, verifique sua variável DISPLAY no servidor (após conectá-la) executando "printenv DISPLAY". Ele deve imprimir algo como "localhost: 10.0" ou similar, a parte importante é a parte localhost.

  2. O X11 está instalado no seu Mac? Se não, consiga. Para o Mountain Lion, você precisa baixar o XQuartz e instalá-lo. Para versões mais antigas, ele deve estar em uma pasta marcada como "Instalações opcionais" no DVD de instalação.

  3. Se isso estiver definido corretamente, você tem o xauth instalado em seu servidor? Tente executar o xauth no seu servidor e veja se você recebe uma resposta. Caso contrário, você precisará instalá-lo.

Se todas as estrelas estiverem alinhadas, você poderá exibir com êxito os aplicativos X no seu mac.

    
por 09.08.2012 / 21:59
0

Você consegue abrir QUALQUER outro programa X? E se você tentar xclock? A linha de comando padroniza sua saída de exibição X para esperar "displays" criados na máquina em que você está remotamente. O erro leva você a fornecer as informações de encaminhamento para que ele possa enviar a janela de exibição para o sistema X11 local. Se você ainda não tem o X11 em execução no seu sistema local, pule para o final desta postagem para uma alternativa.

Acho que o encaminhamento não é feito automaticamente para você apenas com o X11Forwarding em / etc / sshd_config da discussão em sua primeira resposta. Então siga o guia aqui para usar a opção de linha de comando de exibição (deve ser feita sempre):

emacs sample -display your-actual-hostname-or-ip:0.0

Se tudo isso falhar, use a solução alternativa somente texto enquanto você está remotamente em: emacs -nw sample Se você estiver usando isso, tenha em mente que nada, até mesmo os menus podem ser clicáveis. Talvez seja necessário fazer [F8] e seguir a orientação do menu baseada em texto para acessar as opções do menu. Pode haver uma solução alternativa de .emacs para isso.

Conhecendo o emacs, você pode lidar com isso de outra forma se tiver baixado uma versão local do emacs (sugiro xemacs) - O modo Tramp para o emacs INICIARá sessões ssh para seu host remoto e editará arquivos sem problemas. Há perguntas do Stack Exchange abertas sobre perguntas como uma sobre esses shells ssh de escravo . Aqui está um com mais alguns detalhes sobre o modo eshell and tramp . Ter opções é ótimo para o momento certo.

    
por 16.08.2012 / 03:09