如何重新编译/重建Debian/Ubuntu Linux二进制源文件包

时间:2020-01-09 10:43:08  来源:igfitidea点击:

问题描述:如何用其他选项重建一个名为foo的Debian/Ubuntu程序包。
如何重新编译.deb软件包?

答:
要构建Debian软件包,需要在系统

  • fakeroot上安装以下软件包/软件:fakeroot软件包在似乎具有root用户特权的环境中运行命令,以进行文件操作。
    这对于允许用户创建包含根权限/所有权的文件的存档(tar,ar,.deb等)非常有用。

  • dpkg-dev:Debian的软件包构建工具

  • 开发环境`您需要在系统上安装gcc,make和所有其他编译器集合。
    在Debian/Ubuntu软件包中,build-essential负责所有工作。

步骤1:安装所需的软件包

输入以下命令

$ sudo apt-get install build-essential fakeroot dpkg-dev

步骤2:安装源代码包

首先,创建一个目录来存储源包,执行:

$ mkdir build
$ cd build

使用apt-get命令为名为foo的软件包安装源代码

$ sudo apt-get source foo

安装所有构建依赖项,执行:

$ sudo apt-get build-dep foo

使用Debian源软件包(.dsc)操纵工具解压缩Debian/Ubuntu源档案,执行:

$ dpkg-source -x foo_version-revision.dsc

要仅编译软件包,您需要将cd放入foo-version目录并发出命令

$ dpkg-buildpackage -rfakeroot -b

如果要传递自定义追加选项进行配置,则可以设置DEB_BUILD_OPTIONS环境变量。
例如,如果要通过名为enable-radio enable-gui的传递选项,请执行:

$ DEB_BUILD_OPTIONS="--enable-gui --enable-radio" fakeroot debian/rules binary

您还可以将一些变量传递给Makefile。
例如,如果要使用gcc v3.4进行编译,请执行:

$ CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui --enable-radio" fakeroot debian/rules binary

一个完整的示例mplayer

让我们看看如何使用enable-radio disable-ivt选项重建mplayer媒体播放器软件包:

# sudo apt-get source mplayer
# sudo apt-get build-dep mplayer
# dpkg-source -x mplayer_version-revision.dsc
# DEB_BUILD_OPTIONS="--enable-gui --enable-radio --disable-ivt" fakeroot debian/rules binary

现在等待一段时间,因为编译过程将花费自己的时间。
要安装新建软件包,请执行:

# dpkg -i ../mplayer_version-revision_arch.deb