编译安装源码包的步骤为:1. 从官网等可靠来源下载.tar.gz或.tar.bz2格式的源码包;2. 使用tar命令解压源码包,如tar -zxvf package.tar.gz或tar -jxvf package.tar.bz2;3. 进入解压后的源码目录,使用cd命令切换路径;4. 运行./configure脚本检查系统环境并生成makefile文件,可通过–prefix指定安装路径,若缺少依赖则需根据提示安装对应开发库;5. 执行make命令根据makefile编译源码,可使用make -j n利用多核加速编译;6. 执行sudo make install将编译好的文件安装到指定目录,此步通常需要root权限;7. 若安装路径非标准目录,需修改~/.bashrc或~/.zshrc文件,添加path和ld_library_path环境变量,并执行source命令使其生效。

简单来说,编译安装源码包就是把一堆人类能看懂的代码,变成机器能执行的程序。Configure负责配置编译环境,Make根据配置好的环境进行编译,最后Make install将编译好的程序安装到指定位置。这就是一个化腐朽为神奇的过程。
解决方案
编译安装源码包通常遵循以下步骤:
获取源码包: 从官方网站或者其他可靠来源下载源码包,通常是
.tar.gz
或
.tar.bz2
格式的压缩文件。
解压源码包: 使用
tar
命令解压源码包。例如:
tar -zxvf package.tar.gz # 解压.tar.gz文件tar -jxvf package.tar.bz2 # 解压.tar.bz2文件
进入源码目录: 使用
cd
命令进入解压后的源码目录。
运行
configure
脚本: 这是编译安装的关键步骤。
configure
脚本会检查你的系统环境,比如是否安装了必要的依赖库,然后生成
Makefile
文件。
./configure --prefix=/usr/local/package # 指定安装目录,默认是/usr/local
--prefix
选项指定了程序的安装目录,如果不指定,默认安装到
/usr/local
目录下。还可以根据需要添加其他选项,例如
--enable-feature
或
--disable-feature
来启用或禁用某些功能。
如果缺少依赖,
configure
会报错,你需要根据错误提示安装相应的依赖库。在Debian/Ubuntu系统上,可以使用
apt-get install
命令安装,在CentOS/RHEL系统上,可以使用
yum install
命令安装。
运行
make
命令:
make
命令会根据
Makefile
文件中的指令,将源码编译成可执行文件。
make
如果你的系统是多核处理器,可以使用
make -j
来并行编译,加快编译速度。例如,如果你的系统有8个核心,可以使用
make -j 8
。
编译过程中可能会出现错误,你需要根据错误提示修改源码或者安装缺失的依赖库。
运行
make install
命令:
make install
命令会将编译好的可执行文件、库文件、配置文件等安装到指定目录。
sudo make install # 需要root权限
通常需要
root
权限才能执行
make install
命令,因为系统目录通常需要
root
权限才能写入。
配置环境变量: 如果程序安装到了非标准目录,你需要将程序的安装目录添加到环境变量中,才能在命令行中直接运行程序。
修改
~/.bashrc
或
~/.zshrc
文件,添加以下内容:
Stable Diffusion 2.1 Demo
最新体验版 Stable Diffusion 2.1
101 查看详情
export PATH=$PATH:/usr/local/package/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/package/lib
然后执行
source ~/.bashrc
或
source ~/.zshrc
命令,使环境变量生效。
为什么
configure
脚本很重要?它做了哪些事情?
configure
脚本就像一个项目经理,负责统筹整个编译过程。它主要做了以下几件事情:
检查系统环境: 检查编译器、库文件等依赖是否安装,版本是否符合要求。生成
Makefile
: 根据系统环境和用户指定的选项,生成
Makefile
文件。
Makefile
文件包含了编译的指令,
make
命令会根据
Makefile
文件中的指令进行编译。创建目录: 创建必要的目录,例如安装目录、临时目录等。执行其他配置任务: 根据具体的项目,执行其他配置任务,例如生成配置文件、设置编译选项等。
configure
脚本的目的是为了让编译过程更加自动化和可移植。它可以根据不同的系统环境生成不同的
Makefile
文件,从而保证程序可以在不同的系统上编译和运行。
遇到
configure
报错,常见的错误有哪些?如何解决?
configure
报错是编译安装过程中常见的问题。常见的错误包括:
缺少依赖库: 错误提示通常会告诉你缺少哪个库,例如
configure: error: *** libpng not found
。解决方法是安装相应的库。在Debian/Ubuntu系统上,可以使用
apt-get install libpng-dev
命令安装,在CentOS/RHEL系统上,可以使用
yum install libpng-devel
命令安装。注意,需要安装的是
-dev
或
-devel
后缀的开发包,而不是运行时库。编译器版本不符合要求: 错误提示通常会告诉你编译器版本过低或过高。解决方法是升级或降级编译器。权限不足: 错误提示通常会告诉你没有权限创建目录或写入文件。解决方法是使用
sudo
命令运行
configure
脚本,或者修改目录的权限。其他错误: 错误提示可能是一些其他的错误,例如配置文件错误、脚本错误等。解决方法是仔细阅读错误提示,查找相关的资料,或者向社区寻求帮助。
解决
configure
报错的关键是仔细阅读错误提示,理解错误的原因,然后根据错误的原因采取相应的解决方法。
make
和
make install
的区别是什么?
make
命令负责将源码编译成可执行文件,而
make install
命令负责将编译好的可执行文件、库文件、配置文件等安装到指定目录。
make
命令只是编译源码,不会修改系统文件。而
make install
命令会修改系统文件,例如将可执行文件复制到
/usr/local/bin
目录下,将库文件复制到
/usr/local/lib
目录下,将配置文件复制到
/usr/local/etc
目录下。因此,通常需要
root
权限才能执行
make install
命令。
可以把
make
看作是生产零件,
make install
看作是组装和安装。
如何卸载通过源码编译安装的软件?
卸载通过源码编译安装的软件,通常没有像包管理器那样方便的卸载命令。一般来说,有以下几种方法:
使用
make uninstall
命令: 有些源码包提供了
make uninstall
命令,可以直接卸载软件。在源码目录下执行
sudo make uninstall
命令即可。但是,并不是所有的源码包都提供了
make uninstall
命令,如果没有,就需要手动卸载。
手动删除文件: 手动删除安装目录下的文件。首先,你需要知道软件安装到了哪些目录。如果你在
configure
的时候指定了
--prefix
选项,那么软件就安装到了指定的目录下。如果没有指定,默认安装到
/usr/local
目录下。然后,你需要手动删除这些目录下的文件。例如:
sudo rm -rf /usr/local/package
这种方法比较麻烦,而且容易遗漏文件。
记录安装文件: 在安装之前,使用
make install
命令的
-n
选项,可以模拟安装过程,并输出安装的文件列表。然后,将这些文件列表保存下来,卸载的时候,就可以根据文件列表删除文件。例如:
make install -n > install.log
然后,根据
install.log
文件中的文件列表删除文件。
这种方法比较可靠,但是需要提前做好准备。
卸载通过源码编译安装的软件需要小心谨慎,避免误删系统文件。建议在卸载之前备份相关文件。
以上就是如何编译安装源码包 configure/make编译流程详解的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/937394.html
微信扫一扫
支付宝扫一扫