真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在tinycorelinux上怎么安裝lxc,lxd

這篇文章給大家分享的是有關(guān)在tinycorelinux上怎么安裝lxc,lxd的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)的開(kāi)發(fā),更需要了解用戶(hù),從用戶(hù)角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶(hù)體驗(yàn)。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見(jiàn)的多,溝通容易、能幫助客戶(hù)提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷(xiāo)的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪用戶(hù)感受到浩方產(chǎn)品的價(jià)值服務(wù)。

準(zhǔn)備工作,及編譯golang

Grub 加個(gè)swapfile=hda1進(jìn)去。編譯go1.12.6內(nèi)存起碼1g。準(zhǔn)備git,git我們用4.x的,需要expat2.tcz和openssl-1.0.0.tcz,都用3.x的, 按《在tinycolinux上安裝sandstorm davros》編譯openssl1.0.1覆蓋1.0.0 —prefix=/usr/local,make install,sudo ldconfig,再編譯curl 7.30.0 —with-ssl=/usr/local,make install,sudo ldconfig,不用編譯git,為防出現(xiàn)unable to get local issuer certificate git,運(yùn)行g(shù)it config --global http.sslVerify false

安裝bash.tcz,下載并解壓go1.4-bootstrap-20171003.tar.gz,Go 1.4 was the last distribution in which the toolchain was written in C,cd go,sudo ./make.bash,不要export GOROOT_BOOTSTRAP=/mnt/hda1/tmp/go,這個(gè)沒(méi)用,還是得mv /mnt/hda1/tmp/go /home/tc/go1.4,下載go1.12.6.tar.gz,cd go-go1.12.6/src,sudo ./make.bash沒(méi)有之前的swap設(shè)置這里過(guò)不去, 為了讓go生效。export PATH=$PATH:/mnt/hda1/tmp/go-go1.12.6/bin

lxd源碼處理

安裝libcap.tcz,acl-dev.tcz,下載并解壓lxd-3.0.4.tar.gz,cd lxd-lxd-3.04,處理一下lxd src:

第一個(gè)問(wèn)題,還是那個(gè)問(wèn)題,我們使用的gcc443不是gnu11,go默認(rèn)調(diào)用gnu11,會(huì)出現(xiàn)Unknown command line -std=gnu11 在lxd src中,找到// #cgo 有-std=gnu11的去掉它,對(duì),注釋的起作用的,大約有16個(gè)文件,然后,在/home/tc/go/src中新建github.com->lxc文件夾,cd lxc,直接mv 修改過(guò)的lxd到這里,保證名字是lxd /lxd/shared/idmap/shift_linux.go中, /lxd/shared/netutils/netns_addrs.c中,

然后是makefile:

Sudo vi Makefile最上面加shell=/bin/bash,default中去掉deps的判斷ifeq ($(TAG_SQLITE3),)中的ifeq改成ifneq,進(jìn)一步來(lái)分析一下makefile中這個(gè)默認(rèn)make deps的邏輯:

它以home/當(dāng)前用戶(hù)/go/為GOPATH,維護(hù)這樣一種結(jié)構(gòu)(GOPATH)/deps/,所以我們mkdir -p ~/go/src,cd ~/go/src,mv /mnt/hda1/tmp/lxd-lxd-3.04 ~/go/src

繼續(xù)分析makefile,有5個(gè)deps:sqlite,uv,raft,co,dqlite,文件中有4個(gè)地址,沒(méi)有l(wèi)ibuv的,稍后處理,但因?yàn)檫@5個(gè)deps都可能編譯出錯(cuò),make deps一執(zhí)行,總是會(huì)強(qiáng)行從0開(kāi)始拉取(sqlite無(wú)條件拉取,其它四個(gè)判斷拉取),所以不可能通過(guò)本地修改deps sqlite的相關(guān)文件,調(diào)試影響make deps使之最終通過(guò)。我們只能定制sqlite倉(cāng)庫(kù),然后在makefile中替換其地址:

Sqlite: 2019.4.19左右的sqlite:https://github.com/CanonicalLtd/sqlite/3c5e6afb3d8330485563387bc9b9492b4fd3d88d,你必須fork 它的github倉(cāng)庫(kù),作如下修改,并改動(dòng)makefile中的GitHub repo調(diào)用地址參數(shù)來(lái)跳過(guò)這個(gè) 在src/sqlite3.h.in中: 刪掉這句 typedef struct sqlite3_wal_replication sqlite3_wal_replication; 然后下面typdef struct sqlite3_wal_replication{…}的sqlite3_wal_replication的前面統(tǒng)統(tǒng)加個(gè)struct,有五行 才能避免make deps編譯時(shí)可能出現(xiàn)redefinition of typedef ‘sqlite3 wal replication’,gcc 4.7之后才支持c11的typedef重定義-Wtypedef-redefinition,,gcc 443是不支持的,

其它四個(gè)deps可以分別git到/mnt/hda1/tmp修改,嘗試make install,

libuv: Git clone 2019.6.28左右的https://github.com/libuv/libuv/commit/1a06462cd33fb94720d639f40db3522313945adf Sudo ./autogen.sh,./configure,make install

Raft: Git clone 2019.6.26左右的,https://github.com/CanonicalLtd/raft/commit/ee097affa3dfff53f0c5af096a55d8b7dacecdc3 會(huì)出現(xiàn)error implicit declaration of function aligned_alloc,因?yàn)镃11中添加的函數(shù)aligned_alloc() 你可在configure.ac 161行找到implicit-function-declaration相關(guān)行注釋掉,這樣它就是一個(gè)warning而不是error ./configure —disable-example,否則會(huì)有TIME_UTC is a macro in C11,TIME_UTC is macro in glibc 2.16

libco: https://github.com/freeekanayaka/libco,目前是v18,沒(méi)有make install 復(fù)制 lib.pc到 /usr/lib/pkconfig/ 手動(dòng)復(fù)制安裝下/usr/為prefix然后ldconfig

當(dāng)然你也可以像對(duì)待sqlite一樣將修過(guò)改的后4個(gè)deps的新倉(cāng)庫(kù)地址放進(jìn)makefile中,嘗試Sudo make deps,找不到libuv時(shí)到那個(gè)deps下make install下再sudo ldconfig重新make deps,這樣更方便統(tǒng)一。

以上lxd src和dep的src處理,因?yàn)間o或makefile會(huì)將文件不斷下到go path,調(diào)試的時(shí)候,如果有新的錯(cuò)誤,記得清空/deps/或src/github.com/中相應(yīng)的文件夾讓makefile或go get重新應(yīng)用新邏輯。

編譯deps和lxd

Make dep,最終成功!!之后需要設(shè)幾條export,編譯完后會(huì)提示: Export CGO_CFLAGS=“-I/home/tc/go/deps/sqlite/ -I/home/tc/go/deps/dqlite/include/“ Export CGO_LDFLAGS=“-L/home/tc/go/deps/sqlite/.libs/ -L/home/tc/go/deps/dqlite/.libs/” Export LD_LIBRARY_PATH=“/home/tc/go/deps/sqlite/libs/:/home/tc/go/deps/dqlite/.libs/” 如果是手動(dòng)生成的,對(duì)應(yīng)地址會(huì)是/mnt/hda1/tmp/xxx

最后,在整體make (default)前需要處理一下:

在這里會(huì)有很多陷阱和挑戰(zhàn),主要是golang的包下載需要用到外網(wǎng)線路而且go沒(méi)有一個(gè)可以換mirror的準(zhǔn)法。為省事我們將手動(dòng)補(bǔ)全:src中新建golang.org文件夾->x文件夾,cd x,依然git clone github.com/golang/sys/,github.com/golang/net/, github.com/golang/crypto/,這是因?yàn)間olang.org的包全部被墻,還有一些雖然沒(méi)被墻但是較大的包,手動(dòng)下載,比如下到gopkg.in的mgo v2,cd gppkg.in,git clone https://github.com/go-mgo/mgo/,mv mgo mgo.v2,cd mgo.v2,git checkout v2,v2是它的一個(gè)branch

sudo make。會(huì)自動(dòng)下載其它包,沒(méi)被墻的gopkg.in被依然下載到/home/tc/go/src/gopkg.in。然后自動(dòng)開(kāi)始編譯,如果在這里出現(xiàn)找不到deps的h,lib往往是make deps后的幾條export沒(méi)設(shè)好,沒(méi)關(guān)系,這里可以進(jìn)一步export覆蓋補(bǔ)全。

最后,lxd也編譯完成。完工!

感謝各位的閱讀!關(guān)于“在tinycorelinux上怎么安裝lxc,lxd”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


分享題目:在tinycorelinux上怎么安裝lxc,lxd
網(wǎng)站地址:http://weahome.cn/article/jpghgj.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部