ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

如何创建自己的apt软件源



  • 在做Linux软件开发,当成功生成deb文件之后如何把软件包分发给用户呢。通常的做法就是创建自己的apt软件源了。
    创建apt软件源有一个非常好用的工具aptly

    aptly 软件文档

    软件安装

    /etc/apt/sources.list 中添加

    deb http://repo.aptly.info/ squeeze main
    

    添加公钥

    apt-key adv --keyserver pool.sks-keyservers.net --recv-keys ED75B5A4483DA07C
    

    安装软件

    apt-get update
    apt-get install aptly
    

    创建软件源

    在自己的服务器上创建软件源。首先修改默认的软件源保存路径

    vim ~/.aptly.conf
    

    设置root路径, 下面的路径会用来存储软件源数据。根据自己的需求进行设置。后面还需要设置网路服务器保证下面的路径可以从网络访问。所以不要在此文件夹内放其他重要数据。

    {
    "rootDir": "/home/bwbot/data/src/mirrors/packages"
    ......
    }
    
    aptly repo create stable
    

    添加软件包

    *.deb为你的deb文件名

    aptly repo add *.deb
    

    发布软件源

    aptly publish repo -distribution=stable stable
    

    这一步会需要gpg密钥。如果没有就需要自己创建。同时创建完成之后还要把自己的gpg公钥上传到公钥服务器上。如果是Ubuntu的话可以用系统自带的Passwords and Keys进行操作。这个软件自带生成密钥和上传密钥的功能。

    6c505802-8c5d-470b-9bb5-7b5198155a51-image.png

    设置网络服务器

    上面我们修改了软件源路径,下面我们要设置网络服务器,使得那个路径可以通过http访问。下面是一个nginx的例子配置

    server {
            server_name mirrors.bwbot.org;
            root /home/bwbot/data/src/mirrors/packages/public;
    
            location / {
                    alias /home/bwbot/data/src/mirrors/packages/public/;
                    autoindex on;
                    expires 30d;
            }
    
        listen 80;
    
    }
    

    注意audoindex一定要设置成on

    客户软件源设置

    当客户要下载软件时在客户机器,首先添加服务器的公钥

    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 7D9C279F
    

    上面是我的例子。其中hkp://keyserver.ubuntu.com:80'是密钥服务器的地址,和上传时自己的选择有关系。7D9C279F是服务器密钥的ID可以通过gpg相关指令查看。

    添加服务器软件源地址

    sudo sh -c 'echo "deb [arch=amd64] http://mirrors.bwbot.org/ stable main" > /etc/apt/sources.list.d/systemback.list'
    

    其中 deb [arch=amd64] http://mirrors.bwbot.org/ stable main为软件源地址,也就是你的服务器的网络地址。systemback.list为创建的软件源文件名称。这个可以根据自己需求进行修改,最后以.conf结尾就可以 了。

    然后正常的更新,安装软件就可以了

    apt-get update
    apt-get install xxxx