操做系統:Linux VM_71_121_centos 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linuxnode
搭建私服所需工具清單:c++
1、nodejsgit
2、gitnpm
3、gitosisjson
4、private-bowerwindows
1、安裝 nodejscentos
Centos 安裝 NodeJS緩存
準備命令:bash
默認沒有編譯環境。須要安裝的組件有gcc,make,gcc-c++,openssl-devel以及wget服務器
yum -y install gcc make gcc-c++ openssl-devel wget
下載源碼及解壓:
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
tar -zvxf node-v0.10.26.tar.gz
編譯及安裝:
cd node-v0.10.26
make && make install
驗證是否安裝配置成功:
node -v
2、安裝 git
1、源碼安裝
下載git源碼並解壓縮
wget https://Github.com/Git/Git/archive/v2.3.0.tar.gz
tar -zxvf git-v2.3.0.tar.gz && cd git-2.3.0
make && make install
Git 的工做須要調用 curl,zlib,openssl,expat,libiconv 等庫的代碼,若是安裝報錯,請執行:
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
若是執行上述命令,編譯安裝仍提示:Can't locate ExtUtils/MakeMaker.pm in @INC ,請執行:
yum install perl-devel 來解決該問題。
mkdir myBower/testBower -p 建立測試目錄
添加 git 用戶:adduser git,使用 git init first.git 命令初始化 git 倉庫,並分配權限,chown -R git:git first.git
建議使用 git init --bare first.git 命令初始化 git 倉庫,二者的區別以下:
通常我的使用,用git init,這時候你的工做區也在這裏。你要是想創建一個固定的地址讓你們一塊兒用,就在服務器上用git --bare init。
客戶端測試可否下載:
執行命令:git clone ssh://git@115.159.31.188:/myBower/testBower/first.git
若是直接使用 git init first.git 在後續可能會出現以下問題:
git 提交時出現 refusing to update checked out branch: refs/heads/master 錯誤時,請在服務器上使用以下命令修復:
git config --bool core.bare true
git 提交時出現 warning: LF will be replaced by CRLF 錯誤時,請使用以下命令修復:
git config core.autocrlf true
錯誤緣由以下:
在Windows上是CRLF來做爲一行的結束符,而Linux上則是LF做爲行結束符
在git中提供了autocrlf的設置,能夠用來自動轉換CRLF,它能夠設置成true,false,inpu
Windows上的msysgit默認設置了autocrlf爲true。
這樣,在提交時自動地把行結束符CRLF轉換成LF,而在簽出代碼時把LF轉換成CRLF
這樣保證了從windows平臺上提交的代碼,都是以LF做爲行結束符
若是客戶端下載工程的時候提示:
C:\Users\User\Desktop\新建文件夾 (3)>git clone ssh://git@115.159.31.188:/myBower/t
estBower/first.git
Cloning into 'first'...
git@115.159.31.188's password:
bash: git-upload-pack: command not found
fatal: Could not read from remote repository.
請執行相似:ln /root/bin/git* /usr/bin/,/root/bin是git安裝以後所在的目錄
C:\Users\User\Desktop\新建文件夾 (3)>git clone ssh://git@115.159.31.188:/myBower/t
estBower/first.git
Cloning into 'first'...
git@115.159.31.188's password:
fatal: unable to access '/root/etc/gitconfig': Permission denied
fatal: Could not read from remote repository.
該問題暫未處理
2、直接安裝 git
因爲採用方法一中的源碼安裝,客戶端在下載時會提示
fatal: unable to access '/root/etc/gitconfig': Permission denied
fatal: Could not read from remote repository.
而採用直接安裝則無此問題,所以推薦直接安裝。
直接安裝命令爲:yum install git
3、安裝 gitosis
請參考
https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-Gitosis
安裝 gitosis ,使 git 服務器支持 git 協議。
4、安裝 private-bower
使用 npm install private-bower -g 命令安裝private-bower,建立配置文件,如:myBowerConfig.json,該文件內容以下:
{
"port": 81,
"registryFile": "",
"timeout": 144000,
"public": {
"disabled": false,
"registry": "http://115.159.31.188/packages/",
"registryFile": "",
"whitelist": [],
"blacklist": []
},
"authentication": {
"enabled": false,
"key": "password"
},
"repositoryCache": {
"cachePrivate": false,
"git": {
"enabled": false,
"cacheDirectory": "./gitRepoCache",
"host": "localhost",
"port": 6789,
"publicAccessURL" : null,
"refreshTimeout": 10
},
"svn": {
"enabled": false,
"cacheDirectory": "./svnRepoCache",
"host": "localhost",
"port": 7891,
"publicAccessURL" : null,
"refreshTimeout": 10
}
},
"proxySettings" : {
"enabled": false,
"host": "proxy",
"username": "name",
"password" : "pass",
"port": 8080,
"tunnel": false
},
"log4js" : {
"enabled": false,
"configPath" : "log4js.conf.json"
}
}
請將 "registry": "http://115.159.31.188/packages/" 條目中的地址修改成本身服務器的地址。
5、服務器端啓動 bower 註冊服務
使用 private-bower --config /myBower/bowerServer/myBowerConfig.json 命令啓動bower 註冊服務
6、註冊bower包到服務器
1、建立 .bowerrc 文件,文件內容以下:
{
"registry": "http://115.159.31.188:81"
}
2、註冊包到服務器,執行:bower register wx001 git@115.159.31.188:/myBower/testBower/first.git
7、安裝服務器已註冊的bower包
1、建立 .bowerrc 文件,文件內容以下:
{
"registry": "http://115.159.31.188:81"
}
2、使用 bower install wx001 命令安裝包到當前目錄
至此,bower 私服搭建已完成。
8、private-bower 做爲後臺服務運行的方法
nohup private-bower --config myBowerConfig.json &
關閉進程的方法:
ps -ef | grep private-bower 查看進程號
kill <進程號> 執行關閉操做,參數 -9 強行終止
8、常見問題
1、bower 安裝安裝時,出現地址解析錯誤
解決方法:bower cache clean 清理緩存
2、private-bower 啓動後提示「ssh鏈接時提示「The authenticity of host xx can’t be established」
解決方法:
a. 使用ssh鏈接遠程主機時加上「-o StrictHostKeyChecking=no」的選項,以下:
ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx
b. 一個完全去掉這個提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加以下兩行配置:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
修改好配置後,從新啓動sshd服務便可,命令爲:/etc/init.d/sshd restart (或 service sshd restart )