很久很久以前

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 4 文章 :: 17 評論 :: 0 Trackbacks
          今天打算試試yaws,這是一個使用erlang實現的web服務器,參照blog:
          http://yarivsblog.com/articles/2006/07/12/the-hitchhiker
          首先需要安裝erlang環境,windows和linux下都有,但yaws好像只給了個linux下的安裝文件,于是在ubuntu6.06上安裝。
          從erlang主頁www.erlang.org上下載源碼,編譯步驟:
          tar -xzvf xxx.tar.gz
          cd xxx
          sudo ./configure
          (sudo make clean)#可選的,用于非首次編譯的情況
          sudo make
          sudo make install (as root)
          但configure時出錯:(類似如下)
          configure: error: No curseslibraryfunctions found
          There is a problem with $ERL_TOP/erts/configure not passing the LDFLAGS
          environment variable for test compiles, so ALL library tests fail. I
          modified files $ERL_TOP/erts/aclocal.m4 and $ERL_TOP/configure.in in order
          to locate pthread_create in the standard C runtime library. The
          $ERL_TOP/configure.in produces a configure that works, wheras the
          $ERL_TOP/erts/configure.in does not. At the top of file erts/configure.in:

          AC_PREREQ(2.13)
          AC_INIT(vsn.mk)
          應該是一些curses庫沒有安裝,但apt-get install curses提示找不到,google了一下發現需要安裝
          ncurses-devel包,在網上只找到了相應的rpm包,使用alien命令,將rpm保轉換為deb包安裝:
          sudo apt-get install alien
          sudo?alien?*.rpm,轉成deb后,用dpkg?-i?*.deb
          或者
          sudo?alien?-i?*.rpm
          進行安裝
          (注意,下載rpm包的時候我將包改名了,導致alien時出錯,改成原來的名字就正常了,不知道為什么:P)
          這時候cofigure可以過去了,但make又出錯了,提示erlc找不到,類似如下的錯誤信息:
          erlc -W +debug_info -I../include -o../ebin otp_ring0.erl
          make[4]: erlc: Command not found
          make[4]: ***[../ebin/otp_ring0.beam]Error127
          make[4]: Leaving directory `/usr/src/packages/erlang-10.b.5/lib/kernel/src'
          make[3]: *** [/usr/src/packages/erlang-10.b.5/lib/kernel/ebin/otp_ring0.beam] Error 2
          make[3]: Leaving directory `/usr/src/packages/erlang-10.b.5/erts/emulator'
          make[2]: *** [generate] Error 2
          make[2]: Leaving directory `/usr/src/packages/erlang-10.b.5/erts/emulator'
          make[1]: *** [depend] Error 2
          make[1]: Leaving directory `/usr/src/packages/erlang-10.b.5'
          make: *** [build-stamp] Error 2
          make: *** [debs] Error 2

          看網上有介紹說使用make clean并不完全,
          于是將源碼刪除,重新解壓縮,再configure后,make,沒有提示erlc找不到了,又有提示類似如下的錯誤信息:
          > otp_src_R11B-1/lib/kernel/ebin/erlang.beam > i686-pc-linux-gnu/preload.c
          > m4 -DTARGET=i686-pc-linux-gnu -DOPSYS=linux -DARCH=x86 hipe/
          > hipe_x86_asm.m4 > i686-pc-linux-gnu/opt/plain/hipe_x86_asm.h
          > /bin/sh: m4: command not found
          > make[2]: *** [i686-pc-linux-gnu/opt/plain/hipe_x86_asm.h] Error 127
          > make[2]: Leaving directory `/home/jhancock/otp_src_R11B-1/erts/emulator'
          > make[1]: *** [generate] Error 2
          > make[1]: Leaving directory `/home/jhancock/otp_src_R11B-1/erts/emulator'
          > make: *** [depend] Error 2
          這是m4包沒有找到(http://www.erlang.org/pipermail/erlang-questions/2006-November/023942.html)
          安裝m4包后,繼續make出現如下錯誤:
          hipe/hipe_mkliterals.c:351: error: 'X86_LEAF_WORDS' undeclared here (not in a function)
          hipe/hipe_mkliterals.c:352: error: 'X86_NR_ARG_REGS' undeclared here (not in a function)
          網上搜索結果:http://forum.trapexit.org/viewtopic.php?t=6815
          將源碼刪除,再解壓縮 再make終于過去了
          提示:如下的包最好是在erlang安裝之前就安裝好的: perl, debhelper (>= 4.0.0), autoconf (>= 2.50), openssl, libssl-dev, m4, libncurses5-dev, dpatch, autotools-dev, unixodbc-dev
          make過程大概有1個小時,之后是make install很快。
          打開終端,輸入erl,出現提示符1>
          后面將yaws的安裝和使用
          yaws的安裝挺簡單的,主要是他的編譯是基于erlang的。
          需要注意的是,安裝好后,如果沒有安裝相應的ssl模塊的話,需要更改一下conf文件,將其中關于ssl的部分注釋掉,既如下部分:
          <server xxx>
          ????? ....
          ??? ??? ? <ssl>
          ??? ?? ?? ?? ?? ...
          ??? ?? ?? </ssl>
          </server>
          在windows下的安裝,在yaws的主頁上有說明,需要下載一個bat文件,不過這個文件好像有問題,需要將一些安裝的環境變量改一下,在(SET ERLC_FLAGS=)這行之后添加:
          SET ProgramFiles=G:\erlang\yaws\yaws_program
          SET HOME=G:\erlang\yaws\yaws_data
          SET APPDATA=G:\erlang\yaws\yaws_configure
          ProgramFiles 為yaws的程序位置,HOME為yaws的數據位置,包括www,log,wiki,ssl等,APPDATA為yaws的配置位置。
          如果使用默認安裝參數的話,需要將IF NOT DEFINED ProgramFiles SET ProgramFiles="c:\Program Files"和
          HOME="%HOMEDRIVE%%HOMEPATH%\My Documents"中的雙引號去掉(感覺這個bat文件寫的比較亂)
          同時不要忘了,在安裝好之后注釋掉conf文件中關于ssl的部分。
          安裝好后,默認就可以在%home/www目錄或者/tmp(windows下為%home%\www? or C:\tmp)目錄添加yaws文件(ehtml)來顯示了。
          btw:如果在ubuntu or debian上安裝,最簡單,只要apt-get install yaws 就可以了。運行yaws需要root權限。
          posted on 2007-01-18 23:22 Long Long Ago 閱讀(4465) 評論(2)  編輯  收藏 所屬分類: others

          評論

          # re: erlang和yaws 2007-04-18 09:29 jackyz
          我在這里有一篇,通過 cean 來安裝,可以供你參考:http://erlang-china.org/start/cean-install.html

          此外,我們建立了 cean 的中國鏡像:
          http://erlang-china.org/news/anncean-repo-mirror.html

          CEAN 安裝的 yaws 有點問題,解決方法是(win):
          http://erlang-china.org/news/anncean-repo-mirror.html

            回復  更多評論
            

          # re: erlang和yaws 2007-04-19 10:15 Long Long Ago
          @jackyz
          登陸不上去  回復  更多評論
            

          主站蜘蛛池模板: 石狮市| 格尔木市| 元氏县| 渑池县| 昭平县| 平原县| 永修县| 二手房| 尼勒克县| 通江县| 钦州市| 通许县| 贡山| 穆棱市| 鄄城县| 延长县| 阿克苏市| 开平市| 磴口县| 曲阜市| 井研县| 清水县| 兰州市| 佛教| 巨鹿县| 宝山区| 密山市| 福建省| 偃师市| 盘锦市| 拜城县| 永善县| 郓城县| 外汇| 大冶市| 讷河市| 淳化县| 沭阳县| 临西县| 白水县| 皮山县|