Ubuntu 中下载软件包源代码然后构建软件包并将特定标志传递给配置部分的方法是什么?我希望我能正确解释我的意思。
从源代码安装几乎总是遵循以下步骤:
./configure --FLAG-1 --FLAG-2
make && make install
如何在配置过程中控制指定标志 1 和 2?
答案1
您可以在 Ubuntu Repos 中下载大多数软件包的源代码。要从源代码编译软件包,您可以执行以下操作:
sudo apt-get build-dep doodad
这将安装所有依赖项。现在下载源代码:
apt-get source doodad
cd doodad*
编辑debian/rules
以定制构建过程:
$EDITOR debian/rules
最后,将其构建为.deb
(以便于卸载/依赖性解决):
dpkg-buildpackage -rfakeroot -uc -b
(参数将告诉命令伪造根,不对包进行签名,并且不包括源代码)
现在您可以使用以下命令安装刚刚构建的包:
cd ..
sudo dpkg -i doodad-<version>-ubuntu-<crap>.deb
(确保安装非-dev
版本)
然后你可以使用以下方法进行清理:
rm -rf doodad*
这是在 Ubuntu 12.04 上使用该irssi
软件包测试的。您的结果可能会有所不同。
答案2
有关如何从源代码构建的一般解释,请参阅我的回答:
为了解决您的具体的关于此处的问题,./configure
请继续阅读:
要获取您正在编译的程序的相应标志和选项的列表,请输入
./configure --help
Pinta
通过上述命令生成的示例文件的一部分:
`configure' 配置 pinta 1.3 以适应多种系统。
用法:./configure [OPTION]... [VAR=VALUE]...
要分配环境变量(例如 CC、CFLAGS...),请将它们指定为 VAR=VALUE。一些有影响的环境变量:
PKG_CONFIG 到 pkg-config 实用程序的路径
PKG_CONFIG_PATH 要添加到 pkg-config 搜索路径的目录
PKG_CONFIG_LIBDIR 路径覆盖 pkg-config 的内置搜索路径
CC C 编译器命令
CFLAGS C 编译器标志
LDFLAGS 链接器标志,例如 -L< lib dir >(如果您在非标准目录中有库
) LIBS 要传递给链接器的库,例如 -l
CPPFLAGS (Objective) C/C++ 预处理器标志,例如 -I< include dir >(如果您在非标准目录中有头文件)
CPP C 预处理器
如果包或库位于非标准位置或名称与configure
预期不同,您可以通过指定包或库的位置来覆盖默认选项。本文显示。有关 configure 脚本本身使用的标志的更多信息,请参阅此处的讨论。
或者,如果程序不安装在默认位置(层次/usr/local
结构),您可以指定,例如
./configure --prefix=/my/custom/location
还有许多其他选项可供使用,并且传递给的命令列表./configure
可能会变得很长,但它们都非常特定于您正在编译的程序;通常不需要特殊选项。