当前位置 : 主页 > 操作系统 > centos >

Ubuntu/Debian 自有软件包构建私有源详解

来源:互联网 收集:自由互联 发布时间:2023-07-28
以下是“Ubuntu/Debian自有软件包构建私有源”的详细攻略: 什么是自有软件包构建私有源? 自有软件包构建私有源是指在Ubuntu/Debian系统上,自行构建软件包并发布到自己的私有源(也称

以下是“Ubuntu/Debian自有软件包构建私有源”的详细攻略:

什么是自有软件包构建私有源?

自有软件包构建私有源是指在Ubuntu/Debian系统上,自行构建软件包并发布到自己的私有源(也称为APT存储库)中,在系统中安装这些软件包时可以通过APT包管理器来进行。这样做可以方便地管理自己的软件包,同时也能够在多台服务器上共享同一个源。

构建私有源的步骤
  1. 安装构建软件包所需的工具和依赖:

首先需要安装build-essentialdevscriptsdh-make等软件包来构建源代码、打包和编译软件包。同时也需要安装其他软件的构建依赖,例如GNU Autotools(autoconf、automake、libtool和pkg-config)以及CMake、Python等,这些依赖因软件包而异。

$ sudo apt-get update
$ sudo apt-get install build-essential devscripts dh-make autotools-dev cmake python
  1. 构建软件包:

构建软件包的方式也因软件包而异,一般是从源码、二进制文件、RPM包等打包格式中下载源代码,在本地进行打包和编译。以下是从源码构建软件包的流程:

  • 下载源代码
  • 解压缩源代码,并进入源代码目录
  • 在源代码目录下运行debian/rules binary命令,该命令会按照Debian的标准方式进行打包,生成.deb文件

以下是构建nginx软件包的示例:

$ wget https://nginx.org/download/nginx-1.21.3.tar.gz
$ tar -xf nginx-1.21.3.tar.gz
$ cd nginx-1.21.3
$ sudo apt-get build-dep nginx    # 安装构建依赖
$ debuild -us -uc    # 构建软件包
  1. 安装和配置APT存储库:

构建软件包完成后,需要将软件包发布到APT存储库中,这样才能在其他机器上安装这些软件包。以下是创建APT存储库并将软件包上传的步骤:

  • 安装reprepro软件包,该软件能够创建APT存储库和上传软件包
  • 创建APT存储库
  • 将生成的*.deb软件包添加到APT存储库
  • 生成APT存储库的metadata
  • 上传APT存储库到服务器

以下是创建APT存储库并将软件包上传到该存储库的命令:

$ sudo apt-get update
$ sudo apt-get install reprepro
$ mkdir -p ~/myrepo/{conf,dists,indices,logs,pool}
$ cd ~/myrepo
$ nano conf/distributions  # 配置存储库信息

conf/distributions文件中添加以下信息:

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

Origin: Your Name
Label: Your Label
Codename: yourcodename
Architectures: i386 amd64   # 软件包支持的CPU架构
Components: main
Description: Your custom software repository
SignWith: YOUR_SIGNING_KEY_ID

添加软件包到APT存储库:

$ cp /path/to/nginx_1.21.3-1_amd64.deb pool/main/n/nginx/
$ reprepro includedeb yourcodename /path/to/nginx_1.21.3-1_amd64.deb

生成APT存储库的metadata和签名:

$ reprepro export
$ gpg --armor --output ~/myrepo/public.key --export YOUR_SIGNING_KEY_ID
$ reprepro export | gpg --clearsign --default-key YOUR_SIGNING_KEY_ID | tee ~/myrepo/Release.gpg
$ rm -f ~/myrepo/inRelease   # 删除旧的metadata
$ cd ~/myrepo
$ reprepro --verbose -Vb . includedeb yourcodename /path/to/nginx_1.21.3-1_amd64.deb
$ reprepro --verbose -Vb . export

将APT存储库上传到服务器:

$ scp -r ~/myrepo/ user@server:~/myrepo/
  1. 配置APT源:

在客户端上配置APT源,即可安装从私有源中构建的软件包:

$ sudo apt-get update
$ sudo apt-get install apt-transport-https
$ sudo nano /etc/apt/sources.list.d/mysources.list

/etc/apt/sources.list.d/mysources.list文件中添加以下内容:

deb [trusted=yes] https://myserver/myrepo/ yourcodename main

执行以下命令以完成最后一步更新并安装nginx:

$ sudo apt-get update
$ sudo apt-get install nginx
实战:构建Nginx和Redis软件包,发布到私有源中

以上是构建APT存储库的流程,本节将以Nginx和Redis软件包的构建和发布为例进行说明。

  1. 从官网下载Nginx和Redis源代码
$ wget https://nginx.org/download/nginx-1.21.3.tar.gz
$ wget http://download.redis.io/releases/redis-6.2.5.tar.gz
  1. 构建Nginx软件包
$ tar -xf nginx-1.21.3.tar.gz
$ cd nginx-1.21.3
$ sudo apt-get build-dep nginx
$ debuild -us -uc
  1. 构建Redis软件包
$ tar -xf redis-6.2.5.tar.gz
$ cd redis-6.2.5
$ debuild -us -uc
  1. 安装和配置APT存储库

按照上述的APT存储库配置流程,将构建好的Nginx和Redis软件包添加到APT存储库中即可。

  1. 客户端安装Nginx和Redis

在客户端上执行以下命令即可从私有源中安装Nginx和Redis:

$ sudo apt-get update
$ sudo apt-get install apt-transport-https
$ sudo nano /etc/apt/sources.list.d/mysources.list

/etc/apt/sources.list.d/mysources.list文件中添加以下内容:

deb [trusted=yes] https://myserver/myrepo/ yourcodename main

执行以下命令以完成最后一步更新并安装nginx和redis:

$ sudo apt-get update
$ sudo apt-get install nginx redis-server
网友评论