如何创建自己的 apt 软件源
本文最后更新于 24 天前,其中的信息可能已经过时。

想法由来

有感而发(?)

这几天不知道干什么好,正好关于自建 apt 的教程少之又少。这篇文章就这么出来了。

文章参考:

如何创建自己的apt软件源 | 码农家园

文章”码农家园”因历史悠久,因此利用上方链接搭建 apt 软件源完全无法成功。

系统要求

系统:Debian 系操作系统(目前在官网上只有 APT 链接)

硬件要求:CPU1核 内存1G 起步即可。

环境、软件要求:服务器内需要拥有外部连接和Nginx、Apache2等Web服务。

软件安装

我们这边使用 aptly 来作为创建 apt 软件源的安装。

打开 aptly 的官网:aptly – Debian repository management tool

进入官网之后,点击 DOWNLOAD 按钮

我知道你们嫌麻烦或者根本看不懂英文,我在底下贴几行命令你自己装就行。日后不要说是我干的就行

sudo apt-get install curl && echo "deb [signed-by=/etc/apt/keyrings/aptly.asc] http://repo.aptly.info/ squeeze main" | sudo tee /etc/apt/sources.list.d/aptly.list && sudo mkdir -p /etc/apt/keyrings; sudo chmod 755 /etc/apt/keyrings && wget -O /etc/apt/keyrings/aptly.asc https://www.aptly.info/pubkey.txt && sudo apt-get update && sudo apt-get install aptly

之后一行命令下去之后(这其实已经好几行了xd) 使用你最常用的编辑器编辑~/.aptly.conf文件。

这边需要举个例子,列如我们公开访问的地址为/data/nginx/www目录

{
"rootDir": "/data/nginx/www/"
}

之后在输入以下命令创建 apt 空白源

aptly repo create stable

这个命令将会在/data/nginx/www中创建一个创建一个 stable 频道的 APT 源,当然,这个stable你可以另外起一个名字,但一定,一定,一定不要用除英文外的所有字符,具体为什么这里就不说了,你都点开这个博客并且看到了这里你就应该知道为什么。

之后你可以在任意一个地方创建一个目录即可,这个目录将会存放你的*.deb文件。

但此刻如果你是看上方参考链接来到的这里的,那你可以选择关闭那个页面了,因为剩下的在现有的版本根本起不了作用。

上传安装文件

创建一个新的目录,并且cd进目录,你可以使用任意一个办法把你的deb文件传进去。

之后在文件夹下输入以下命令添加至暂存区

aptly repo add stable *.deb

之后上传至 APT 源后,我们需要创建一个 GPG 密钥。

创建 GPG 密钥

此处文件只会简单阐述,只能确保你能正常创建 GPG 密钥,具体可看 GitHub 文档。

且我强烈建议你在本机创建 GPG,跨环境使用 GPG 密钥会出现无法预想的错误。

生成新 GPG 密钥 – GitHub 文档

使用以下命令创建 GPG 密钥

gpg --full-generate-key

一路下一步至输入用户信息,若需要自定义 GPG,请查看 GitHub 文档。

在用户信息中,你需要填写你的用户信息,建议与 deb 安装信息相同。之后输入密码,若你不需要可以不写。

之后在命令行中输入

gpg --list-secret-keys --keyid-format=long

输入回车后,会显示你 GPG 的基本信息

之后记下 sec 中你 GPG 密钥中的信息,列如我这里是FDF75529AF497E0974C1FBE2D859A4CADE933693,那么在命令行中输入

gpg --armor --export FDF75529AF497E0974C1FBE2D859A4CADE933693

这样就会出现你的 GPG 公钥信息。

复制从-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----为止,上传至随意一个公钥服务器即可,这边在公开网站查看和测试发现只有 Ubuntu Keyserver 还能在国内正常使用

OpenPGP Keyserver (ubuntu.com)

点击 Submit key 之后,上传你刚刚复制的 GPG 公钥文件即可。

上传至公开APT源

输入以下命令上传即可

aptly publish repo -distribution=stable -architectures="all" -gpg-key="FDF75529AF497E0974C1FBE2D859A4CADE933693" stable

需修改:-gpg-key-distribution,若deb文件要求环境要求,也需要修改-architectures

回车即可成功上传。

Nginx 配置

server {
        server_name localhost;
        root /data/nginx/www/public;

        location / {
                autoindex on;
                expires 30d;
        }

    listen 80;

}

按需修改。

如何使用 GitHub Actions 自动上传

这其实没个具体的说法(

你如果确实需要这个需求,你可以查看我这个commits

ci(publish.yml): Auto push *.deb to APT Source · Muska-Ami/NyaLCF@25c8163 (github.com)

客户端配置

在 /etc/apt/source.list.d/中创建一个文件,要求后缀名为.list即可

在list文件中输入以下字符

deb http://localhost/public stable main

若你是使用上方的方式上传你的 GPG 公钥,你可以这么添加。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key 0xd859a4cade933693

填写-recv-key的方式有很多种,你可以使用 keyserver 给你的标识符,或者 GPG 密钥 ID 都可。

之后使用apt update即可正常使用并利用 APT 更新下载

若需要一行命令,你可以自行写一个 SH 源文件,示例可看

https://apt.nyalcf.1l1.icu/scripts/nyalcf_install.sh

写好也可以上传至Web中,之后就可以使用以下命令使用一键安装

curl -fsSL https://apt.nyalcf.1l1.icu/scripts/nyalcf_install.sh | bash 
如何创建自己的 apt 软件源 作者 YanMo
原文链接https://blog.ymbit.cn/archives/create-apt-release/,采用 Creative Commons Attribution-ShareAlike 4.0 International Public License 协议,允许转载或二创,但需表明出处并采用同协议发布。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇