8.2 源码包管理
source code需要经过GC,C++编译环境编译才能运行 可以设定个人设置,但配置复杂 软件包示例: nginx-1.8.1.tar.gz
---------------------------------------------------------------------------------------------------------------------------------
8.2.1 获取源码包
官方网站,可以获得最新的软件包:
Apache:wwwapache.org
Nginx:www.nginx.org
Tengine:tengine.taobao.org
=========================================================================
8.2.2 实例
源码包安装步骤: 1.准备编译环境,如编译器 2.下载与解压 3.配置 4.编译 5.安装 6.启动测试
---------------------------------------------------------------------------------------------------------------------------------
1.准备编译环境,如编译器
yum install -y gcc make zlib-devel pcre pcre-devel openssl-devel
2.下载与解压
下载方法一: # 安装wget yum install -y wget # 下载源代码 wget https://tengine.taobao.org/download/tengine-2.4.1.tar.gz 下载方法二: 虚拟机安装VMtools:虚拟机-》安装VMtools 从原机下载并复制,注意检查大小 useradd li # 非必须创建 tar -xvf tengin-2.4.1.tar.gz cd tengin-2.4.1 # 域名解析有误 vim /etc/resolv.conf nameserver=8.8.8.8 nameserver=8.8.4.4
3.配置
./configue --user=li --group=li --prefix=/usr/local/nginx # 如果有问题,删除文件夹,重新解压
4.编译
make
5.安装
make install
6.启动测试
# 停止httpd服务及防火墙 systemctl stop httpd systemctl stop firewalld /usr/local/nginx/sbin/nginx # 使用浏览器访问本机的IP,http://127.0.0.1,如果能看到NGINX的网页,说明部署成功。
Linux源码包管理是指在Linux操作系统中,对软件源代码进行打包、分发、安装、升级和卸载的一种方法。源码包通常包含了软件的源代码以及编译所需的配置文件和脚本,用户可以通过源码包来安装软件,也可以根据自己的需求进行定制化修改。
在Linux源码包管理中,主要涉及到以下几个步骤:
1. 获取源码包:用户可以从软件官网、开源社区或者Linux发行版的源码包仓库中获取所需的源码包。源码包通常以.tar.gz或.tar.bz2格式压缩,可以通过wget、curl等命令下载。
2. 解压源码包:获取源码包后,需要使用tar命令将其解压,解压后的目录包含了软件的源代码以及编译所需的配置文件和脚本。
3. 编译源码:在解压源码包后,需要使用编译器(如gcc、g++等)对源代码进行编译。编译过程可能会涉及到依赖库的安装和链接,需要确保系统中已安装了所有依赖的库。
4. 安装软件:编译完成后,需要将编译生成的可执行文件、库文件等安装到系统中。安装过程可能需要管理员权限,可以使用sudo命令进行权限提升。
5. 配置软件:根据软件的需要,可能需要对软件进行配置,如设置软件的运行参数、安装路径等。配置过程通常涉及修改配置文件或者运行安装脚本。
6. 升级和卸载:对于已经安装的源码包,可以通过重新获取源码包、编译和安装的方式实现软件的升级。卸载源码包则需要删除安装文件,并取消相关的配置。
与二进制包管理相比,Linux源码包管理具有以下优点:
1. 可定制性:用户可以根据自己的需求修改源代码,定制化软件的功能和性能。
2. 兼容性:源码包可以在不同的Linux发行版上编译和运行,不受操作系统版本的限制。
3. 安全性:源码包可以让用户检查和审计软件的源代码,提高软件的安全性。
然而,Linux源码包管理也有一些缺点:
1. 安装速度慢:编译源代码需要消耗较长的时间,尤其是在硬件性能较低的情况下。
2. 报错不易解决:编译过程中可能会出现各种错误,对于不熟悉编译过程和依赖库的用户来说,解决错误可能比较困难。
3. 依赖库管理复杂:源码包管理需要自行解决依赖库的问题,对于一些复杂的软件,可能需要安装大量的依赖库。