[[PageOutline]] = hadoop4win 開發筆記 = = 0.1.4 版 = * 0.1.4 新版想加入的功能 * 更新 Hadoop、HBase 版本 * NSIS 安裝檔 * [文件] [http://omega.idv.tw/nsis/Contents.html NSIS 繁體中文版說明文件] * 在 Debian / Ubuntu 系列有 nsis 的套件,只是需要學習怎麼使用。 {{{ ~$ sudo apt-get install nsis }}} == 2010-12-21 == * 學習使用 EclipseNSIS * [限制] 目前 EclipseNSIS 並不支援 Linux - [http://sourceforge.net/tracker/?func=detail&aid=1792092&group_id=116143&atid=673852 開發者覺得工程浩大,暫時不會改]。 * [結論] 光安裝就有點麻煩,得先裝 Eclipse 3.5 sr1 版本,然後還有 NSIS 、EclipseNSIS Plugin 要裝。若只是要產生安裝檔,似乎有點工程太大。加上仔細看了一下介紹,似乎都要寫 NSIS Script 腳本,EclipseNSIS 只是多了 !InstallOption 的介面設計工具罷了。所以還是改用指令好了~ * 在 Ubuntu 10.04 底下測試 NSIS 指令 - 其實只要找對範例程式,也不難寫啦~drbl-winroll 應該是用 nsExec 寫的。 {{{ ~$ sudo apt-get install nsis ~$ cp /usr/share/doc/nsis/Examples/nsExec/test.nsi . ~$ makensis test.nsi ... 略 ... Processed 1 file, writing output: Adding plug-ins initializing function... Done! Processing pages... Done! Removing unused resources... Done! Generating language tables... Done! Output: "nsExec Test.exe" Install: 2 pages (128 bytes), 3 sections (3144 bytes), 46 instructions (1288 bytes), 47 strings (946 bytes), 1 language table (198 bytes). Datablock optimizer saved 8092 bytes (~13.4%). Using zlib compression. EXE header size: 48128 / 50688 bytes Install code: 987 / 6032 bytes Install data: 4046 / 27660 bytes CRC (0x93CB145C): 4 / 4 bytes Total size: 53165 / 84384 bytes (63.0%) }}} * 如果要設計網路安裝版,倒也可以用 [http://nsis.sourceforge.net/Builtin_NSISdl_plug-in NSISdl] 這個 plugin 來開發。簡單寫一個測試範例,還算蠻簡單的。(注意:底下用 \$ 是為了配合 cat 語法,若直接貼程式碼請拿掉!) {{{ ~$ cat > NSISdl.nsi << EOF Name "NSISdl Plugin Test" OutFile "NSISdl.exe" ShowInstDetails show Section "Download Hadoop" NSISdl::download /TIMEOUT=30000 http://ftp.twaren.net/Unix/Web/apache//hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz hadoop-0.20.2.tar.gz Pop \$0 StrCmp \$0 "success" +3 MessageBox MB_OK "Download failed: \$0" Quit SectionEnd EOF ~$ makensis NSISdl.nsi }}} * 產生出來的 NSISdl.exe 在 Windows 7 上執行的結果如下圖: * [[Image(10-12-21_NSISdl_complete.png)]] * [[Image(10-12-21_NSISdl_result.png)]] * [文件] 多重使用者身份問題:README.!MultiUser.gz 這個文件說明了 NSIS 幫忙判斷使用者是否具備 Admin 或 !PowerUser 權限的寫法。而 README.StartMenu 則說明了怎麼產生在開始選單的 {{{ ~$ zcat /usr/share/doc/nsis/README.MultiUser.gz | less ~$ less /usr/share/doc/nsis/README.StartMenu }}} = 0.1.5 版 = * 0.1.5 新版想加入的功能 * 整合 Eclipse 開發工具