软件源码如何编译-Linux源码包安装方法解读

其实Linux下安装源码包是最常用的。 在日常管理工作中,大多数软件都是通过源代码的方式安装的。 要安装源码包,我们需要自己将源码编译成二进制可执行文件。

如果你能阅读并理解这种源代码,那么你就可以改变那些源代码自定义函数,然后将其编译成你想要的。 使用源码包的好处不仅在于可以自定义和更改源代码,还可以自定义相关功能,因为源码包可以在编译时添加额外的选项。

源码包的编译使用linux系统中的编译器。 常见的源码包通常都是用C语言开发的,这也是因为C语言是linux上最标准的编程语言。 Linux上的C语言编译器称为gcc,它可以用来将C语言转换成可执行的二进制文件。

所以如果你的机器上没有安装gcc,就没有办法编译源代码。 您可以使用 yum install -y gcc 来完成安装。

安装源码包通常需要三个步骤:

1)./配置

在这一步中,您可以自定义功能并添加相应的选项。 您可以使用 ./configure --help 命令检查选项。 在这一步中,你将手动检查你的linux系统和相关包是否有编译源码包所需的库,因为没有某个库,编译就无法完成。

只有测量通过后才能生成Makefile。

其中--prefix指的是安装路径,--with指的是该文件的安装所依赖的库文件

2)使

使用此命令将根据Makefile中预设的参数进行编译,尽管gcc在这一步中工作。

3)进行安装

安装步骤,生成相关软件存放目录和配置文件的过程。

上述3个步骤对于所有源码包软件来说都不相同,安装步骤也不是这样的,也就是说源码包的安装没有一定的标准安装步骤。

这就需要你拿到源码包并解压,然后单步进入目录查找相关帮助文档,通常以INSTALL或README为文件名。 所以,你一定要检查一下。

Linux下config/configure/Configure、make、make test/make check、sudo make install的作用

配置/配置/配置

这是用来衡量你的安装平台的目标特性。例如,它会检查你是否有CC或GCC,它不需要CC或GCC,它是一个shell脚本

这一步通常用于生成Makefile,为下一步编译做准备。 您可以通过在configure后添加参数来控制安装,例如:

./configure --prefix=/usr

上面的意思是把软件安装在/usr下

可执行文件将安装在 /usr/bin 中(而不是默认的 /usr/local/bin)

资源文件将安装在 /usr/share 中(而不是默认的 /usr/local/share)

同时可以通过指定--sys-config=参数来设置一些软件的配置文件

还有诸如:--with、--enable、--without、--disable等参数来控制编译,可以通过./configure --help查看详细帮助

制作

这一步是用来编译的,它从Makefile中读取指令,然后编译

这一步就是编译,大部分源码包都是通过这一步编译的

当然,有些perl或python编译的软件需要调用perl或python来编译

如果make过程中出现错误,你得记下错误代码(不只是最后一行),然后你可以向开发者提交bugreport(一般INSTALL里有提交地址),或者你的系统有少依赖库等等,这些需要自己仔细研究错误码。

添加参数-j,优化多核多线程的编译过程

进行测试/进行检查

顾名思义,这一步是检查上一步的make,保证make没有错误,即这一步的测试和检查必须全部OK,错误为0

须藤进行安装/进行安装

这一步用于安装软件源码如何编译,它还会从Makefile中读取指令并安装到指定位置

这个命令是用来安装的,一般需要有root权限(因为需要向系统写入文件),所以上面使用了sudo。

在编译源码,或者执行命令而没有确认执行的命令是否执行成功的情况下,我们也会使用 echo $? 供测试用。

如果返回值为0,则执行成功; 如果返回值不为0,则失败。此方法适用于./configure make make install等命令

> # 回显 $?

源码包安装形式遵循的最基本原则:

configure(配置)make(编译)make install(安装)哪个链接错误,需要删除文件重新配置、编译、安装

每一步都用 echo $? 进行测试以确保它是正确的。

卸载软件

两种形式:

直接在安装目录删除

rm -rf 安装目录

在解压安装目录下执行(少数软件支持:如:pcre)

进行卸载

安装编译工具gcc

百胜安装海湾合作委员会

百胜安装 gcc-c++

重新编译需要清除之前编译的信息

使干净

示例:安装apache软件

1 下载源码包

下载链接:#apache24

下载源码包必须到官网下载。 不要在网上随意下载软件源码如何编译,这样很不安全。 因为你下载的源码包很可能已经被改变了。

[root@localhost src]# cd /usr/local/src/

[root@localhost src]# wget

2 解压源码包

[root@localhost src]# tar -jxvf httpd-2.2.24.tar.bz2

3 配置相关选项并生成Makefile

[root@localhost src]# cd httpd-2.2.24

[root@localhost httpd-2.2.24]# ./configure --help |less

使用 ./configure --help 命令查看可用选项。 常用的有 --prefix=PREFIX 这个选项的意思是定义软件包安装在哪里。

[root@localhost httpd-2.2.24]# ./configure --prefix=/usr/local/apache2

不幸的是,一开始安装就报错,因为没有gcc编译器,需要先安装。

[root@localhost httpd-2.2.24]# yum install -y gcc

由于gcc依赖的包较多,安装时间会较长。 安装完成后,继续前面的步骤。

[root@localhost httpd-2.2.24]# ./configure --prefix=/usr/local/apache2

验证此步骤是否成功的命令是:

[root@localhost httpd-2.2.24]# echo $?

如果返回值为“0”,则执行成功,否则不成功。 至此,Makefile就成功生成了。 如果有makefile就直接make,然后make install

[root@localhost httpd-2.2.24]# ls -l Makefile

-rw-r--r-- 1 root root 8954 五月 13 12:02 Makefile

4 编译

[root@localhost httpd-2.2.24]# make

-bash:make:找不到命令

又出错了,提示没有检测到“make”命令。 解决办法是安装make工具。

[root@localhost httpd-2.2.24]# yum install -y make

继续做

[root@localhost httpd-2.2.24]# make

编译时会出现很多乱七八糟的消息,编译时间比较长,CPU使用率会很高。 这是因为CPU估计是高速的。 编译后使用echo $? 验证是否正常、成功。

[root@localhost httpd-2.2.24]# echo $?

如果为0,则可以执行最后一步。

5 安装

[root@localhost httpd-2.2.24]# make install

当然,你也可以使用 echo $? 查看是否安装正确。 经过这一步,“/usr/local/apache2”目录下会减少很多目录。

[root@localhost httpd-2.2.24]# ls /usr/local/apache2/

bin cgi-bin 错误图标 lib man 模块

构建conf htdocs包括日志手册

启动阿帕奇服务

shell># /usr/local/apache2/bin/apachectl 启动/停止/重新启动

注意:apachectl(字母“l”)

至此,apache源码安装完成。 事实上,在日常的源码安装工作中,并不是每个人都能像这样顺利完成安装。 有很多情况会因为错误而无法完成安装。

一般是由于缺少某个库文件造成的。 这就需要你仔细思考错误信息或者检查当前目录下的“config.log”来获取相关信息。 另外,如果自己解决不了,就去网上google一下,通常都会得到你想要的答案。

安装apache2.4.2的问题

Apache2.4下载地址:

#./configure --prefix=/usr/local/apache2 检测编辑环境时出现:

检查年利率...没有

配置:错误:未找到 APR。 请阅读文档

阿帕奇2.4

APR、APR-Util、PCRE、gcc-c++等包必须安装,文档URL地址

解决方案:

1.下载所需软件包:

获取

获取

获取

2.编译安装:

yum 删除 apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

具体步骤如下:

a: 解决apr未找到的问题

[root@xt测试]# tar -zxf apr-1.4.5.tar.gz

[root@xt测试]# cd apr-1.4.5

[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr

[root@xt apr-1.4.5]# make && make install

b: 解决APR-util未找到的问题

[root@xt测试]# tar -zxf apr-util-1.3.12.tar.gz

[root@xt 测试]# cd apr-util-1.3.12

[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config # 注意apr-1-config(编号 1)

[root@xt apr-util-1.3.12]# make && make install

c:解决PCR问题

[root@xt test]#unzip -o pcre-8.37.zip # -o 以压缩文件中修改时间最新的文件为标准,设置压缩文件的修改时间与文件相同。

[root@xt测试]#cd PCRE-8.37

[root@xt PCRE-8.10]#./configure --prefix=/usr/local/pcre

错误如下,说需要c++编辑器

配置:错误:您需要 C++ 编译器来支持 C++。

执行 yum install gcc gcc-c++ 安装编辑器

[root@xt PCRE-8.10]#yum install gcc gcc-c++

[root@xt PCRE-8.10]#./configure --prefix=/usr/local/pcre

[root@xt PCRE-8.10]#make && make install

4.最后在编译Apache时添加:

./configure --prefix=/usr/local/apache2

--with-apr=/usr/local/apr

--with-apr-util=/usr/local/apr-util/

--with-pcre=/usr/local/pcre

编译成功~

如何查看80端口是否被占用

netstat -tulnp | 网络统计 grep 80

杀死线程

杀死17071

注意:

主 Apache 进程以 root 用户身份运行,而子进程以权限较低的 apache 用户身份运行。 子进程的数量由配置决定。

示例:安装内存缓存

1、安装libevent(Memcache使用libevent库进行Socket处理,所以需要安装libevent)

下载链接:

软件源码如何编译-Linux源码包安装方法解读

tar zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure --prefix=/usr/local/libevent

制作 && 制作安装

# 建立libevent-2.0.so.5到/usr/lib的软连接,这样memcached运行时就会找到libevent库

cd /usr/lib

ln -s /usr/local/libevent/lib/libevent-2.0.so.5 libevent-2.0.so.5 (具体版本取决于你安装的版本)

2.安装memcached

下载链接:

tar zxvf memcached-1.4.20.tar.gz

cd memcached-1.4.20

./configure --prefix=/usr/local/memcached-1.4.20 --with-libevent=/usr/local/libevent

制作

进行安装

3.启动memcached

cd /usr/local/

ln -s memcached-1.4.20 memcached

/usr/local/memcached/bin/memcached -d -p 11211 -u root -c 1024 -m 1024 -l 192.168.112.128

4.安装PHP支持memcache扩展

cd /根/软

tar -zxvf memcache-3.0.6.tgz

cd memcache-3.0.6

/usr/local/php/bin/phpize

./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir

制作 && 制作安装

成功后会生成PHP支持的扩展模块

ls /usr/local/php-5.4.17/lib/php/extensions/no-debug-non-zts-20100525/

将扩展添加到 php.ini

vim /usr/local/php/etc/php.ini

[内存缓存]

扩展名=memcache.so

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 软件源码如何编译-Linux源码包安装方法解读 https://www.wkzy.net/game/168061.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务