Puedo ejecutar lein repl
sin problemas.
% lein repl
nREPL server started on port 39175 on host 127.0.0.1 - nrepl://127.0.0.1:39175
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
OpenJDK 64-Bit Server VM 1.8.0_121-b13
...
pero no se iniciará en Emacs. Estuvo funcionando hace dos días, y mantengo todos mis paquetes actualizados en unos pocos días, así que algo acaba de cambiar.
M-x cider-jack-in
(70 seconds pass with no repl coming up)
*Messages*
Making nrepl-create-client-buffer-function local to *nrepl-server foo* while let-bound!
Making nrepl-use-this-as-repl-buffer local to *nrepl-server foo* while let-bound!
Starting nREPL server via /usr/bin/lein update-in :dependencies conj \[org.clojure/tools.nrepl\ \"0.2.12\"\ \:exclusions\ \[org.clojure/clojure\]\] -- update\
-in :plugins conj \[cider/cider-nrepl\ \"0.15.0-SNAPSHOT\"\] -- repl :headless :host ::...
Prelude tip: Press <C-c G> to search in GitHub.
error in process sentinel: nrepl-server-sentinel: Could not start nREPL server: Exception in thread "main" java.net.SocketException: Protocol family unavaila\
ble, compiling:(/tmp/form-init6590227691248211762.clj:1:73)
at clojure.lang.Compiler.load(Compiler.java:7391)
at clojure.lang.Compiler.loadFile(Compiler.java:7317)
at clojure.main$load_script.invokeStatic(main.clj:275)
at clojure.main$init_opt.invokeStatic(main.clj:277)
at clojure.main$init_opt.invoke(main.clj:277)
at clojure.main$initialize.invokeStatic(main.clj:308)
at clojure.main$null_opt.invokeStatic(main.clj:342)
at clojure.main$null_opt.invoke(main.clj:339)
at clojure.main$main.invokeStatic(main.clj:421)
at clojure.main$main.doInvoke(main.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:383)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.Var.applyTo(Var.java:700)
at clojure.main.main(main.java:37)
Caused by: java.net.SocketException: Protocol family unavailable
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at clojure.tools.nrepl.server$start_server.invokeStatic(server.clj:143)
at clojure.tools.nrepl.server$start_server.doInvoke(server.clj:121)
at clojure.lang.RestFn.invoke(RestFn.java:619)
at user$eval10459.invokeStatic(form-init6590227691248211762.clj:1)
at user$eval10459.invoke(form-init6590227691248211762.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6927)
at clojure.lang.Compiler.eval(Compiler.java:6917)
at clojure.lang.Compiler.load(Compiler.java:7379)
... 14 more
Subprocess failed
error in process sentinel: Could not start nREPL server: Exception in thread "main" java.net.SocketException: Protocol family unavailable, compiling:(/tmp/fo\
rm-init6590227691248211762.clj:1:73)
at clojure.lang.Compiler.load(Compiler.java:7391)
at clojure.lang.Compiler.loadFile(Compiler.java:7317)
at clojure.main$load_script.invokeStatic(main.clj:275)
at clojure.main$init_opt.invokeStatic(main.clj:277)
at clojure.main$init_opt.invoke(main.clj:277)
at clojure.main$initialize.invokeStatic(main.clj:308)
at clojure.main$null_opt.invokeStatic(main.clj:342)
at clojure.main$null_opt.invoke(main.clj:339)
at clojure.main$main.invokeStatic(main.clj:421)
at clojure.main$main.doInvoke(main.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:383)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.Var.applyTo(Var.java:700)
at clojure.main.main(main.java:37)
Caused by: java.net.SocketException: Protocol family unavailable
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at clojure.tools.nrepl.server$start_server.invokeStatic(server.clj:143)
at clojure.tools.nrepl.server$start_server.doInvoke(server.clj:121)
at clojure.lang.RestFn.invoke(RestFn.java:619)
at user$eval10459.invokeStatic(form-init6590227691248211762.clj:1)
at user$eval10459.invoke(form-init6590227691248211762.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6927)
at clojure.lang.Compiler.eval(Compiler.java:6917)
at clojure.lang.Compiler.load(Compiler.java:7379)
... 14 more
Subprocess failed
~/.emacs.d
(prelude-require-package 'cider)
y evalúalolein new foo && cd foo
emacs src/foo/core.clj
M-x cider-jack-in
% java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)
No puedo iniciar la respuesta desde emacs para ver, pero list-packages
muestra sidra en 20170310.735
. nREPL parece estar siendo extraído como 0.2.12
.
Leiningen 2.7.1 en Java 1.8.0_121 Máquina virtual de servidor OpenJDK de 64 bits
GNU Emacs 25.1.1 (x86_64-unknown-linux-gnu, GTK+ Versión 3.22.7) de 2017-02-07
Arch Linux, núcleo: 4.10.2-1-ARCH
procesos: CPU Intel(R) Core(TM) i7-4750HQ a 2,00 GHz (x8)
Resolví esto, al menos cómo superarlo. Había estado ejecutando mi sistema Arch Linux con ipv6 deshabilitado por pasas histéricas. Después de habilitarlo y reiniciar, CIDER/nrepl ahora están funcionando.
También puede cambiar el comando de arranque, por cierto. Se vincula a ::
de forma predeterminada, pero siempre puede cambiarlo a localhost
.
Ah, ya veo. Me preguntaba qué estaba haciendo ese ::
allí. Gracias por CIDER etc, por cierto!!!!
Para cualquier otra persona que tenga este problema, esto se puede solucionar configurando cider-lein-parameters
en "repl :headless :host localhost"
(el valor predeterminado es "repl :headless :host ::"
)
Esto parece solucionar el problema, pero, ¿no puedo predeterminar el parámetro a localhost
para cada proyecto nuevo que crearé en el futuro?
@darkdefender27 Ver https://github.com/technomancy/leiningen/pull/2444 Estoy tratando de cambiar lein para usar la versión actualizada de nREPL que soluciona esto.
Por cierto, en caso de que alguien se pregunte por qué esto era lo predeterminado, consulte https://dev.clojure.org/jira/browse/NREPL-83 y https://github.com/clojure-emacs/cider/issues/2482
Parece que podríamos volver a cambiar el valor predeterminado pronto, ya que es posible que no hayamos entendido las implicaciones de usar ::
.
Comentario más útil
Para cualquier otra persona que tenga este problema, esto se puede solucionar configurando
cider-lein-parameters
en"repl :headless :host localhost"
(el valor predeterminado es"repl :headless :host ::"
)