diff --git a/.gitignore b/.gitignore index 2d78410..58b3165 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -get/module/__pycache__/ -deb/ +*/module/__pycache__/ +deb/* +!deb/index.html deb.db \ No newline at end of file diff --git a/README.md b/README.md index cb4ca55..2a39e71 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d ## 现有软件 -可在 [这里](https://packages.wcbing.top/deb/status.txt) 查看具体版本。 +可在 [这里](https://packages.wcbing.top/deb/version.txt) 查看具体版本。 |软件名|包名|渠道|架构| |-|-|-|-| @@ -47,42 +47,6 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d |Mozilla Firefox|firefox
firefox_beta
firefox_devedition
firefox_esr
firefox_nightly
|官方仓库|x86_64| -## 自行建立仓库 +## 自建仓库 -### 建立仓库 - -1. clone 本仓库,进入仓库目录。 -2. 确认系统安装有 `Requests` Python 库,Debian 系应该自带。 -2. 运行 `init_deb.py` 初始化。 -默认只新建 x86_64,需要其他架构请修改其中的SQL语句。 -3. 创建一个**无密码**的 GPG 密钥对,导出 GPG 公钥文件待用。 -4. 创建定时任务,定时运行 `update_gen.sh` -crontab 样例:0 11,15,19 * * * cd [THIS_DIR] && ./update_gen.sh > ./deb/status.txt - -### 发布与使用 - -这个仓库使用了[扁平仓库格式(Flat Repository Format)](https://wiki.debian.org/DebianRepository/Format#Flat_Repository_Format)。建立好后使用 Web 服务器将 `deb` 目录暴露出去即可。 - -使用时可参考前面已有的配置,先将第3部提到的 GPG 公钥导入,再新建软件源配置文件。 - -实际使用中官网提供的下载链接一般是 CDN 链接,为提升下载速度,减轻自建源压力,建议将这些请求重定向到官网上。而国内下载 Github 上的文件时比较慢,仍然从自建源下载。 - -nginx 配置参考: -```nginx -server { - server_name packages.wcbing.top; - autoindex on; - autoindex_exact_size off; - autoindex_localtime on; - charset 'utf-8'; - location ~ ^/deb/https:/github.com { - root /packages; - } - location ~ ^/deb/https:/(.+)$ { - return 302 https://$1; - } - location / { - root /packages; - } -} -``` \ No newline at end of file +[参见 Wiki](https://github.com/wcbing/wcbing-apt-repo/wiki/self-hosting) diff --git a/deb/index.html b/deb/index.html new file mode 100644 index 0000000..19b59f6 --- /dev/null +++ b/deb/index.html @@ -0,0 +1,32 @@ + + + + + + + + wcbing 的 APT 软件源 + + + + +

wcbing 的 APT 软件源

+ 项目地址
+ 查看包版本信息所有信息
+ 查看状态日志
+

用法

+

sudo curl -o /etc/apt/keyrings/wcbing.gpg https://packages.wcbing.top/wcbing.gpg
+ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/deb /" | sudo tee + /etc/apt/sources.list.d/wcbing.list

+ + + \ No newline at end of file diff --git a/init_deb.py b/init_deb.py index 629330d..a19bed6 100755 --- a/init_deb.py +++ b/init_deb.py @@ -4,7 +4,8 @@ import os import sqlite3 # create dir -os.mkdir("deb") +if not os.path.exists("deb"): + os.mkdir("deb") # create table conn = sqlite3.connect("deb.db") diff --git a/update_gen.sh b/update_gen.sh index 29f6570..bb04f18 100755 --- a/update_gen.sh +++ b/update_gen.sh @@ -13,8 +13,10 @@ cd .. find merge_latest -maxdepth 1 -type f -name "*.py" -exec python3 {} \; python3 merge_all/merge_all.py -# generate the Release file cd deb +# list brief information about packages +cat Packages | grep "Package\|Version\|Architecture\|^\$" > version.txt +# generate the Release file apt-ftparchive release . > Release gpg --yes --armor --detach-sign --sign -o Release.gpg Release gpg --yes --clearsign -o InRelease Release