编译 Ubuntu 软件包
记录了在 Ubuntu 22.04 系统上,如何下载并编译 iperf3
,得到适用于 Ubuntu 的 .deb
安装包。
安装工具
首先需要安装 dpkg-dev
软件包:
apt install dpkg-dev
下载源代码
手动下载
打开 Ubuntu Packages 网站,搜索需要编译的软件包,注意选择自己的系统版本:
搜索结果:
点击打开软件包详情页面:
在页面右侧的 Download Source Package
处下载源码:
假设下载完成后的目录结构如下:
.
├── iperf3_3.9-1build1.debian.tar.xz
├── iperf3_3.9-1build1.dsc
└── iperf3_3.9.orig.tar.gz
在当前目录运行解压命令:
dpkg-source -x iperf3_3.9-1build1.dsc
完成后应当得到以下目录结构:
.
├── iperf3-3.9/* # 忽略子文件
├── iperf3_3.9-1build1.debian.tar.xz
├── iperf3_3.9-1build1.dsc
└── iperf3_3.9.orig.tar.gz
其中 iperf3-3.9/
为根据 iperf3_3.9-1build1.dsc
文件中的信息,解压得到的源码文件夹。
自动下载
手动下载的步太复杂了,可以直接使用命令来获取源码。
首先要确保 /etc/apt/source.list
中配置了 deb-src
的地址,例如以下配置中包含了 deb-src
开头的信息(以下配置为 Ubuntu 22.04 系统使用,其他版本请按需修改):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
注意:修改配置后需要运行 apt update
来更新索引。
准备完成后即可下载源代码:
apt source iperf3
即可在当前目录得到和手动下载一致的目录结构:
.
├── iperf3-3.9/* # 忽略子文件
├── iperf3_3.9-1build1.debian.tar.xz
├── iperf3_3.9-1build1.dsc
└── iperf3_3.9.orig.tar.gz
编译软件包
首先进入到源代码目录:
cd iperf3-3.9/
然后使用以下命令自动安装编译所需的工具:
apt build-dep iperf3
然后开始编译:
dpkg-build-package
编译完成后回到上级目录,并查看编译结果:
cd ..
ls *.deb
按需安装编译的 .deb
软件包即可。