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文件中添加以下信息:

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

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu/Debian 自有软件包构建私有源详解 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Linux – mysql 异常:登录不上mysql数据库

    问题描述 重启虚拟机之后,用命令 mysql -u root -p 登录不上 mysql 数据库,页面显示: 但是,用命令 service mysqld status 可以查看状态   解决方案 1、查看 mysql 相关的 pid 命令:ps -ef|grep mysql   2、杀死相关进程 kill -9 2568 kill -9 2454   3、重…

    Linux 2023年4月11日
    00
  • CentOS(Linux)下的apache服务器配置与管理方法分享

    以下是“CentOS(Linux)下的Apache服务器配置与管理方法分享”的完整使用攻略,包含两个示例说明。 安装Apache 打开终端并以下命令以更新软件包: bash sudo yum update 安装Apache: bash sudo yum install httpd 启动Apache服务: bash sudo systemctl start h…

    Linux 2023年5月12日
    00
  • Linux cupsreject命令

    Linux cupsreject 命令的作用与使用方法 Linux cupsreject 命令用于拒绝打印机。它可以帮助用户在 Linux 系统中拒绝某个打印机的打印请求。 Linux cupsreject 命令使用 cupsreject 命令的基本语法如下: cupsreject [选项] [打印机名称] ` 其中,选项是可选。打印机名称是要拒绝的打印机名…

    Linux 2023年5月10日
    00
  • 详解如何从宿主机拖动复制文件到虚拟机VM中的解决方法

    一、背景说明 在使用虚拟机时,经常需要将一些文件从宿主机复制到虚拟机中。但有时候我们发现,虚拟机中无法使用鼠标拖拽来直接复制文件。这是由于虚拟机和宿主机的操作系统不同,无法进行直接拖拽拷贝的原因。本文将详细介绍如何解决这个问题,让我们能够方便地将文件从宿主机拷贝到虚拟机中。 二、解决方案 1.使用共享文件夹 使用共享文件夹是将文件从宿主机拖拽到虚拟机中的最简…

    Linux 2023年5月24日
    00
  • linux iptables防火墙中的工作常用命令

    下面是关于linux iptables防火墙中的工作常用命令的攻略。 一、iptables简介 Iptables是Linux系统中的一个过滤数据包的工具,用于设置和管理防火墙规则,同时也可以用来对数据包进行网络地址转换(NAT)。 二、常用命令 1. iptables -L 用于列出iptables的规则。例如: iptables -L 该命令会列出ipta…

    Linux 2023年5月14日
    00
  • centos 7 安装配置方法图文教程

    CentOS 7 安装配置方法图文教程 目录 准备安装环境 下载 CentOS 7 镜像文件 使用光盘安装 CentOS 7 使用USB安装 CentOS 7 安装完成后的配置 1. 准备安装环境 在安装 CentOS 7 之前,需要确保你的计算机满足以下条件: 至少 2 GB 内存和 20 GB 存储空间 可开启启动菜单(Boot Menu)的计算机 2.…

    Linux 2023年5月24日
    00
  • Linux用户空间与内核地址空间

    Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。 …

    Linux 2023年4月11日
    00
  • Windows系统下安装VirtualBox及安装Ubuntu16.04的详细教程

    Windows系统下安装VirtualBox及安装Ubuntu16.04的详细教程 1. 下载VirtualBox 在官网下载页面:https://www.virtualbox.org/wiki/Downloads上,选择安装包,根据自己的操作系统选择下载。 2. 安装VirtualBox 双击下载好的 VirtualBox 安装包,在安装向导界面中按照提示…

    Linux 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部