美文网首页Ubuntu学步者
将自己的deb项目添加到私有仓库,使用apt方式管理

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

作者: lpj24 | 来源:发表于2016-01-19 11:04 被阅读1217次

    当把我们的项目打包成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的管理方式要方便很多

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/fpwkkttx.html