reprepro nginx 搭建个人PPA仓库
搭建PPA仓库
reprepro是一个强大的debian仓库管理工具。它的主要功能包含创建仓库、往仓库中添加包、从仓库中移除包、仓库导出、无用仓库移除等。
安装必要程序
sudo apt install gnupg reprepro nginx
##创建 GPG 密钥
gpg --full-gen
#密钥类型:默认
#RSA长度:默认
#密钥有效期限:默认
#真实姓名:malloy
#电子邮件地址:*******@gmail.com
#注释:Persional Hub
#密码:malloy
##列出系统中的 GPG 密钥
gpg --list-keys
##导出 GPG 公钥
gpg --armor --export FDDC2523858B7D32DC7E2605E2C4B5104AD05349 > debian_package_hub/wwwroot/ppa/key/public.key
##配置文件
vim debian_package_hub/wwwroot/ppa/conf/distributions
##创建仓库树,会创建了一些文件夹,验证了gpg密码
reprepro --ask-passphrase -Vb debian_package_hub/wwwroot/ppa export
##添加deb包到仓库,以zip包为例
#需要进入仓库的根目录才能添加软件包
cd debian_package_hub/wwwroot/ppa
#下面这个命令格式为【 includedeb 发行版 deb包文件目录 】
reprepro --ask-passphrase -Vb . includedeb malloy /home/malloy/Ex/Week1/debian_package/zip_3.0.1-1+rebuild_amd64.deb
##移除deb包
#看英文意思!!!不要照抄
reprepro --ask-passphrase -Vb PPA_directory remove Codename Package_name
#更多命令直接reprepro -h 查看就好了
distributions配置
其中codename代表发行版名称,比如uos有eagle(专业版),plum(个人版),apricot(社区版)之分,
ubuntu有bionic,focal,groovy(这个说白了就是ubuntu20.10)
Origin: deepin-malloy
Label: deepin-malloy
Suite: stable
Codename: malloy
Version: 2021
Architectures: amd64 source
Components: main contrib non-free
Description: Malloy's Personal Package Archives
SignWith: FDDC2523858B7D32DC7E2605E2C4B5104AD05349
Nginx配置文件
如果不了解nginx服务,可以把这个配置文件直接抄过去,
server_name后面带的是你的域名或者IP也可以
root 后面带的是仓库的目录,这两个地方记得修改
server {
listen 80;
server_name malloy.com;
access_log /var/log/nginx/packages-error.log;
error_log /var/log/nginx/packages-error.log;
root /home/malloy/Ex/Week1/debian_package_hub/wwwroot/ppa;
index index.html index.htm;
location / {
autoindex on;
}
location ~ /(.*)/conf {
deny all;
}
location ~ /(.*)/db {
deny all;
}
}
nginx的配置文件在/etc/nginx目录下面,需要用到的只有两个目录/etc/nginx/sites-available/ , /etc/nginx/sites-enabled/
配置文件写入/etc/nginx/sites-available/ 下,用软链接链接到/etc/nginx/sites-enabled/下面
顾名思义,site-available下面是可以用的配置文件,site-enabled下面是启用的服务,
以此仓库为例,在available下面新建ppa文件(名字随意取),把上面的配置写进去
然后软连接到enabled下面,重启nginx服务就好了
#一个完整的示例
touch /etc/nginx/sites-available/ppa
vim /etc/nginx/sites-available/ppa
#建议进入该目录创建软连接,因为不进去和进去ls -l显示的内容不一样,我也不知道为啥,也不想深究了
cd /etc/nginx/sites-available/
ln -s ppa /etc/nginx/sites-enabled/ppa
systemctl restart nginx
如果需要测试自己写的配置文件是否有错误,或者上面restart nginx时报错
下面这个命令能帮助你快速排查配置文件的错误所在
/usr/sbin/nginx -t
已经在hosts文件里将本地IP绑定malloy.com
站点目录
├── conf
│ └── distributions
├── db
│ ├── checksums.db
│ ├── contents.cache.db
│ ├── packages.db
│ ├── references.db
│ ├── release.caches.db
│ └── version
├── deb
├── dists
│ └── malloy
│ ├── contrib
│ │ └── binary-amd64
│ │ ├── Packages
│ │ ├── Packages.gz
│ │ └── Release
│ ├── InRelease
│ ├── main
│ │ └── binary-amd64
│ │ ├── Packages
│ │ ├── Packages.gz
│ │ └── Release
│ ├── non-free
│ │ └── binary-amd64
│ │ ├── Packages
│ │ ├── Packages.gz
│ │ └── Release
│ ├── Release
│ └── Release.gpg
├── key
│ └── public.key
└── pool
└── main
├── v
│ └── vim
│ └── xxd_8.1.0875.1-1+deepin_amd64.deb
└── z
└── zip
└── zip_3.0.1-1+rebuild_amd64.deb
在/etc/apt/sources.list添加源
deb http://malloy.com/ malloy main contrib non-free
添加公钥
wget -O - http://malloy.com/key/public.key | sudo apt-key add -
# 更新软件源
sudo apt update