Windows環(huán)境下編譯Flink文檔

環(huán)境準備

  1. 安裝Docker for Windows

    安裝方法可以參考Docker官方文檔诞丽,跟著文檔一步一步走應該沒什么問題的胡嘿,我的是win10 家庭版的

  2. 安裝Cygwin

    直接到官網下載安裝即可:cygwin

  3. 下載flink源碼

    git clone https://github.com/shizhengchao/flink.git讶泰,因為我fork到我自己的倉庫,所以用的是我自己的地址狠裹,以便后面為社區(qū)做貢獻

開始編譯

  1. 打開Cygwin,進到flink/docs目錄下執(zhí)行 ./docker/run.sh命令

    $ ./docker/run.sh
    
  2. 如果上面的命令執(zhí)行成功蒿涎,那么應該是進入到了docker容器內部汛聚,在容器內部找到對應的flink目錄,執(zhí)行build_docs.sh腳本

    $ ./build_docs.sh -p
    
  3. 如果以上步驟都沒有問題畅买,那么會出現如下信息:

    -------------------------------------------------------------------------------------
    Configuration file: /opt/flink/_config.yml
                Source: /opt/flink
           Destination: /opt/flink/content
     Incremental build: disabled. Enable with --incremental
          Generating...
                        done in 106.278 seconds.
     Auto-regeneration: enabled for '/opt/flink'
        Server address: http://0.0.0.0:4000/
      Server running... press ctrl-c to stop.
    

    瀏覽器中輸入:localhost:4000并闲,就可以看到編譯后的文檔了,可以切換中英文谷羞。

問題匯總

基本上在windows環(huán)境下帝火,按照上面的操作是成功不了的,以下是我遇到的幾個問題:

  1. $'\r': command not found
    cygwin中輸入 cd; pwd

    cd; pwd
    

    然后編輯.bash_profile湃缎,在末尾加上如下內容犀填,重啟cygwin

    export SHELLOPTS
    set -o igncr
    
  2. windows用戶名是數字引發(fā)的問題

    groupadd: '0229' is not a valid group name
    

    導致這個問題的原因是我的windows用戶是數字(公司的電腦,用戶是工號)嗓违,在run.sh中把 username改成英文名就行了九巡,隨便一個,我的是shizc, 在run.sh改成如下內容:

    if [ "$(uname -s)" == "Linux" ]; then
      USER_NAME=${SUDO_USER:=$USER}
      USER_ID=$(id -u "${USER_NAME}")
      GROUP_ID=$(id -g "${USER_NAME}")
    else # boot2docker uid and gid
      USER_NAME='shizc'
      USER_ID=$(id -u)
      GROUP_ID=$(id -g)
    fi
    
  3. cgywin中的磁盤目錄掛載不了到docker容器中蹂季,報如下錯誤:

    the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'
    

    這個問題冕广,網上給出的方案是在docker前面加上 winpty的命令疏日,但是在我這不生效,識別不了winpty命令撒汉。在執(zhí)行run.sh的時候沟优,如果沒有成功,會打印出執(zhí)行的腳本語句:

    docker run -it --rm=true -w /cygdrive/d/java/flink/flink/docs/docker/.. -u shizc -v /cygdrive/d/java/flink/flink/docs/docker/..:/cygdrive/d/java/flink/flink/docs/docker/.. -p 4000:4000 flink/docs-shizc bash -c '
    echo
    echo '\''Welcome to Apache Flink docs'\''
    echo '\''To build, execute'\''
    echo '\''  ./build_docs.sh'\''
    echo '\''To watch and regenerate automatically'\''
    echo '\''  ./build_docs.sh -p'\''
    echo '\''and access http://localhost:4000'\''
    echo
    bash
    '
    the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'
    

    如上睬辐。把docker run 那段內容拷貝到powershell里執(zhí)行, 并且修改成windows的目錄格式 挠阁,如下:

    docker run -it --rm=true -w /opt/flink/docs/docker/.. -u shizc -v d:/java/flink/flink/docs/docker/..:/opt/flink/docs/docker/.. -p 4000:4000 flink/docs-shizc bash
    

    如果報the working directory 'xxx is invalid, 則可以把-w xxxx,這段內容去掉溯饵,也就是不指定工作目錄侵俗,也是可以的。

  4. 在powershell里執(zhí)行后丰刊,會進入docker容器隘谣,然后在容器中運行 build_docs.sh腳本,如下:

    [shizc@5a9b5474c0b3 docs]$ ./build_docs.sh -p
    

    不出意外藻三,第一次執(zhí)行的話會報:No such file or directory洪橘,這個是因為腳本不是unix格式:

    首先用vim打開 build_docs.sh文件,然后 shift + :打開命令模式棵帽,輸入 set ff , 回車熄求,出現如下信息

    fileformat=dos
    

    可以看到 fileformat是dos格式,再次進入命令模式輸入: set ff=unix逗概,保存并退出vim 弟晚,再次執(zhí)行build_docs.sh腳本。如果出現如下信息逾苫,則編譯成功:

    Bundle complete! 9 Gemfile dependencies, 39 gems now installed.
    Bundled gems are installed into `./.rubydeps`
    Configuration file: /opt/flink/docs/_config.yml
                Source: /opt/flink/docs
           Destination: /opt/flink/docs/content
     Incremental build: disabled. Enable with --incremental
          Generating...
                        done in 109.813 seconds.
     Auto-regeneration: enabled for '/opt/flink/docs'
        Server address: http://0.0.0.0:4000/
      Server running... press ctrl-c to stop.
    

恭喜你已經完成了將為社區(qū)做貢獻的第一步卿城,打開瀏覽器,輸入localhost:4000铅搓,看下哪些文檔還沒被翻譯成中文的瑟押,趕緊到flink官方jira上提issue, 然后開始你的第一個 pr。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末星掰,一起剝皮案震驚了整個濱河市多望,隨后出現的幾起案子,更是在濱河造成了極大的恐慌氢烘,老刑警劉巖怀偷,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異播玖,居然都是意外死亡椎工,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來维蒙,“玉大人掰吕,你說我怎么就攤上這事∧疚鳎” “怎么了畴栖?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長八千。 經常有香客問我,道長燎猛,這世上最難降的妖魔是什么恋捆? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮重绷,結果婚禮上沸停,老公的妹妹穿的比我還像新娘。我一直安慰自己昭卓,他們只是感情好愤钾,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著候醒,像睡著了一般能颁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倒淫,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天伙菊,我揣著相機與錄音,去河邊找鬼敌土。 笑死镜硕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的返干。 我是一名探鬼主播兴枯,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼矩欠!你這毒婦竟也來了财剖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晚顷,失蹤者是張志新(化名)和其女友劉穎峰伙,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體该默,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡瞳氓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匣摘。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡店诗,死狀恐怖,靈堂內的尸體忽然破棺而出音榜,到底是詐尸還是另有隱情庞瘸,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布赠叼,位于F島的核電站擦囊,受9級特大地震影響,放射性物質發(fā)生泄漏嘴办。R本人自食惡果不足惜瞬场,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涧郊。 院中可真熱鬧贯被,春花似錦、人聲如沸妆艘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽批旺。三九已至幌陕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朱沃,已是汗流浹背苞轿。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逗物,地道東北人搬卒。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像翎卓,于是被迫代替她去往敵國和親契邀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359