使用reperpro+nginx搭建一个Debian仓库
一、制作一个本地仓库
1.安装相关工具:sudo apt install reprepro -y
2.新建一个文件夹 ppa,新建一个子文件目录conf,目录中新建文本(distributions)写一下仓库配置到新建文本(distributions) 【命令可见二2操作】
#仓库配置
Origin:ppa.repo
Label:ppa.repo
Codename:ppa
Architectures:amd64 source
Components:main
Description:the best repo of ppa
UDebComponents:main
Log:ppa.log
-
添加仓库到系统下,编辑/etc/apt/sources.list
vim /etc/apt/sources.list
写入以下代码:
#以文件协议添加仓库:file:///home/grid/Desktop/ppa 为仓库所在路径。 ppa为仓库名。 deb [trusted=yes] file:///home/grid/Desktop/ppa ppa main
-
添加一个包到仓库中去
在ppa目录下操作:
reprepro includedeb ppa ~/sl_*deb
注意:ppa为仓库名,~/sl_*deb为需要加入仓库的包名。
-
执行sudo apt update后即可在仓库中找到该内容。
-
能找到加入的仓库名则说明成功。
二、制作一个签名的仓库(与三结合做)
1.安装准备程序:
sudo apt install gnupg reprepro
2.创建仓库目录,设置配置文件(即一中的2.操作)
mkdir -p /home/grid/Desktop/ppa/conf
sudo vim /home/grid/Desktop/ppa/conf/distributions
distributions配置信息如下:
#仓库配置
Origin:ppa.repo
Label:ppa.repo
Codename:ppa
Architectures:amd64 source
Components:main
Description:the best repo of ppa
UDebComponents:main
Log:ppa.log
-
创建GPG密钥并备份.
在仓库/ppa下创建key目录,在目录下创建public.keys文件
mkdir -p /home/grid/Desktop/ppa/key
touch /home/grid/Desktop/ppa/key/public.key
#列出系统中的密钥
gpg --list-keys
#导出公钥(备份)
#密钥写入到了仓库下。
gpg --armor --export 61088F99C698BB024F895EF0C1A2236829AED3B0 >/home/grid/Desktop/ppa/key/public.key
- 给仓库签名:实际上就是在配置里面加上SignWith:/ppa/key/public.keys,然后重新生成源数据即可:
#distributions配置信息下加入以下语句
SignWith:61088F99C698BB024F895EF0C1A2236829AED3B0
-
验证gpg密码
reprepro --ask-passphrase -Vb /home/grid/Desktop/ppa export
三、建立一个nginx web站点
1.安装准备程序
sudo apt install nginx
2.配置nginx指向仓库跟目录,/etc/nginx/sites-enabled/default/
sudo vim /etc/nginx/sites-enabled/default/
配置以下信息
注意:server_name mabot.com;处应修改为自己的网站名。 root /home/grid/Desktop/ppa;应修改为root 仓库地址。
server {
listen 80;
server_name grid.com;
access_log /var/log/nginx/packages-error.log;
error_log /var/log/nginx/packages-error.log;
root /home/grid/Desktop/ppa;
index index.html index.htm;
location / {
autoindex on;
}
location ~ /(.*)/conf {
deny all;
}
location ~ /(.*)/db {
deny all;
}
}
将主机名改成grid.com.【不修改的话最后wget的时候访问不到】
sudo vim /etc/hosts
添加一行:
127.0.0.1 grid.com
- 将配置的网站,到/etc/apt/sources.list中添加源
sudo vim /etc/apt/sources.list
添加以下信息:
deb http://grid.com/ ppa main contrib non-free
- 最后测试仓库的签名
-
没有导入公钥,无法使用 apt-get update
sudo apt-get update
- 导入公钥可以正常使用 ,apt-key add:
wget -O - http://grid.com/key/public.key |sudo apt-key add -