导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    如何创建自己的apt软件源

    技术交流
    软件源 aptly apt gpg
    1
    1
    1424
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 weijiz 编辑

      在做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
      

      更新发布

      当有新的deb文件需要发布的时候,可以通过上面的aptly repo add 再次添加deb文件,然后执行下面的指令更新发布

      aptly publish update 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
      
      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community