skynet是雲風團隊發布的一個開源的服務器框架。
底層采用C編寫,邏輯層通常用lua。非常適合作為游戲的服務器框架。
學習skynet,可能涉及到操作系統,window,linux,游戲服務器等方方面面的知識,是一個不可多得的開源項目。
作為菜鳥的希望把學習的過程記錄下來,無論對於面試和工作都有莫大的幫助。
官方的指南 https://github.com/cloudwu/skynet/wiki/GettingStarted
今天第一篇,首先來搭建skynet。分為以下四個步驟:
1.ubuntu
2.samba
3.git clone源碼
4.build skynet
1.ubuntu
官方推薦使用ubuntu作為開發skynet的環境,也有社區的同學提供了window版,但未知問題較多。
新手還是使用官方推薦的ubuntu好了。首先要安裝一個vmware虛擬機,再下載ubuntu的最新iso鏡像。
對於程序猿來講小case啦,忽略不講。
2.samba
既然用到lua語言開發,我還是習慣使用sublime作為編輯器開發。而且以后打算用quick-cocos-2d或者window api作為客戶端,需要一個linux和windows交互共享的方法。
samba是一個可以提供windows和linux共享的軟件。因此需要搭建samba服務器環境。這里也略過不表。網上超多教程。搭建好之后,在ubuntu查看ip地址,在windows添加網絡,就可以linux和windows互訪了。
3.接着我們從github上clone源碼
git clone https://github.com/cloudwu/skynet.git
4.最后開始搭建skynet
make linux
簡單的編譯。總共遇到了下面幾個問題:
4.1 readline.h找不到
其實是沒裝lua。需要安裝lua5.3以上版本。
4.2 jemalloc找不到
需要安裝jemalloc。jemalloc是一種內存分配算法。區別於c語言里的malloc,效率更高。
安裝jemalloc的過程中提示缺少m4。m4是一個宏處理器。
4.3 缺少autoconf
autoconf是一種自動生產Makefile的軟件。
這里插一個知識。ubuntu安裝軟件有三種方法。apt-get,dpkg安裝deb和make install安裝源碼包
a.apt-get install xxx。需要聯網。上面的lua安裝用到此方法。
b.dpkg -i package.deb。從下載好的deb包安裝。
c.編譯安裝源碼包。通常4個步驟,從官網下載壓縮包
解壓 tar -zxvf xxxx
配置 ./configure --prefix=安裝路徑
編譯 make
安裝 make install
上面的jemalloc,m4和autoconf都是源碼包安裝法。其中設置安裝路徑--prefix時還要考慮環境變量$PATH,需要安裝到環境變量路徑中,或者自己增加環境變量。
$PATH 可以查看當前的環境變量
安裝好jemalloc,autoconf,lua等支持后,再在skynet目錄下make linux,則算編譯成功。