阿男的小窝

View the Project on GitHub

Docker:在Ubuntu host里面安装Leiningen

首先安装Java,我们可以去Java的官方网站下载JDK8:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

因为我的container里面的host是ubuntu 64bit,所以我下载相关的64bit的java包:

如果是Fedora Linux,选择rpm更方便。下载完成后,把下载好的压缩包拷贝进container host:

$ docker cp jdk-8u161-linux-x64.tar.gz quizzical_heyrovsky:/tmp

这样,在container host里面就有这个压缩包了:

$ ls /tmp/jdk-8u161-linux-x64.tar.gz
/tmp/jdk-8u161-linux-x64.tar.gz

然后在container host里面解压这个压缩包:

$ cd /tmp
$ tar zxf jdk-8u161-linux-x64.tar.gz

此时查看被解压缩的jdk目录:

可以看到jdk包已经解压缩成jdk目录了,我们把这个目录放到合适的路径下面:

$ mv jdk1.8.0_161 /

这样,jdk就放好了。接下来要配置相关的路径,让java可以正常运行:

$ export PATH=$PATH:/jdk1.8.0_161/jre/bin/
$ export JAVA_HOME=/jdk1.8.0_161/jre/

完成了上面的设置,我们可以试试看执行java命令:

$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

如果得到了上面的结果,就说明Java准备好了。为了以后每次登录进host,Java上面的设置都自动设置好,我们要把上面的配置加到root的bash的启动环境脚本里面:

$ cd
$ pwd
/root
$ ls .bashrc
.bashrc

这个「.bashrc」就是启动脚本了。保险起见,我们先把这个文件做下备份:

$ cp .bashrc .bashrc.bkup

然后就是把java的配置加到这个文件里面去。下面是命令:

$ echo "export PATH=$PATH:/jdk1.8.0_161/jre/bin/" >> .bashrc
$ echo "export JAVA_HOME=/jdk1.8.0_161/jre/" >> .bashrc

可以用tail命令确认上面的内容已经加入文件了:

$ tail -n 2 .bashrc
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/jdk1.8.0_161/jre/bin/
export JAVA_HOME=/jdk1.8.0_161/jre/

这样,上面的两行配置就加到启动脚本文件里面了,以后再登录进host,都可以默认使用java了。

接下来我们要安装Leiningen。为了下载Leiningen的脚本,我们得去它的网站得到下载地址:

https://leiningen.org/

在它的网站里,我们要下载这个「lein」脚本。为了下载这个脚本,我们可以先把「wget」这个下载工具安装好,会方便一些。下面是安装命令:

$ apt-get install wget

安装完成后,我们就可以下载lein脚本:

$ cd /usr/local/bin/
$ wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein

下载完lein脚本以后,我们需要给这个脚本加上可执行属性,下面是命令:

$ chmod a+x lein

然后执行命令:

$ lein

会花费一些时间进行下载,耐心等待即可。下载完成后,lein命令就可以后续使用了,并可以看到执行情况:

接下来我们可以进入lein的repl:

$ lein repl

第一次执行会需要一些时间下载所需的包,耐心等待即可。server启动以后,还要很长一段时间才能进入repl,需要耐心等待。进入repl以后,情况如下所示:

在repl里面输入一段clojure代码试试看:

(println "Hello, world!")

得到代码的执行结果:

到此为止,我们已经成功安装了Leiningen,并且可以用它来执行clojure代码了。