如何重新编译/重建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