• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            深入體驗bash on windows,在windows上搭建原生的linux開發環境,酷!

            轉載自:https://segmentfault.com/a/1190000006175018

            今年微軟Build 2016大會最讓開發人員興奮的消息之一,就是在Windows上可以原生運行Linux bash,對開發人員來說,這是一個喜聞樂見的消息。

            1 安裝

            你必須安裝開發者預覽版本,才能使用windows的linux subsystem功能。

            1. 首先打開你的Windows 10的設置,在"更新和安全"選項中(我的機器是英文操作系統,但中文操作系統類似),選擇"開發者",然后選擇"開發者模式":

            2. 在Windows 更新和安全選項中,選擇"Windows 更新",在"更新設置"中選擇高級選項,你必須打開"內部預覽版本"選項,并且將內部預覽的級別設置為最快:

            3. 在"設置"->"系統"選項中,查看當前系統信息,你的OS版本必須是14316,如果不是這個版本,請運行在線升級,升級到這個版本:

            4. 升級完成后,打開"控制面板"-》"程序",選擇"打開或者關閉Windows特性",找到Windows Subsystem for Linux(beta)點選并確定,系統會下載更新并提示重啟機器:

            5. 重啟完成后,進入命令行程序,激動人心的時刻來臨了,在命令行下敲bash,會提示你是否繼續,選擇yes,系統會安裝Ubuntu文件系統等待完成后,系統會切換到你熟悉的Linux bash模式,試試你熟悉的ls等命令:

            6. 打開Windows菜單,你會發現系統中多了一個Ubuntu的圖標,這個就是bash on Ubuntu on Windows:

            7. 簡單測試一下python,perl等語言,發現已經裝好了,當然,這個就是Ubuntu的bash,你可以安裝Java,Ruby等等:

            下面來實際測試下ubuntu on windows環境!

            2 系統檢測和更新

            2.1 版本檢測

            運行 uname -a 結果如下

            webmaster@FEKETERIGO-PC:~$ uname -a
            Linux FEKETERIGO-PC 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
            webmaster@FEKETERIGO-PC:~$

            運行 lsb_release -a 結果如下

            webmaster@FEKETERIGO-PC:~$ lsb_release -a
            No LSB modules are available.
            Distributor ID: Ubuntu
            Description:    Ubuntu 14.04.4 LTS
            Release:        14.04
            Codename:       trusty

            可以看到,安裝的是ubuntu 14.04 trusty

            2.2 系統更新

            既然是ubuntu,就可以使用apt-get進行軟件包管理。

            首先替換自帶的更新源

            sudo mv /etc/apt/sources.list /etc/apt/sources.list.save

            把下面的阿里源內容粘貼到 /etc/apt/sources.list

            deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
            
            deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
            
            deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
            
            deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
            
            deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
            
            deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
            
            deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
            
            deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
            
            deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
            
            deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

            你也可以使用163源等,選取原則是更新速度,目前測試的情況是阿里云的源更新速度最快。

            接著運行下面的命令進行系統更新,如果速度很慢的話請嘗試使用其他的源,另外ubuntu的源是版本相關的,注意別添加錯誤版本的源。

            sudo apt-get update
            sudo apt-get upgrade

            使用sudo命令之前可以運行 passwd 更新當前用戶的命令, bashonwindows默認運行在用戶模式,
            windows會把當前用戶添加到sudoer列表中,如果想切換到超級管理員,需要手動輸入su -

            3 搭建開發環境

            3.1 使用apt和ppa repository安裝git

            ubuntu trusty默認的git版本是1.9.1

            如果你不想使用git最新版本的話可以運行sudo apt-get install git 直接安裝

            如果想安裝最新的git版本參考下面的命令

            sudo add-apt-repository ppa:git-core/ppa
            sudo apt-get update
            sudo apt-get install git

            sudo add-apt-repository ppa:git-core/ppa 會在/etc/apt/sources.list.d 目錄下面生成一個
            git-core-ppa-trusty.list文件,然后運行sudo apt-get update 的時候會從相應的倉庫里面獲取新
            的git版本信息。

            由于每個人的網絡環境不一樣, 如果你更新失敗,使用apt-get不能安裝最新版本的git的話,請到github上面下載源碼進行編譯安裝,過程也很簡單
            這里就不寫源碼編譯教程了, git源碼點擊 這里

            3.2 使用pyenv搭建python開發環境

            命令如下

            sudo apt-get install curl
            curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
            pyenv install 2.7.11
            pyenv install 3.5.1
            pyenv shell 3.5.1

            python的2.x和3.x版本不兼容,所有把兩個版本多安裝到本地,方便需要的時候進行版本切換,使用命令pyenv shell 2.7.11
            指定當前的python版本。上面的命令指定的python版本是3

            python的另一個有用的工具是virtualenv,它和pyenv都能實現python版本的切換,不過實現的方法卻大相徑庭。
            pyenv在用戶模式下安裝多個版本python,但是每一個python版本的包依賴還是安裝的同一個位置,它不能解決兩個項目中引用
            同一個庫有版本沖突,但是viertualenv可以。

            virtualenv給每一個python項目安裝一個項目內部python,具體版本可以在初始化的時候指定,項目的依賴也是安裝在內部python的路徑下面,這樣能防止和系統上其他python項目的依賴沖突, 隔離性更高,不好的地方是安裝和使用略微復雜。

            具體使用哪個工具看個人喜好,github上面pyenv的關注度要高點,而且現在pyenv有一個virtualenv插件,可以使用后者同樣的功能,我個人還是推薦使用pyenv。

            3.3 使用rvm安裝ruby

            curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ruby
            rvm install 2.3.1
            bash --login
            rvm use ruby-2.3.1

            具體命令輸入rvm help,很好掌握。

            3.4 使用gvm安裝go語言

            curl -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer | bash
            gvm install go1.6
            gvm use go1.6 --default

            由于hugo是使用go語言開發的,趁著這個機會向學習一些這個由google開發的編程語言,本博客就是使用
            hugo搭建的,服務器使用firebase,firebase提供和github pages一樣的免費靜態服
            務器的功能,穩定性比github要好,github在國內的訪問速度實在不能再慢了,特別是在clone大一點的項目的時候。

            go語言開發的程序有一個好處就是沒有運行時依賴,打包成exe就能直接運行,簡單方便,更多的內容以后再更新吧,這里集中在開發環境搭建這個主題上面。

            3.5 使用nvm安裝nodejs

            curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh | bash
            nvm install v6.2.0
            nvm use v6.2.0

            node.js可以說是從2015年以來最火的語言了,node.js是后端工程師轉向前端最好的工具,博主一起就是java后端開發工程師,偶然的機會
            學習了node.js,然后開始了自己的前端工程師的進化之路,目標是全棧工程師。

            node.js還有一個npm包n可以用來進行版本管理,不過你需要先安裝一個node.js才能使用npm install -g n安裝這個工具

            nnvm都很好用,你可以隨便選擇一個,也可以兩個都安裝,他們之間沒有沖突,可以共存。

            這里注意一下,如果你使用的是 windows build 14352 的話,使用nvm安裝nodejs可能會出現錯誤,詳情參見這里
            我安裝的時候是出現問題,但是又沒有看到其他人遇到這個問題,如果你安裝的windows預覽版是比14352更新的版本的話,你可以自己測試下

            3.6 安裝gcc工具鏈

            sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
            wget curl llvm libncurses5-dev libncursesw5-dev

            這些工具不僅僅是c和c++開發者才會用到,如果你開發一個node.js native模塊,你也需要這些工具。

            3.7 安裝nginx

            sudo apt-get install python-software-properties sudo add-apt-repository ppa:nginx/stable
            sudo apt-get update
            sudo apt-get install nginx

            和安裝git的時候一樣,這里通過添加nginx的第三方repository,實現apt-get方式安裝nginx最新版本,比源碼編譯安裝方式在管理上還是要方便一點。

            3.8 使用shell安裝rust-lang

            安裝命令,非常簡單

            curl -sSf https://static.rust-lang.org/rustup.sh | sh

            rust是和node.js一樣熱門的新星編程語言,不過和node.js不同,rust不是一款前端領域的編程語言,而是一款系統編程語言。

            rust的有點是安全、高并發,吸收了大量現代高級編程語言的有點,極力避免現有編程語言的各種缺點,讓我印象最深刻的一個特性是
            rust的垃圾回收機制,

            最開始的時候rust也是使用類似java語言的garbage collector方式實現垃圾回收,后來受不了gc的運行時性能損耗,自己實現了一套更高效的垃圾回收機制,極大的提高的系統穩定性和性能。

            而且在rust在1.0的時候已經實現了自舉(自己編譯自己),后面版本的rust都是使用rust自己編譯出來的,包括編譯器。

            唯一不好的地方是rust語言為了最大程度的幫助開發人員避免犯錯誤,采用了極其復雜的語法,對于剛開始學習編程語言的人來說,不建議學習rust,因為rust的學習曲線非常陡峭,入門語言選擇c或者java都是不錯的。

            4 最后總結

            雖然這篇文章沒有講一些高深的內容(水平有限), 但是還是總結一些。

            4.1 關于包管理

            不管是操作系統,linux、mac、windows,還是編程語言,java、node.js、rust,流行的趨勢是自帶包管理工具

            linux 有apt,centos有yum,mac有brew,windows目前沒有,不排除以后不會有,win10應用商店已經有了,估計應用管理工具也不好很遠了吧,目前已經有一個第三方的10AppsManager了。

            java沒有自帶的包管理工具,但是maven,node.js有npm,rust有cargo。

            使用包管理工具能幫助開發者解決很多的問題,例如版本管理,依賴管理,甚至軟件發布都可以使用包管理工具來完成,node.jsd的包就是使用npm進行發布的。

            所以我覺得自帶包管理工具應該是以后編程語言的趨勢,這方面做得最差的是java,從make到ant到ivy再到maven再到gradle,java的包
            管理是最復雜的,如果是心學習java的推薦學習gradle,gradle還能用來打包android項目,是目前最優秀的工具。

            另外操作系統的包管理工具比編程語言又更悠久的歷史,幾乎每一個類linux操作系統都有自己的包管理工具。

            4.2 版本管理

            軟件版本管理

            每一個軟件都會進行版本迭代,有時候進行版本更新的時候又會有broken update,為了方便實現版本切換,現在很多編程語言
            都提供了版本管理工具(第三方的),所以我在想能不能把這個功能添加在編程語言上面,簡而言之就是編程語言能自帶一個版本管理
            工具(就像自帶包管理工具一樣),這樣能更快的實現版本切換。

            4.3 以開發人員為中心

            隨著windows開始各種拉攏開發人員和軟件工程師隊伍的壯大,我認為以開發人員為中心的時代,廣大開發人員的春天就要到來了.

            posted on 2016-12-17 13:11 楊粼波 閱讀(1356) 評論(1)  編輯 收藏 引用

            評論

            # re: 深入體驗bash on windows,在windows上搭建原生的linux開發環境,酷! 2016-12-19 17:11 楊粼波

            Ubuntu16.04LTS 阿里云源

            deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
            deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
            deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
            deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
            ##測試版源
            deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
            # 源碼
            deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
            deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
            ##測試版源
            deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
            # Canonical 合作伙伴和附加
            deb http://archive.canonical.com/ubuntu/ xenial partner
            deb http://extras.ubuntu.com/ubuntu/ xenial main  回復  更多評論   

            国产成人精品久久二区二区| 日韩精品久久久久久久电影| 亚洲精品国产第一综合99久久| 国产一区二区精品久久| 亚洲国产精品无码久久一区二区| 一极黄色视频久久网站| 久久人人爽人爽人人爽av| 色综合色天天久久婷婷基地| 国产成人精品白浆久久69| 99久久精品午夜一区二区| 久久99国产精品一区二区| 国产A级毛片久久久精品毛片| 一本一道久久精品综合| 久久久精品人妻无码专区不卡 | 亚洲欧洲久久av| 国产亚洲精久久久久久无码77777| 狠狠色狠狠色综合久久| 久久精品国产亚洲AV电影| 日本精品久久久久中文字幕8| 久久97久久97精品免视看秋霞| 青青草原综合久久大伊人导航| 怡红院日本一道日本久久 | 亚洲精品无码久久千人斩| 国内精品综合久久久40p| 久久夜色精品国产噜噜麻豆| 精品综合久久久久久97超人 | 成人国内精品久久久久影院| 亚洲狠狠久久综合一区77777| 久久人搡人人玩人妻精品首页| 中文字幕人妻色偷偷久久| 91麻豆精品国产91久久久久久| 久久精品极品盛宴观看| 免费国产99久久久香蕉| 久久精品亚洲AV久久久无码| 青青热久久综合网伊人| 亚洲va中文字幕无码久久| 99久久婷婷国产一区二区| 久久精品国产亚洲AV忘忧草18 | 久久精品国产亚洲av麻豆小说| 久久久精品国产Sm最大网站| 久久久久女人精品毛片|