ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
如何创建自己的apt软件源
-
在做Linux软件开发,当成功生成deb文件之后如何把软件包分发给用户呢。通常的做法就是创建自己的apt软件源了。
创建apt软件源有一个非常好用的工具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
进行操作。这个软件自带生成密钥和上传密钥的功能。设置网络服务器
上面我们修改了软件源路径,下面我们要设置网络服务器,使得那个路径可以通过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