如何建立npm私库

本教程适用于centos, 这是ubuntu 教程 http://clock.co.uk/blog/how-to-create-a-private-npmjs-repository

安装之前

安装 Erlang

[plain]  view plain  copy
  1. yum install gcc glibc-devel make ncurses-devel openssl-devel autoconf -y  
  2. wget http://erlang.org/download/otp_src_R15B01.tar.gz  
  3. tar zxvf otp_src_R15B01.tar.gz  
  4. cd otp_src_R15B01  
  5. ./configure && make && sudo make install  


开始安装npm私库

STEP 1 安装相关包

[plain]  view plain  copy
  1. sudo yum install autoconf autoconf-archive automake curl-devel erlang-asn1 erlang-erts erlang-eunit erlang-os_mon erlang-xmerl help2man js-devel libicu-devel libicu-devel perl-Test-Harness -y  


STEP 2. 安装 couchDB

STEP 2.1 下载 couchdb

[plain]  view plain  copy
  1. sudo su -   
  2. $ wget http://mirrors.advancedhosters.com/apache/couchdb/source/1.6.0/apache-couchdb-1.6.0.tar.gz  
  3. $ tar xfv apache-couchdb-1.6.0.tar.gz  
  4. $ cd apache-couchdb-1.6.0  
  5. $ ./configure  
  6. $ make  
  7. $ make install  


测试 couchdb
[plain]  view plain  copy
  1. $ couchdb  
  2. Apache CouchDB 1.2.0 (LogLevel=info) is starting.  
  3. Apache CouchDB has started. Time to relax.  
  4. [info] [<0.32.0>] Apache CouchDB has started on http://127.0.0.1:5984/   

成功之后 Ctrl+C 停止


STEP 2.2 创建 couchdb 用户


[plain]  view plain  copy
  1. $ useradd couchdb  
  2. $ chown -R couchdb:couchdb /usr/local/var/{log,lib,run}/couchdb  
  3. $ chown -R couchdb:couchdb /usr/local/etc/couchdb  


STEP 2.3 修改 couchdb 数据文件位置

[plain]  view plain  copy
  1. $ mv /usr/local/var/lib/couchdb /data/  
  2. $ vim /usr/local/etc/couchdb/local.ini   


增加以下内容


[plain]  view plain  copy
  1. [couch_httpd_auth]  
  2. public_fields = appdotnet, avatar, avatarMedium, avatarLarge, date, email, fields, freenode, fullname, github, homepage, name, roles, twitter, type, _id, _rev  
  3. users_db_public = true  
  4.   
  5.   
  6. [httpd]  
  7. secure_rewrites = false  
  8. bind_address=0.0.0.0  
  9.   
  10. [couchdb]  
  11. delayed_commits = false  
  12. database_dir = /data/couchdb  
  13. view_index_dir = /data/couchdb  




STEP 2.4 增加自启动



[plain]  view plain  copy
  1. $ touch /usr/local/var/run/couchdb/couchdb.pid  
  2. $ chown couchdb.couchdb /usr/local/var/run/couchdb/couchdb.pid  
  3. $ sudo ln -s /usr/local/etc/rc.d/couchdb /etc/init.d   
  4. $ chkconfig couchdb on  
  5. $ chkconfig --list | grep couchdb  
  6. couchdb         0:off   1:off   2:on    3:on    4:on    5:on    6:off  
  7. $ service couchdb start  



STEP 2.5 增加用户名密码(可选)

[plain]  view plain  copy
  1. $ curl -X PUT http://localhost:5984/_config/admins/admin -d '"<password>"'  


<password> 换成你想要的密码
比如:
[plain]  view plain  copy
  1. $ curl -X PUT http://localhost:5984/_config/admins/admin -d '"123456"'  
  2. ""  



然后你去看local.ini文件就会发现多了一行
[plain]  view plain  copy
  1. $ vim /usr/local/etc/couchdb/local.ini  
  2. [admins]  
  3. admin = -pbkdf2-297f2655663749cd6ff31d4f73dd973045501604,eaf253d41b0d8ddac87aa3d6683f7ee7,10  
  4. $ sudo /etc/init.d/couchdb restart  


然后你测试一下添加一个库会告诉你没有权限

[plain]  view plain  copy
  1. $ curl -X PUT http://localhost:5984/database2  
  2. {"error":"unauthorized","reason":"You are not a server admin."}  

加上带用户名和密码的url再试一下

[plain]  view plain  copy
  1. $ curl -X PUT http://admin:123456@localhost:5984/database2  
  2. {"ok":true}  



STEP 3 设置npm私库

STE 3.1 复制 npmjs.org 

第一个命令会非常久,因为会把整个npmjs.org 的库搬下来,所以请耐心等待,大概需要几个小时最长有可能要一天
[plain]  view plain  copy
  1. $ curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "create_target":true}' -H "Content-Type: application/json"   
  2.   
  3.   
  4. $ curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"  


STEP 3.2 让 CouchDB 的镜像库工作起来

[plain]  view plain  copy
  1. $ su -  
  2. $ npm install -g couchapp   
  3. $ git clone git://github.com/npm/npm-registry-couchapp  
  4. $ cd npm-registry-couchapp  
  5. $ npm install  
  6. $ npm start \  
  7.   --npm-registry-couchapp:couch=http://localhost:5984/registry  



检查以下是否应用上传完毕,这两步第一次运行也会比较久:
  
[plain]  view plain  copy
  1. $ npm run load \  
  2.   --npm-registry-couchapp:couch=http://localhost:5984/registry  
  3.   
  4.   
  5. $ npm --registry http://localhost:5984/registry/_design/scratch/_rewrite search  

客户端设置


[plain]  view plain  copy
  1. $ vim ~/.npmrc  
增加以下这段
registry = http://localhost:5984/registry/_design/scratch/_rewrite
  

上传自己的npm库到私库去

具体参见http://blog.csdn.net/nsrainbow/article/details/37903097

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值