終於啊~有人提供 Dart 語言安裝於 CentOS 的方法了

官方所提供的 Linux 安裝檔其實只能安裝在 UBuntu 最新版的,CentOS 還不行因為 glibc 套件太舊了,所以一直以來我也只能用 Windows 來玩玩 Dart ,不過最近看國外的討論有人提供方法了。

原本的討論串在 : http://code.google.com/p/dart/issues/detail?id=15506

我照著做成功了,我的 CentOS 為 6.5 x86_64 ,應該和我差不多的版本都可以順利安裝才對

以下擷取片段內容,很簡單的照著做就行了,有兩段,第一段為編譯 runtime,第二段是 SDK,如果只需要執行 Dart,只需要做第一段就行了。

編譯 Dart Runtime

建議先隨便建立個暫時路徑,然後於這個暫時路徑做以下操作。

Install Subversion and the required build-tools.
$ sudo yum -y install subversion
$ sudo yum -y install make
$ sudo yum -y install gcc-c++

Get the depot_tools and add them to the path
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
$ export PATH=$PATH:`pwd`/depot_tools

Get the Dart source and generate makefiles
$ gclient config http://dart.googlecode.com/svn/branches/bleeding_edge/deps/all.deps
$ gclient sync
$ gclient runhooks

Build
$ cd dart
$ tools/build.py -mrelease -ax64 runtime

整個過程耗費時間很久,最久的地方在 gclient sync 還有 build.py 那,整個過程在我的機器上完全跑完大概約 30 分鐘。
當跑完最後一行的時候,會發現有一個文件夾叫 out,裡頭有編譯好的版本,名稱叫 ReleaseX64。下以下指令看看就知道了。

[[email protected] dart]# cd out
[[email protected] out]# ls -la
總計 16
drwxr-xr-x  3 root root 4096 2013-12-16 13:53 .
drwxr-xr-x 15 root root 4096 2013-12-16 13:46 ..
-rw-r--r--  1 root root    5 2013-12-16 13:34 lastHooksTargetOS.txt
drwxr-xr-x 10 root root 4096 2013-12-16 13:58 ReleaseX64
[[email protected] out]#

 

編譯 Dart SDK

Building the SDK require OpenJDK 1.6 as well
$ sudo yum install java-1.6.0-openjdk-devel
$ tools/build.py -mrelease -ax64 create_sdk

這段會需要安裝 JDK,上例是 java 1.6 JDK 來編譯的,我個人使用 1.7 版來編譯也是可以的。跑完之後,一樣會放到 out/ReleaseX64 這個資料夾內,會發現多個 dart-sdk,這個 dart-sdk 包含了 dart vm,dart2js 等命令,總之是個完整的開發 dart 所需要的檔案都有了。

測試 Dart

我是直接把 dart-sdk 通通複製到 /usr/local/share 去啦。這樣以後要用隨時能用,並且用 ln -s 去設定常用的命令。如

cp -Rf dart-sdk /usr/local/share
cd /usr/local/bin
ln -s /usr/local/share/dart-sdk/bin/dart
ln -s /usr/local/share/dart-sdk/bin/dart2js

我這麼做,這樣以後就可以直接執行 dart 及 dart2js 了。接著寫一個 Sample Code 試試看。

void main() {
    print("Hello World !");
}

這段世界名句就存成 test.dart ,然後運行看看,應該會如下

[[email protected] tmp]# dart test.dart
Hello World !

正確, 大功告成 !

發表迴響