[101] brew 在 mac 10.12.6 中重新安装 clojure 后 lein repl 进入不能?

100 views
Skip to first unread message

Zoom.Quiet

unread,
Jan 22, 2018, 10:27:53 AM1/22/18
to cn-cl...@googlegroups.com
是也乎,( ̄▽ ̄) 刚刚开始折腾时,上了当, 根据:在OS X上配置Clojure开发环境 - a0z - SegmentFault
https://segmentfault.com/a/1190000002591631
部署的本地 clj 开发环境, 用起来还成,
就是 1.9.0 死活无法运行...现在要配置使用 clj-time/clj-time: A date and time library
for Clojure, wrapping the Joda Time library.
https://github.com/clj-time/clj-time
才发现 clj 工具是徦的...
重新刷官方文档, 才知道 brew 是推荐标准安装方式了...
于是, 删除了手工安装的 /usr/local/lib/clojure 目录, 以及各种 bash 配置
类似:
#export CLASSPATH=$CLASSPATH:/usr/local/lib/clojure/clojure-1.8.0.jar
#export CLASSPATH=/usr/local/lib/clojure/clojure-1.8.0.jar
#alias clj="java -server -cp $CLASSPATH clojure.main $*"
#alias cljc="java -server -cp $CLASSPATH
-Dclojure.compile.path=classes/ clojure.lang.Compile $*"
#
#export CLASS19PATH=/usr/local/lib/clojure/clojure-1.9.0-alpha15.jar
##export CLASS19PATH=/usr/local/lib/clojure/clojure-1.9.0.jar
#alias clj19="java -server -cp $CLASS19PATH clojure.main $*"
#alias cljc19="java -server -cp $CLASS19PATH
-Dclojure.compile.path=classes/ clojure.lang.Compile $*"

运行 brew install clojure
成功:

༄ brew info clojure
clojure: stable 1.9.0.309
The Clojure Programming Language
https://clojure.org
/usr/local/Cellar/clojure/1.9.0.309 (7 files, 19MB) *
Built from source on 2018-01-22 at 23:03:10
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/clojure.rb
==> Dependencies
Required: rlwrap ✔
==> Requirements
Required: java >= 1.8 ✔

尝试运行内置工具:
༄ clj
Clojure 1.9.0
user=>
以及
༄ clojure
Clojure 1.9.0
user=>
都成功, 但是, 神奇的事儿来了:

༄ lein repl
nREPL server started on port 50312 on host 127.0.0.1 - nrepl://127.0.0.1:50312
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_131-b11
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e

user=>

这该怎么清查呢? 难道是俺在哪儿无意间还有残余的配置?


--
life is pathetic, go Pythonic! 人生苦短, Python当歌!
俺: http://zoomquiet.io
授: http://creativecommons.org/licenses/by-sa/2.5/cn/
怒: 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization learning!

Zoom.Quiet

unread,
Jan 22, 2018, 10:37:15 AM1/22/18
to cn-cl...@googlegroups.com
On Mon, Jan 22, 2018 at 11:27 PM, Zoom.Quiet <zoom....@gmail.com> wrote:
> 是也乎,( ̄▽ ̄) 刚刚开始折腾时,上了当, 根据:在OS X上配置Clojure开发环境 - a0z - SegmentFault
> https://segmentfault.com/a/1190000002591631
> 部署的本地 clj 开发环境, 用起来还成,
> 就是 1.9.0 死活无法运行...现在要配置使用 clj-time/clj-time: A date and time library
> for Clojure, wrapping the Joda Time library.
> https://github.com/clj-time/clj-time
> 才发现 clj 工具是徦的...

因为: Clojure - Deps and CLI Guide
https://clojure.org/guides/deps_and_cli
配置了 deps.edn
{:deps
{clj-time {:mvn/version "0.14.2"}}}

运行 clj 根本没有反应...
不过, 当前悲剧的是, 在全新终端中运行 clj 后
官方文档展示的情景:

$ clj
Downloading: clj-time/clj-time/0.14.2/clj-time-0.14.2.pom from
https://clojars.org/repo/
Downloading: clj-time/clj-time/0.14.2/clj-time-0.14.2.jar from
https://clojars.org/repo/
Clojure 1.9.0
user=> (require '[clj-time.core :as t])
nil
user=> (str (t/now))
"2017-12-06T19:36:56.159Z"

并没有出现, 而是和谐了:
clj_ZQ/_101/_date༽
༄ clj
Error building classpath. Failed to read artifact descriptor for
clj-time:clj-time:jar:0.14.2
org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to
read artifact descriptor for clj-time:clj-time:jar:0.14.2
...
at clojure.main.main(main.java:37)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException:
Could not transfer artifact clj-time:clj-time:pom:0.14.2 from/to
clojars (https://clojars.org/repo): No route to host (connect failed)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:422)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:224)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:201)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:267)
... 20 more
...
Caused by: java.net.ConnectException: No route to host (connect failed)
...


这就尴尬了哪...难道, 俺只能用其它渠道下载对应的 .jar 安装到本地依赖目录中?
没有其它更好的方法了嘛?
补充一些现象:
在没有重启的终端中, 即使使用
༄ source ~/.bash_profile
刷新了配置(俺用 bash_it 来管理大量的 bash 配置)
运行 clojure 已经正常 1.9.0 了,
但是 运行 clj:
༄ clj
错误: 找不到或无法加载主类 clojure.main

number 23

unread,
Jan 22, 2018, 7:48:12 PM1/22/18
to cn-cl...@googlegroups.com
如果不在工程目录,lein 2.8.1 的默认repl的clojure是1.8.0

--
中文社区博客:http://blog.clojure.cn/
中文问答网站:http://ask.clojure.cn/
中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“CN-Clojure”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com
要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
访问此群组:https://groups.google.com/group/cn-clojure
要在网络上查看此讨论,请访问 https://groups.google.com/d/msgid/cn-clojure/CAAFijRcdGXptucGc9RMC%3D5HXVy7Ojon7EUJTmC86n-%3DWHTC24Q%40mail.gmail.com
要查看更多选项,请访问 https://groups.google.com/d/optout



--

Zoom.Quiet

unread,
Jan 22, 2018, 10:05:28 PM1/22/18
to cn-cl...@googlegroups.com
2018-01-23 8:47 GMT+08:00 number 23 <numbe...@gmail.com>:
> 如果不在工程目录,lein 2.8.1 的默认repl的clojure是1.8.0
>

的确是 2.8.1 ~> 也就是说其实 lein 是内置了一款 clojure 的?

$ brew info leiningen
leiningen: stable 2.8.1 (bottled), HEAD
Build tool for Clojure
https://github.com/technomancy/leiningen
/usr/local/Cellar/leiningen/2.8.1 (9 files, 13MB) *
Poured from bottle on 2018-01-22 at 23:10:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/leiningen.rb
==> Options
--HEAD
Install HEAD version
==> Caveats
Dependencies will be installed to:
$HOME/.m2/repository
To play around with Clojure run `lein repl` or `lein help`.

Bash completion has been installed to:
/usr/local/etc/bash_completion.d

zsh completions have been installed to:
/usr/local/share/zsh/site-functions
>> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+...@googlegroups.com
>> 要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
>> 访问此群组:https://groups.google.com/group/cn-clojure
>> 要在网络上查看此讨论,请访问
>> https://groups.google.com/d/msgid/cn-clojure/CAAFijRcdGXptucGc9RMC%3D5HXVy7Ojon7EUJTmC86n-%3DWHTC24Q%40mail.gmail.com
>> 要查看更多选项,请访问 https://groups.google.com/d/optout
>
>
>
>
> --
> https://twitter.com/number23_cn
>
> --
> 中文社区博客:http://blog.clojure.cn/
> 中文问答网站:http://ask.clojure.cn/
> 中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛上的“CN-Clojure”群组。
> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+...@googlegroups.com
> 要发帖到此群组,请发送电子邮件至cn-cl...@googlegroups.com
> 访问此群组:https://groups.google.com/group/cn-clojure
> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/cn-clojure/CAEDshd7nWXw8jOYE%3D27ZtJ_2-_gRS%3DkxvcaWpCWp7MkZpNDcXQ%40mail.gmail.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

Zoom.Quiet

unread,
Jan 22, 2018, 10:32:25 PM1/22/18
to cn-cl...@googlegroups.com
进一步的, 今天网络给力就在本地执行成功了:
clj_ZQ/_101/_date༽
༄ clj
Downloading: clj-time/clj-time/0.14.2/clj-time-0.14.2.pom from
https://clojars.org/repo/
Downloading: joda-time/joda-time/2.9.7/joda-time-2.9.7.pom from
https://repo1.maven.org/maven2/
Downloading: clj-time/clj-time/0.14.2/clj-time-0.14.2.jar from
https://clojars.org/repo/
Downloading: joda-time/joda-time/2.9.7/joda-time-2.9.7.jar from
https://repo1.maven.org/maven2/
Clojure 1.9.0
user=> (require '[clj-time.core :as t])
nil
user=> (str (t/now))
"2018-01-23T03:20:29.232Z"
user=>

而且, 根据文档, 只是多出一个 .cpcache 目录, 其中也只有索引记录, 并没有下载的模块 .jar
./
+- .cpcache
|- deps.edn
+- src
`- date.clj

这种结构中, 进入 src 尝试调用
༄ clj date.clj
Exception in thread "main" java.io.FileNotFoundException: Could not
locate clj_time/core__init.class or clj_time/core.clj on classpath.
Please check that namespaces with dashes use underscores in the
Clojure file name.,
compiling:(/opt/data/Sites/DU.xmq/br/clj_ZQ/_101/_date/src/date.clj:1:1)
...

必须回到工程根目录中:

༄ clj src/date.clj
Hello world, the time is 11:30 上午

;;;; date.clj

(ns date
(:require [clj-time.core :as t]
[clj-time.format :as f]))

(defn time-str
"Returns a string representation of a datetime in the local time zone."
[dt]
(f/unparse
(f/with-zone (f/formatter "hh:mm aa") (t/default-time-zone))
dt))

(defn -main []
(println "Hello world, the time is" (time-str (t/now))))

(println "Hello world, the time is" (time-str (t/now)))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
所以, 问题是, 通过工程中 deps.edn 声明并自动下载的包,都安装到哪儿了?
如何可以备份/迁移/部署到其它主机中?

dennis zhuang

unread,
Jan 22, 2018, 10:37:03 PM1/22/18
to cn-cl...@googlegroups.com
maven 的默认目录  ~/.m2/repository

无需迁移备份的,每次都可以重新下载的,从 maven/clojars 中心仓库。

>>> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com

>>> 要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
>>> 访问此群组:https://groups.google.com/group/cn-clojure
>>> 要在网络上查看此讨论,请访问
>>> https://groups.google.com/d/msgid/cn-clojure/CAAFijRcdGXptucGc9RMC%3D5HXVy7Ojon7EUJTmC86n-%3DWHTC24Q%40mail.gmail.com
>>> 要查看更多选项,请访问 https://groups.google.com/d/optout
>>
>>
>>
>>
>> --
>> https://twitter.com/number23_cn
>>
>> --
>> 中文社区博客:http://blog.clojure.cn/
>> 中文问答网站:http://ask.clojure.cn/
>> 中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
>> ---
>> 您收到此邮件是因为您订阅了Google网上论坛上的“CN-Clojure”群组。
>> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com
>> 要发帖到此群组,请发送电子邮件至cn-clojure@googlegroups.com

>> 访问此群组:https://groups.google.com/group/cn-clojure
>> 要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/cn-clojure/CAEDshd7nWXw8jOYE%3D27ZtJ_2-_gRS%3DkxvcaWpCWp7MkZpNDcXQ%40mail.gmail.com
>> 要查看更多选项,请访问https://groups.google.com/d/optout
>
>
>
> --
> life is pathetic, go Pythonic! 人生苦短, Python当歌!
> 俺: http://zoomquiet.io
> 授: http://creativecommons.org/licenses/by-sa/2.5/cn/
> 怒: 冗余不做,日子甭过!备份不做,十恶不赦!
> KM keep growing environment culture which promoting organization learning!



--
life is pathetic, go Pythonic! 人生苦短, Python当歌!
俺: http://zoomquiet.io
授: http://creativecommons.org/licenses/by-sa/2.5/cn/
怒: 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization learning!

--
中文社区博客:http://blog.clojure.cn/
中文问答网站:http://ask.clojure.cn/
中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“CN-Clojure”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com

要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
访问此群组:https://groups.google.com/group/cn-clojure



--
庄晓丹
Email:        killm...@gmail.com
Site:           http://fnil.net

不学习,毋宁死

Zoom.Quiet

unread,
Jan 22, 2018, 10:43:47 PM1/22/18
to cn-cl...@googlegroups.com
2018-01-23 11:36 GMT+08:00 dennis zhuang <killm...@gmail.com>:
> maven 的默认目录 ~/.m2/repository
>

从 lein 的 brew info 中 got 到了...

> 无需迁移备份的,每次都可以重新下载的,从 maven/clojars 中心仓库。
>

呃...也就是说是用户全局的?
无法跟工程走的?
类似 python 中的 pipenv/pyenv 工程绑定形式,
每个工程, 有自己的依赖模块树..

或是类似 node 的全局/工程 .npm 仓库入口?

> 2018-01-23 11:32 GMT+08:00 Zoom.Quiet <zoom....@gmail.com>:
...
>>
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> 所以, 问题是, 通过工程中 deps.edn 声明并自动下载的包,都安装到哪儿了?
>> 如何可以备份/迁移/部署到其它主机中?
...

> --
> 庄晓丹

是也乎,( ̄▽ ̄)
好久不见, 从 程序媛专场后.

> Email: killm...@gmail.com
> Site: http://fnil.net
>
> 不学习,毋宁死
>
> --
> 中文社区博客:http://blog.clojure.cn/
> 中文问答网站:http://ask.clojure.cn/

以上两个网站都 404 了...
屏幕快照 2018-01-23 11.43.02.png

number 23

unread,
Jan 23, 2018, 7:55:11 PM1/23/18
to cn-cl...@googlegroups.com
是的。

2018-01-23 11:05 GMT+08:00 Zoom.Quiet <zoom....@gmail.com>:
>> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com

>> 要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
>> 访问此群组:https://groups.google.com/group/cn-clojure
>> 要在网络上查看此讨论,请访问
>> https://groups.google.com/d/msgid/cn-clojure/CAAFijRcdGXptucGc9RMC%3D5HXVy7Ojon7EUJTmC86n-%3DWHTC24Q%40mail.gmail.com
>> 要查看更多选项,请访问 https://groups.google.com/d/optout
>
>
>
>
> --
> https://twitter.com/number23_cn
>
> --
> 中文社区博客:http://blog.clojure.cn/
> 中文问答网站:http://ask.clojure.cn/
> 中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛上的“CN-Clojure”群组。
> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com
> 要发帖到此群组,请发送电子邮件至cn-clojure@googlegroups.com



--
life is pathetic, go Pythonic! 人生苦短, Python当歌!
俺: http://zoomquiet.io
授: http://creativecommons.org/licenses/by-sa/2.5/cn/
怒: 冗余不做,日子甭过!备份不做,十恶不赦!
KM keep growing environment culture which promoting organization learning!

--
中文社区博客:http://blog.clojure.cn/
中文问答网站:http://ask.clojure.cn/
中文邮件列表:https://groups.google.com/d/forum/cn-clojure?hl=zh-CN
---
您收到此邮件是因为您订阅了 Google 网上论坛的“CN-Clojure”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cn-clojure+unsubscribe@googlegroups.com

要向此群组发帖,请发送电子邮件至 cn-cl...@googlegroups.com
访问此群组:https://groups.google.com/group/cn-clojure
Reply all
Reply to author
Forward
0 new messages