搭建bower私服(private-bower)

操做系統: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++

1nodejsgit

2gitnpm

3gitosisjson

4private-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默認設置了autocrlftrue

這樣,在提交時自動地把行結束符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/bingit安裝以後所在的目錄

 

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、常見問題

1bower 安裝安裝時,出現地址解析錯誤

解決方法:bower cache clean 清理緩存

2private-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

相關文章
相關標籤/搜索