Julia语言安装(环境准备)

        Julia语言是跨平台的,能够在Windows、Linux、MacOS等环境中工作,不久还会增加对ARM、AARCH64和POWER8等平台的正式支持。我们可以从其官方网站中直接下载编译好的二进制安装包,也可以下载源代码在本机的环境中重新编译。不过建议使用提供的可执行程序安装Julia程序环境,除非非常熟悉C++代码的编译过程。

二进制包安装

        Julia官方为Windows、MacOS、Linux及FreeBSD几个最常见的平台提供了已经编译好的可直接执行的安装程序,除了MacOS只提供64bit版本外,其他都有64位和32位版,可通过官方页面https://julialang.org/downloads进行下载。安装文件的都不大,30~70MB左右,不像微软各种东西,动辄就上G。二进制的安装方式能让我们不用操心各种依赖与复杂的编译过程,安装完毕即可轻松开始使用。

  • Windows

Julia支持Windows 7/ Windows Server 2012及更新的操作系统,所以最好不要在Windows 2000或Windows XP这些太老的系统中尝试,不确定会发生什么问题。

32位版本的Julia可运行在32位(x86)或64位(x86_64)的操作系统中,但64位版本只能运行在64位的Windows系统中。在Windows上安装Julia极为简单,将exe安装包下载后,双击文件然后按照引导一步步执行既可。

需要说明的是,对于Windows 7或Windows Server 2012系统,需要额外安装以下两个工具:

  1. 更新操作系统组件,以支持1.1及1.2版的传输层安全协议(Transport Layer Security,TLS)。这是因为GitHub已经停止了TLS 1.0的使用,所以需要操作系统支持更高的TLS版本,Julia的包管理器才能正常工作。
  2. 安装Windows Management Framework(WMF)3.0版或者更高版本。

若要卸载Julia,只需直接将Julia的安装目录以及工作目录(一般为%HOME%/.julia路径)直接删除,并将%HOME%/.juliarc.jl和%HOME%/.julia_history两个文件同时删除即可。

  • MacOS

Julia支持MacOS 10.8及更新的发行版本,提供的二进制安装包是一个扩展名为dmg的可执行程序,包含了Julia.app目录,可以直接打开执行。

除了二进制安装包,MacOS还可以使用HomeBrew安装Julia环境,执行语句如下:

$ brew update

$ brew tap staticfloat/julia

$ brew install julia

或者采用cask的方式,即:

$ brew cask install julia

在安装完成后,在系统终端中执行

$ julia

即可启动Julia环境。

如果要卸载Julia,只需移除Julia.app目录及~/.julia工作目录,如果不再需要配置文件,可将~/.juliarc.jl文件同时删除即可。

  • Linux及FreeBSD

除了FreeBSD外,Julia还支持的多种Linux发行版本,包括Fedora、RHEL、CentOS、Scientific Linux、Oracle Enterprise Linux、Ubuntu、Debian、openSUSE及Arch Linux等。下载官方通用的tar.gz格式二进制包后,安装并没有特别的执行步骤,解压后便可执行。为了后续的方便,最好是将执行目录添加到系统环境变量中,简单的办法是在/usr/local/bin或/usr/bin目录中建立安装目录中bin/julia可执行文件的软链接(symbolic link),语句一般为:

$ sudo ln -s /bin/julia /usr/local/bin/julia

此后便可无需切换到安装目录或输入完整的路径来执行Julia主程序。

实际上,对于Linux及FreeBSD来说,通过其中的包管理命令安装Julia可能更为方便,而且也能够更便捷地对Julia进行更新。

对于使用RHEL、CentOS、Scientific Linux及Oracle Enterprise Linux(版本5或更高)的用户来说,需要开启操作系统的EPEL(Extra Packages for Enterprise Linux)支持,然后便可与Fedora(版本19或更高)一样,执行下述安装命令:

$ sudo dnf copr enable nalimilan/julia

$ sudo yum install julia

如果使用的是CentOS 7或更高版本,也可直接执行:

$ sudo yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/nalimilan/julia/repo/epel-7 /nalimilan-julia-epel-7.repo

$ sudo yum install julia

若发行版中没有dnf与yum-config-manager,需在Copr网站中下载相关的.repo文件,复制到系统的/etc/yum.repos源管理目录,再次尝试执行安装过程。

每日构建(Nightly Building)是一些系统或程序通常采用的更新方式,如果需要及时跟踪Julia的最新功能,可以通过yum对已经安装的Julia程序进行更新。首先,执行:

$ sudo dnf copr enable nalimilan/julia-nightlies

开启每日更新版本库,执行以下命令时:

$ sudo yum install julia

安装的Julia将是Nightly的最新版本。之后,如果需要更新版本,执行以下命令即可:

$ sudo yum upgrade julia

不过,由于每日构建版本一般是开发过程的每日快照,有些功能后期仍存在修正调整的可能,测试也并不充分,容易存在各种Bug,所以对于普通的使用者来说,使用Nightly版本时还需要谨慎。

对于Ubuntu发行版,采用的是apt包管理器,在发布的最新版本中可通过apt-get命令直接进行安装,相关的包文件包括cantor-backend-julia、julia-common、julia-dbg、julia-doc及libjulia-dev、libjulia0.6等。如果要及时获得Julia的最新开发版本,可以添加Nightly的源,命令如下:

$ sudo add-apt-repository ppa:staticfloat/julianightlies

$ sudo add-apt-repository ppa:staticfloat/julia-deps

$ sudo apt-get update

然后执行安装程序或在需要时执行升级命令。

在FreeBSD系统中同样简单,可通过Ports Collection直接安装Julia程序,执行的安装命令为:

pkg install julia

        如果不再需要Linux或FreeBSD中已经安装的Julia程序,卸载的方式取决于安装的方式。通过apt-get或yum安装时,执行apt-get remove julia或yum remove julia即可。如果二进制下载的方式,移除解压的目录并删除~/.julia目录及~/.juliarc.jl配置文件。

编译安装

        如果想通过源码编译的方式安装Julia程序,在确定这么做之前,我们先了解一下Julia代码所依赖的第三方库,详细如下:

  • LLVM (3.9) 编译器基础库;
  • FemtoLisp 编译器前端;
  • libuv 高性能事件IO库;
  • OpenLibm 以libm为基础的基本数学函数库;
  • OpenSpecFun (>= 0.4) Bessel等特殊函数库;
  • DSFMT 随机数生成库;
  • OpenBLAS 线性代数BLAS加速库;
  • LAPACK (>= 3.5) 线性代数求解及特征值求解等加速库;
  • Intel MKL (可选) 可用于替代OpenBLAS及LAPACK库;
  • AMOS 计算Bessel及Airy函数的扩展库;
  • SuiteSparse (>= 4.1) 基于稀疏矩阵的线性代数库;
  • ARPACK 大稀疏特征值问题的求解库;
  • FFTW (>= 3.3) 快速傅里叶变换库;
  • PCRE (>= 10.00) 与Perl兼容的正则表达式库;
  • GMP (>= 5.0) GNU多精度算术库,用于支持BigInt类型;
  • MPFR (>= 3.0) GNU多精度浮点库,用于支持BigFloat类型;
  • libgit2 (>= 0.23) 版本管理工具Git操作库,用于包管理;
  • curl (>= 7.50) 提供下载及代理支持,用于包管理;
  • libssh2 (>= 1.7) 支持SSH通道;
  • mbedtls (>= 2.2) 加密与TLS支持;
  • utf8proc (>= 2.1)  UTF-8编码支持;
  • libosxunwind 程序调用链(call-chain)支持。 

        这些众多的依赖库会在编译时自动下载,并优先编译。此过程能否顺利,与系统环境、编译环境等都有关系。此外,在编译时,还需要多种编译工具的支持,包括:

  • GNU make 文件依赖构建;
  • gcc & g++ (>= 4.7) 或 Clang (>= 3.1, OS X 系统的Xcode 4.3.3)  C/C++编译与链接工具链;
  • libatomic 原子操作库;
  • python (>=2.7)  用于构建LLVM;
  • gfortran 编译链接Fortran库;
  • perl 对库的头文件进行处理;
  • wget、curl或fetch (FreeBSD) 用于下载外部库;
  • m4 用于构建GMP;
  • awk Makefiles处理工具;
  • patch 源代码文件处理;
  • cmake (>= 3.4.3)及pkg-config 用于构建libgit2库。

        除了要做上述这些诸多的环境准备,还需对一些选项进行恰当的配置。而且,对于Windows平台,还需要安装Cygwin环境及其中的MinGW-w64编译器工具链。

        可见,从源码编译Julia程序并不会是一件轻松愉快的事情,难免会遇到各种问题。所以笔者认为,除非开发需要,例如需要进行平台移植或其他特定情况,最好不要选择编译的方式。因篇幅所限,关于各个平台上的编译过程,本书不做过多赘述,有兴趣的可参见官方资料。

          ------- 节选自本人新书内容:魏坤著《Julia语言程序设计》,机械工业华章图文出版。

你可能感兴趣的:(Julia,语言,Julia语言)