我們注冊(cè)騰訊云賬號(hào)之后,進(jìn)入系統(tǒng),選擇創(chuàng)建服務(wù)器
創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供北林企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為北林眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)的建站公司優(yōu)惠進(jìn)行中。
系統(tǒng)選擇的話(huà),建議選擇Centos6系統(tǒng),Centos7系統(tǒng)的話(huà),網(wǎng)上文檔相對(duì)較少,然后選擇Linux系統(tǒng)的原因是Linux系統(tǒng)速度較快,而且安全性較好,不過(guò)難配置點(diǎn)
學(xué)生認(rèn)證的話(huà),會(huì)員64元的代金卷,所以可以實(shí)現(xiàn)¥1/月
創(chuàng)建過(guò)程需要注意的是,先要?jiǎng)?chuàng)建秘鑰,Linux系統(tǒng)選擇22端口哦
創(chuàng)建好之后,還要選擇默認(rèn)安全組放通全部端口,因?yàn)槲覀円罱↗ava、PHP開(kāi)發(fā)環(huán)境,沒(méi)有這樣做的話(huà),你訪(fǎng)問(wèn)的時(shí)候就好出現(xiàn)不可以訪(fǎng)問(wèn)的情況,之后,我再寫(xiě)騰訊云Linux系統(tǒng)PHP開(kāi)發(fā)環(huán)境搭建的博客
以上是搭建騰訊云Linux服務(wù)器(Centos6)入門(mén)教程的內(nèi)容,網(wǎng)頁(yè)鏈接學(xué)習(xí)linux更多操作
Go語(yǔ)言在Centos下的安裝: 注意,以下命令需要以root身份,或者sudo運(yùn)行。 說(shuō)明,如果要自定義安裝位置的話(huà),需要配置GOROOT環(huán)境變量,所以這里我們采用默認(rèn)的目錄進(jìn)行安裝,就可以不配置GOROOT環(huán)境變量了。
1.1 Go 安裝
Go的三種安裝方式
Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見(jiàn)的安裝方式:
Go源碼安裝:這是一種標(biāo)準(zhǔn)的軟件安裝方式。對(duì)于經(jīng)常使用Unix類(lèi)系統(tǒng)的用戶(hù),尤其對(duì)于開(kāi)發(fā)者來(lái)說(shuō),從源碼安裝可以自己定制。
Go標(biāo)準(zhǔn)包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統(tǒng)。這種方式適合快速安裝,可根據(jù)自己的系統(tǒng)位數(shù)下載好相應(yīng)的安裝包,一路next就可以輕松安裝了。**推薦這種方式**
第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應(yīng)系統(tǒng)的用戶(hù)。
最后,如果你想在同一個(gè)系統(tǒng)中安裝多個(gè)版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。
Go源碼安裝
在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫(xiě)的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。
在Mac系統(tǒng)中,只要你安裝了Xcode,就已經(jīng)包含了相應(yīng)的編譯工具。
在類(lèi)Unix系統(tǒng)中,需要安裝gcc等工具。例如Ubuntu系統(tǒng)可通過(guò)在終端中執(zhí)行sudo apt-get install gcc
libc6-dev來(lái)安裝編譯工具。
在Windows系統(tǒng)中,你需要安裝MinGW,然后通過(guò)MinGW安裝gcc,并設(shè)置相應(yīng)的環(huán)境變量。
你可以直接去官網(wǎng)下載源碼,找相應(yīng)的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:
cd go/src
./all.bash
運(yùn)行all.bash后出現(xiàn)"ALL TESTS PASSED"字樣時(shí)才算安裝成功。
上面是Unix風(fēng)格的命令,Windows下的安裝方式類(lèi)似,只不過(guò)是運(yùn)行all.bat,調(diào)用的編譯器是MinGW的gcc。
如果是Mac或者Unix用戶(hù)需要設(shè)置幾個(gè)環(huán)境變量,如果想重啟之后也能生效的話(huà)把下面的命令寫(xiě)到.bashrc或者.zshrc里面,
export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin
如果你是寫(xiě)入文件的,記得執(zhí)行bash .bashrc或者bash
.zshrc使得設(shè)置立馬生效。
如果是window系統(tǒng),就需要設(shè)置環(huán)境變量,在path里面增加相應(yīng)的go所在的目錄,設(shè)置gopath變量。
當(dāng)你設(shè)置完畢之后在命令行里面輸入go,看到如下圖片即說(shuō)明你已經(jīng)安裝成功
圖1.1 源碼安裝之后執(zhí)行Go命令的圖
如果出現(xiàn)Go的Usage信息,那么說(shuō)明Go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。
關(guān)于上面的GOPATH將在下面小節(jié)詳細(xì)講解
Go標(biāo)準(zhǔn)包安裝
Go提供了每個(gè)平臺(tái)打好包的一鍵安裝,這些包默認(rèn)會(huì)安裝到如下目錄:/usr/local/go
(Windows系統(tǒng):c:\Go),當(dāng)然你可以改變他們的安裝位置,但是改變之后你必須在你的環(huán)境變量中設(shè)置如下信息:
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
上面這些命令對(duì)于Mac和Unix用戶(hù)來(lái)說(shuō)最好是寫(xiě)入.bashrc或者.zshrc文件,對(duì)于windows用戶(hù)來(lái)說(shuō)當(dāng)然是寫(xiě)入環(huán)境變量。
在編譯docker代碼之前肯定需要研究一下docker的代碼結(jié)構(gòu)以及官方推薦的方式,因?yàn)閐ocker是開(kāi)源的,所以很多第三方開(kāi)發(fā)者參與。那么官方肯定會(huì)給出開(kāi)發(fā)環(huán)境搭建的文檔,所以拿到代碼肯定先研究官方的編譯方法。通過(guò)文檔和代碼了解到docker官方推薦的是在docker本身的容器里面搭建環(huán)境和編譯,官方給出的是一個(gè)基于ubuntu的dockerfile。不過(guò)正是這個(gè)dockerfile可以清楚的知道需要為了編譯準(zhǔn)備哪些依賴(lài)環(huán)境,為我們后面自己編譯提供了環(huán)境搭建的基礎(chǔ)。然后就嘗試了官方的編譯方案,結(jié)果各種網(wǎng)絡(luò)問(wèn)題導(dǎo)致編譯通不過(guò),當(dāng)然網(wǎng)上也有相應(yīng)的解決方案,基本上就是替換一些依賴(lài)源(國(guó)外的被墻了)。但是就算編譯通過(guò)了也只是一個(gè)基于ubuntu的二進(jìn)制文件,只能在ubuntu的相應(yīng)的系統(tǒng)上運(yùn)行。我們需要的是一個(gè)可以在centos7上運(yùn)行的二進(jìn)制文件,關(guān)鍵要搭建一個(gè)可以持續(xù)開(kāi)發(fā)和編譯測(cè)試的環(huán)境。當(dāng)然也可以制作一個(gè)centos7的dockerfile文件,對(duì)照著官方的ubuntu的dockerfile也很簡(jiǎn)單。但是這些都是還需要有一個(gè)前提,就是需要先安裝一個(gè)以前版本的docker來(lái)啟動(dòng)這個(gè)環(huán)境澀,好處也是杠杠的,可以在任何一臺(tái)能夠運(yùn)行docker的系統(tǒng)上進(jìn)行開(kāi)發(fā)和測(cè)試,而且可以進(jìn)行持續(xù)集成。不過(guò)對(duì)于我們來(lái)說(shuō)能夠編譯出一個(gè)穩(wěn)定運(yùn)行在centos7上的二進(jìn)制文件即可,所以就嘗試直接在本地進(jìn)行編譯,而不是通過(guò)docker的容器進(jìn)行。
經(jīng)過(guò)研究docker的官方編譯腳步,發(fā)現(xiàn)本地編譯也很簡(jiǎn)單,只需要在docker源碼的目錄下執(zhí)行如下命令即可:
./hack/make.sh binary
上面這條命令就只會(huì)生成docker的二進(jìn)制文件,不過(guò)肯定不會(huì)這么順利的,執(zhí)行這個(gè)命令你就會(huì)發(fā)現(xiàn)錯(cuò)誤。如果第一次執(zhí)行報(bào)的錯(cuò)誤應(yīng)該是找不到相應(yīng)的go依賴(lài)包。那么現(xiàn)在就開(kāi)始解決第一個(gè)問(wèn)題,go依賴(lài)包。
解決go依賴(lài)包最直接的方法就一個(gè)一個(gè)去github或者其他地方去下載到本地,但是這樣做很麻煩,docker依賴(lài)的go語(yǔ)言包很多,然后依賴(lài)包可能又依賴(lài)其他包。這里有一個(gè)簡(jiǎn)單實(shí)用的辦法,也是go語(yǔ)言管理項(xiàng)目的方便之處。通過(guò)go get命令來(lái)自動(dòng)下載,例如發(fā)現(xiàn)報(bào)錯(cuò)的是docker某一個(gè)目錄下的依賴(lài)包,那么可以如下執(zhí)行:
go get -v ./src/github.com/docker/docker/...
這條命令執(zhí)行以后整個(gè)docker目錄下源文件依賴(lài)的包都會(huì)被自動(dòng)下載。如果發(fā)現(xiàn)其他目錄下源文件也報(bào)同樣的錯(cuò)誤,可以按照次方法解決。不過(guò)這里需要強(qiáng)調(diào)一點(diǎn),這些下載都是會(huì)下載最新的包,如果編譯老的docker肯定會(huì)出問(wèn)題,如果編譯最新的docker代碼肯定不會(huì)有問(wèn)題,因?yàn)楣俜降木幾g是這種方式。
上面執(zhí)行的命令都是建立在go語(yǔ)言環(huán)境建立成功的基礎(chǔ)上,我安裝的go遇到是1.3.3版本的,采用源碼方式安裝。安裝在/export/servers/go下面,然后所有的go語(yǔ)言工程源碼目錄放在/export/servers/gopath。然后配置環(huán)境變量在用戶(hù)的根目錄下的.bashrc文件里面如下:
export GOPATH=/export/servers/gopath
export GOROOT=/export/servers/go
export GOARCH=amd64
export GOOS=linux
然后docker的代碼目錄如下:/export/servers/gopath/src/github.com/docker/docker。這樣才能在gopath下面進(jìn)行依賴(lài)包的下載。通過(guò)上面的方法把所有依賴(lài)包下載完以后就可以進(jìn)行編譯了。
在繼續(xù)編譯的過(guò)程中還會(huì)遇到缺少c語(yǔ)言依賴(lài)包缺少的問(wèn)題,主要有三個(gè),(1)sqlite3;(2)device-mapper;(3)btrfs.
第一個(gè)sqlite3可以使用如下命令安裝依賴(lài):yum install sqlite-devel.x86_64
第二個(gè)在官方的dockerfile文件里面有解決方案,執(zhí)行如下命令:
git clone --no-checkout /usr/local/lvm2 cd /usr/local/lvm2 git checkout -q v2_02_103
cd /usr/local/lvm2 ./configure --enable-static_link make device-mapper make install_device-mapper
第三個(gè)btrfs使用如下安裝依賴(lài): yum install btrfs-progs。
這些依賴(lài)都解決了就繼續(xù)編譯,這個(gè)時(shí)候可能會(huì)出現(xiàn)ld連接錯(cuò)誤,提示找不到庫(kù)。因?yàn)閐ocker編譯的方式完全是static,所以所有依賴(lài)的庫(kù)必須還要有相應(yīng)的靜態(tài)庫(kù)(.a),而不是動(dòng)態(tài)庫(kù)(.so)。剛才通過(guò)yum install sqlite-devel.x86_64安裝了sqlite3的依賴(lài),但是最后發(fā)現(xiàn)里面沒(méi)有靜態(tài)庫(kù),所以編譯ld的時(shí)候出錯(cuò)了。我的解決辦法就是重新到sqlite3的官方網(wǎng)站下載了源碼包,然后編譯安裝即可。
編譯完成以后,就會(huì)在docker源碼目錄下的bundles/1.3.1/binary/目錄有如下文件:
docker docker-1.3.1 docker-1.3.1.md5 docker-1.3.1.sha256
docker-1.3.1這個(gè)文件就是我們需要的二進(jìn)制文件了,docker是一個(gè)軟連接到docker-1.3.1的文件。
到此就成功完成編譯了,以后修改了代碼重新支持編譯腳步即可:
./hack/make.sh binary
本文題目:centos搭建go語(yǔ)言 centos安裝go編譯環(huán)境
標(biāo)題來(lái)源:http://jinyejixie.com/article4/hpcjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、電子商務(wù)、網(wǎng)站策劃、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)