将自己的deb项目添加到私有仓库,使用apt方式管理

当把我们的项目打包成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

《将自己的deb项目添加到私有仓库,使用apt方式管理》

你可以下载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的管理方式要方便很多

    原文作者:lpj24
    原文地址: https://www.jianshu.com/p/ee870d63c175
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞