当把我们的项目打包成deb包之后,参考上一篇博客,我们可以使用nginx+dpkg构建简单的私有的ubuntu数据源(不严谨个人使用),使用apt-get install像安装第三方软件一样安装个人项目,有利于开发,测试环境的自动化部署
1.安装nginx
该步骤可以自行百度,另外我使用的是upstart来管理nginx的启动
参考http://wiki.nginx.org/Upstart根据自己的实际安装目录做出调整
2.搭建项目的索引页
我们不申请域名,用127.0.0.1作为主页,注释掉配置文件nginx.conf的默认server项 新建./conf.d/deb.conf文件并把新目录conf.d下的*conf文件导入到主配置文件方便模块化管理 配置如下
server {
listen 80;
server_name 127.0.0.1;
location / {
autoindex on;
root /var/nginx/deb;
}
}
路由配置完毕
3.处理我们已经打包的deb项目
新建/var/nginx/deb目录 ,在/var/nginx/目录下创建一个脚本来更新所有deb的元数据,该数据会作为apt-get install安装获取那个deb包的依据,创建scan_deb.sh (不要忘记权限)
#!/bin/bash
cd /var/nginx/deb/
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
该脚本会更新Packages.gz压缩文件的元数据,每次添加deb项目时更新。我们把已经打包的demo_1.0.0_amd64.deb项目拷贝到/var/nginx/deb下,然后执行scan_deb.sh脚本生成压缩元数据文件(如果你的项目发布了新的版本,而不去执行scan_deb.sh脚本,那么执行apt-get将提示你已经是最新版本了,务必执行该脚本)
4.更新ubuntu数据源
现在重启一下nginx 。initctl restart nginx (服务名根据upstart中的脚本名称,可以去了解一下upstart) ,浏览器访问127.0.0.1
你可以下载Package.gz文件可以看到关于deb包的信息
现在更新数据源可以让ubuntu可以获取到,在/etc/apt/source.list末尾添加debhttp://127.0.0.1./
如果404 请修改deb目录的权限
apt-get update更新完之后apt-get install demo安装项目
提示安装成功,在/usr/local下也有了我们deb中的代码
到这里就完成了私有仓库的搭建,上面的deb包的拷贝,scan_deb.sh脚本的执行都是手动执行,在真实的项目开发中我们通常会配合jenkins等持续
化集成工具,实现代码快速更新到开发或者测试服务器上的功能
同时方便新环境的搭建(可能需要我们在新的服务器上部署(非saas项目,需部署多套)我们的项目的时候 ,使用apt的管理方式要方便很多