百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux 源码包安装方法详解 linux安装源代码gcc命令步骤

nanshan 2024-12-22 19:55 15 浏览 0 评论

其实,在linux下面安装一个源码包是最常用的, 在日常的管理工作中,大部分软件都是通过源码安装的。安装一个源码包, 是需要我们自己把源代码编译成二进制的可执行文件。

如果你读得懂这些源代码, 那么你就可以去修改这些源代码自定义功能, 然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能, 因为源码包在编译的时候是可以附加额外的选项的。

源码包的编译用到了linux系统里的编译器, 常见的源码包一般都是用C语言开发的, 这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc, 利用它就可以把C语言变成可执行的二进制文件。

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

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

1)./configure

在这一步可以定制功能, 加上相应的选项即可, 具有有什么选项可以通过 ./configure --help 命令来查看。在这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时需要的库, 因为一旦缺少某个库就不能完成编译。

只有检测通过后才会生成一个Makefile文件。

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

2) make

使用这个命令会根据Makefile文件中预设的参数进行编译, 这一步其实就是gcc在工作了。

3) make install

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

上面介绍的3步并不是所有的源码包软件都一样的, 安装步骤并不是这样, 也就是说源码包的安装并非具有一定的标准安装步骤。

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

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

config / configure / Configure

这个是用来检测你的安装平台的目标特征的。比如它会检测你是不是有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 察看详细的说明帮助

make

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

这一步就是编译, 大多数的源代码包都经过这一步进行编译

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

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

加参数 -j 用于优化多核、多线程的编译过程

make test / make check

顾名思义, 这一步就是对上一步 make 的检查了, 要确保 make 是没有错误的, 也就是这一步的 test、check要全部是 OK 的, error为 0

sudo make install / make install

这一步是用来安装的, 它也从Makefile中读取指令,安装到指定的位置

这条命令来进行安装,一般需要你有 root 权限(因为要向系统写入文件), 所以前面用了 sudo 。

在进行源代码编译, 或者执行命令无法确认所执行的命令是否成功执行的情况下, 我们都会使用 echo $? 来进行测试。

如果返回值是0, 就是执行成功; 如果是返回值是0以外的值, 就是失败。 此方法适用于./configure make make install等命令

> # echo $?

0

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

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

每一个步骤都要使用 echo $? 测试, 以确保准确无误。

卸载软件

两种方式:

在安装的目录直接删除

rm -rf 安装的目录

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

make uninstall

安装编译工具gcc

yum install gcc

yum install gcc-c++

重新编译需要清理上次编译的信息

make clean

实例: 安装apache软件

1 下载一个源码包

下载地址: http://httpd.apache.org/download.cgi#apache24

下载源码包一定要去官方站点去下载, 不要在网上随便下载, 那样很不安全。因为你下载到的源码包很有可能是被人修改过的。

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

[root@localhost src]# wget http://apache.etoak.com/httpd/httpd-2.2.24.tar.bz2

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

返回值如果是 "0" 则执行成功, 否则就是没有成功。此时就成功生成 Makefile 了。如果有makefile, 就直接make, 然后make install

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

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

4 进行编译

[root@localhost httpd-2.2.24]# make

-bash: make: command not found

又发生错误了, 提示 "make" 命令没有发现, 解决办法是安装make工具。

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

继续make

[root@localhost httpd-2.2.24]# make

编译的时候,就会出现类似这么多乱七八糟的信息, 编译的时间比较长, CPU使用率会很高, 这是因为CPU高速计算, 编译完后, 再使用 echo $? 验证一下是否正常成功。

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

0

如果是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 error icons lib man modules

build conf htdocs include logs manual

启动Apache服务

shell># /usr/local/apache2/bin/apachectl start/stop/restart

注意:apachectl(字母"l")

到此, apache源码的安装就完成了, 其实在日常的源码安装工作中, 并不是谁都像这样顺利完成安装的, 遇到错误不能完成安装的情况是很多的。

通常都是因为缺少某一个库文件导致的。这就需要你仔细琢磨报错信息或者查看当前目录下的 "config.log" 去得到相关的信息。另外, 如果自己不能解决那就去网上google一下吧, 通常你会得到想要的答案。

安装apache2.4.2出现的问题

apache2.4下载地址: http://mirrors.shuosc.org/apache//httpd/httpd-2.4.29.tar.gz

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

checking for APR... no

configure: error: APR not found . Please read the documentation

Apache2.4

必须安装APR、APR-Util、PCRE,gcc-c++等包,文档URL地址http://httpd.apache.org/docs/2.4/install.html

解决办法:

1.下载所需软件包:

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz

wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.zip

2.编译安装:

yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

具体步骤如下:

a:解决apr not found问题

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

[root@xt test]# 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 not found问题

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

[root@xt test]# 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:解决pcre问题

[root@xt test]#unzip -o pcre-8.37.zip # -o 以压缩文件内拥有最新更改时间的文件为准, 将压缩文件的更改时间设成和该文件相同。

[root@xt test]#cd pcre-8.37

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

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

configure: error: You need a C++ compiler for C++ support.

执行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

杀死线程

kill 17071

注意:

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

实例: 安装memcache

1.安装libevent(Memcache用到了libevent这个库用于Socket的处理, 所以还需要安装libevent)

下载地址: http://libevent.org/

tar zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

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

make && make install

# 建立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

下载地址: http://memcached.org/downloads

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

make

make install

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 /root/soft

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

make && make install

成功之后会生成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]

extension=memcache.so

相关推荐

Let’s Encrypt免费搭建HTTPS网站

HTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入...

使用Nginx配置TCP负载均衡(nginx tcp负载)

假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。以下是实验种设置的详细信息:Nginx(CenOS8Minimal)-192.168.1.50Kube...

Nginx负载均衡及支持HTTPS与申请免费SSL证书

背景有两台minio文件服务器已做好集群配置,一台是192.168.56.41:9000;另一台是192.168.56.42:9000。应用程序通过Nginx负载均衡调用这两台minio服务,减轻单点...

HTTPS配置实战(https配置文件)

原因现在网站使用HTTPS是规范操作之一,前些日子买了腾讯云服务,同时申请了域名http://www.asap2me.top/,目前该域名只支持HTTP,想升级为HTTPS。关于HTTPS的链接过程大...

只有IP地址没有域名实现HTTPS访问方法

一般来说,要实现HTTPS,得有个注册好的域名才行。但有时候呢,咱只有服务器的IP地址,没注册域名,这种特殊情况下,也能照样实现HTTPS安全访问,按下面这些步骤来就行:第一步,先确认公网...

超详解:HTTPS及配置Django+HTTPS开发环境

众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种。在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数...

Godaddy购买SSL之后Nginx配置流程以及各种错误的解决

完整流程:参考地址:https://sg.godaddy.com/zh/help/nginx-generate-csrs-certificate-signing-requests-3601生成NGI...

Nginx从安装到高可用,一篇搞定(nginx安装与配置详解)

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgc...

阿里云免费证书申请,配置安装,使用tomcat,支持http/https访问

参数说明商品类型默认已选择云盾证书服务(无需修改)。云盾证书服务类型SSL证书服务的类型。默认已选择云盾SSL证书(无需修改),表示付费版SSL证书。如果您需要免费领取或付费扩容DV单域名证书【免费试...

你试过两步实现Nginx的规范配置吗?极速生成Nginx配置小工具

NGINX是一款轻量级的Web服务器,最强大的功能之一是能够有效地提供HTML和媒体文件等静态内容。NGINX使用异步事件驱动模型,在负载下提供可预测的性能。是当下最受欢迎的高性能的Web...

从零开始搭建HTTPS服务(搭建https网站)

搭建HTTPS服务的最初目的是为了开发微信小程序,因为wx.request只允许发起HTTPS请求,并且还必须和指定的域名进行网络通信。要从零开始搭建一个HTTPS的服务需要下面4...

群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问

安全第一步,群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问【新手导向】NAS本质还是一个可以随时随地访问的个人数据存储中心,我们在外网访问的时候,特别是在公网IP下,其实会面临着很多安...

让网站快速升级HTTPS协议提高安全性

为什么用HTTPS网络安全越来越受到重视,很多互联网服务网站,都已经升级改造为https协议。https协议下数据包是ssl/tcl加密的,而http包是明文传输。如果请求一旦被拦截,数据就会泄露产生...

用Https方式访问Harbor-1.9版本(https访问流程)

我上周在头条号写过一篇原创文章《Docker-Harbor&Docker-kitematic史上最详细双系统配置手册》,这篇算是它的姊妹篇吧。这篇文章也将用到我在头条写的另一篇原创文章的...

如何启用 HTTPS 并配置免费的 SSL 证书

在Linux服务器上启用HTTPS并配置免费的SSL证书(以Let'sEncrypt为例)可以通过以下步骤完成:---###**一、准备工作**1.**确保域名已解析**...

取消回复欢迎 发表评论: