知识库

个人知识管理

用户工具

站点工具


利用nexus3自建内网ubuntu_apt仓库

利用nexus3自建内网ubuntu apt仓库

前言

在内网搭建ubuntu软件源一般可以使用apt-mirror同步整个官方源镜像的方法,再利用apache或者nginx搭建一个文件托管服务器实现内网ubuntu系统的软件安装,见使用 apt-mirror 配置 Ubuntu 本地软件仓库

但是整个镜像源太大,100多个G,一般还限速,而且正常开发用不到所有的包,有点浪费。

在内网搭建完成nexus3仓库服务后,我们可以实现自建ubuntu apt源,按需上传需要的包,实现内网ubuntu系统的软件安装和更新,相对而言可以更加快速的搭建完成apt源。

下面介绍一下通过nexus3搭建apt源的基本步骤,如下操作基于nexus3版本3.18.0

操作步骤

创建PGP签名密钥对

在创建apt仓库时需要用到PGP签名密钥用于软件的加解密,在linux上使用如下命令生成密钥对:

apt-get update
apt-get install gpg // 一般默认安装,可以不用安装。
gpg --full-generate-key
gpg --list-keys
cd <path to the foolder to import the key pair>
gpg --armor --output public.gpg.key --export <gpg key Id>
gpg --armor --output private.gpg.key --export-secret-key <gpg key Id>

执行gpg –full-generate-key时按照提示选择对应选项,一般都默认。

其中有一项需要选择密钥过期时间,由于是内网,图方便可以选择永不过期选项。

输入用户名和邮箱,输入一个密码并再次确认后,就会生成密钥并显示密钥ID,形如515F58C16D58E682E91ACEFF17B5C97F9A816AD7

最后两个命令会根据密钥ID生成公钥文件public.gpg.key和私钥文件private.gpg.key

创建apt源仓库

在nexus3管理页面创建一个apt hosted仓库,主要步骤是

填写仓库名

如ubuntu-bionic等。

选择apt仓库的发行版

一般和官方保持一致,比如想建立的是ubuntu 18.04的源,就填入对应发行版代号bionic

填入pgp私钥

将第一步生成的pgp私钥文件的内容填入创建的apt hosted仓库的Signing Key区域内。

选择仓库对应存储位置

可以体检创建一个对应的Blob Store存储区。

按需勾选其他一些选项,确认后保存,至此一个apt源已经完成搭建,可以在仓库页面看到建立的仓库URL。

配置ubuntu客户端导入公钥

ubuntu客户端如果想要使用建立的apt私有源,需要导入对应的pgp公钥,在ubuntu客户端执行如下命令导入公钥

sudo apt-key add <full folder path in the container>/public.gpg.key

配置客户端apt源

修改客户端ubuntu系统的源文件/etc/apt/sources.list

sources.list
deb <repository URL> <distribution> main

如果只上传特定架构的包,则要写成如下形式

sources.list
deb [arch=amd64] <repository URL> <distribution> main

sources.list
deb [arch=i386] <repository URL> <distribution> main

repository URL 和 distribution 都是建立仓库是填写的对应内容。

完成后输入如下命令测试能否正常更新。

sudo apt-get update

上传软件包到仓库

少量包可以通过图形界面一个个选中上传,很多包的话可以选择使用脚本结合nexus3提供的API进行批量上传。

基本命令如下

curl -u "admin:admin123" -H "Content-Type: multipart/form-data" -F "apt.asset=@./test.deb" "http://localhost:8081/repository/apt-hosted/"

离线包的制作可以参考ubuntu缓存软件包用于离线安装

参考引用

利用nexus3自建内网ubuntu_apt仓库.txt · 最后更改: 2019/09/11 00:49 (外部编辑)