会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。
我们上一章说到rpm包的缺点是依赖关系太过于麻烦,这章便带来解决办法和源代码安装编译程序。
RPM包管理命令——yum(Yellowdog Updater Modified)
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
软件仓库的提供方式
FTP服务:ftp://......
HTTP服务:http://......
本地目录:file:///......
借助于YUM软件仓库,可以完成安装,卸载,自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个,手工的去安装每一个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台yum源服务器可以大大缓解软件安装,升级等对于Internet的依赖。
要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装文件的软件仓库,提供软件库的服务器也称为“源”服务器,在客户机中只要正确指定软件仓库的地址信息,就可以通过对应的“源”服务器来安装或更新软件了。
YUM软件仓库即可以作为本地YUM源,即为本地主机提供软件源服务,也可以借助FTP或HTTP协议来进行发布,这样可以面向网络中的所有客户机提供源服务,为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据库(repodata),其中收集了目录下所有rpm包的头部信息。
在Centos7系统的安装光盘中,已针对软件目录Packages/建好了repodata数据,因此只要简单的讲centos7系统盘挂载到指定目录或将光盘全部内容复制到硬盘,通过本地目录,HTTP或FTP进行发布,就可以作为软件仓库了。
本章节主要介绍本地目录file:///......方式提供软件仓库,关于ftp,http方式后面章节会介绍。
yum的配置文件
基本设置:/etc/yum.conf
日志文件:/var/log/yum.log
仓库文件:/etc/yum.repos.d/*.repo
YUM软件仓库
为了简单理解,我们不需要将光盘全部内容复制到硬盘,只需要直接指定我们挂载好的目录即可。
首先挂载目录
如图:

2.为客户机指定YUM仓库位置
客户机指向yum仓库的配置文件位于/etc/yum.repos.d/目录下,文件后缀名.repo为结尾。
切到 /etc/yum.repos.d/ 目录下,并查看
如图:

CentOS-*.repo是centos系统安装好后,系统默认提供的执行centos官方yum软件仓库的配置文件,这些配置文件,我们可以创建一个目录把它们剪切进去,也可以直接删除,这里阿马就直接删除了
如图:

然后执行vi命令创建指向本地yum软件仓库的配置文件
vi /etc/yum.repos.d/centos.repo
并编辑内容
如图:


说明:
配置内容如下:
[centOS7] //仓库名称
name=file source //仓库描述信息
baseurl=file:///mnt/ //URL访问路径,即软件仓库的路径
enabled=1 //启用此软件仓库
gpgcheck=1 //验证软件包的签名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //GPG公钥文件的位置
如果不做软件包的签名验证,可以将gpgcheck=1改为gpgcheck=0,并将gpgkey删除或者注释掉。
做完以上步骤,YUM软件仓库就安装好啦
我们先来试试安装vim命令
yum -y install vim
结果如图下所示就OK了:

接下来我们说说yum的命令格式:
格式:yum <options> <command> <>package>
参数说明:
options常用的有:
-y :如果在工作过程中如要使用者响应,这个参数可以直接回答yes
command:
list :列出在yum server 上面的RPM套件;若执行yum list installed则表示只列出系统中已安装的软件包,yum list available则表示只列出软件仓库中可用(尚未安装)的软件包,yum list update则表示列出可以升级版本的软件包。
install :安装某个套件
update:升级某个套件,如果update后面没有接套件名称,即更新目前主机所有已安装的套件。
info :列出某个套件的详细信息,相当于rpm -qi package内容
clean :将已下载到本机的packages或headers移除
remove :移除已经安装在系统中的某个套件
yum update 全部更新
yum update package 更新指定程序包package
yum check-update 检查可更新的程序
yum info <package>显示安装包信息
yum list 显示所有已经安装和可以安装的程序包
yum list <package>显示指定程序包安装情况
yum search <keyword>查找软件包,当需要根据某个关键词来查找相关的软件包时,可以执行yum search关键词,默认仅根据软件包名称和描述信息进行搜索,若执行 yum search all关键词,可以扩大搜索范围,例如,以下将搜索软件仓库并列出与httpd相关的软件包:yum search all httpd
yum clean headers 清除header
yum clean packages 清除下载的rpm包
yum clean all 清除header与rpm包
yum grouplist 列出所有组
yum groupinstall 安装某个软件组如:yum groupinstall base
下面我们再次安装lrzsz的软件包,体验一下yum的强悍之处。
yum -y install lrzsz (服务机器和客户机器互传文件)
用法:
sz filename :从服务端发送到客户端
rz :从客户端发送到服务端,运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器上
从源代码编译安装程序
几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式生效,只需要Linux安装了gcc,make,automake,autoconf都支持源码安装。
源码安装的优点:
获得最新的软件版本,及时修复BUG
根据用户需要,灵活定制软件功能
因为可以定位到代码,所以debug方便
本机兼容性最好(由于是本机编译过的,只要编译通过,就没有各种库的依赖问题)
源码安装的缺点:
编译麻烦
缺乏自动依赖管理,软甲升级麻烦
源码安装前的准备工作:
源代码下载:.tar和.tar.bz2格式居多,源代码下载推介去官网下载,也可以去第三方下载。
完整性校验,md5sum校验工具,计算md5校验和官方提供的值相比较,判断是否一致,若相同则说明该软件包没有被非法改动,对于校验和不一致的软件包,应尽量不要使用,以免带来病毒,木马等不安全因素。
确认源代码编译环境:需安装支持 C/C++程序编译器。
首先查看有没有gcc编译器
rpm -q gcc
如图:

没有执行下一条命令:

安装成功如图:

可以执行
gcc --version
make --version
开发工具的信息
如图:

获得所需要的源码以后,安装的基本过程包括解包,配置(检查安装环境,并对软件的安装目录,功能选择等参数进行预先设置),编译和安装这几个通用步骤,当然,这四个步骤并不是一成不变的,实际安装时应参考软件自带的文档,如INSTAL,REAMDE。如图所示:

以编译安装apache为例,说明应用程序的源码编译安装过程
下载apache的源码包文件 httpd-2.4.25.tar.gz
下载地址:http://archive.apache.org/dist/httpd/
如图:

(1)本章安装的httpd版本为httpd-2.4.25
(2)安装环境为CentOS7
(3)用户权限必须是root,非root用户请切换至root用户下
(4)安装之前确保本计算机中没有使用rpm安装httpd。使用rpm -q httpd查看
2.解压归档压缩包至当前目录下
首先把下载好的压缩包传到家目录下并解压
或者使用 -C 解压到指定路径下

解压完毕:

3.进入解压后的文件目录并查看
cd httpd-2.4.25
如图:

在这之前我们临时缺少APR lib,临时安装一个,一般来说后缀名带devel的为开发包
# yum -y install apr apr-devel apr-util apr-util-devel pcre pcre-devel
如图:


接下来我们创建一个目录用来配置此包适应本操作系统
如图:

使用./configure [OPTION]...[VAR=VALUE]...,配置此包适应本操作系统
注意:当前所在位置必须是在解压出来的tar包当中!!!
如图:


然后在当前目录下执行make命令进行编译
如图:


编译完成后,在当前目录下执行make install 命令安装
如图:


安装成功了
如果想重新编译,切到源码解压路径下,清理掉第一次编译安装的makefile
cd /root/httpd-2.4.25/
执行:make clean
然后重新编译安装即可。
为httpd添加至环境变量
源码编译安装的包是不能在终端直接敲命令使用的。
如果想使用其命令可以进入其安装目录下的bin目录,直接执行此文件目录中的可执行文件
例如:我想执行httpd下的apachectl命令,那么进入httpd的安装目录/usr/local/httpd,然后进入其bin目录,执行apachectl
如图:

输入 ./apachectl start
结果如下:

然后查看httpd的监听端口,在当前目录下输入:
netstat -anpt | grep httpd
我们会发现这种情况:

这种情况是我们缺少组件导致没有安装导致的,只要在输入
yum install net-tools
这条命令
中途输入y
就安装成功了
如图:



安装成功以后,继续执行
netstat -anpt | grep httpd
这条命令,显示如下:

在浏览器输入你的server的ip访问apache的默认web测试页
注意:要确保防火墙允许http服务的通信,或者直接把防火墙关了
ststemctl stop firewalld
如图:

接下来打开浏览器输入我们server的ip,
例如阿马这里的ip是:192.168.1.105
我们会发现如下内容:

此时说明http已经安装好了,可以工作了,在httpd的安装子目录中,htdocs是存放浏览器页面的,我们可以进入更改内容。
阿马这里把
It works!
改为
Hello Linux
如图:

更改之前是It works!

更改之后是Hello Linux

这时候我们在打开浏览器输入自己servier的ip名称,会发现此时浏览上页面的内容是我们刚刚修改的Hello Linux
如图:

如果想要直接在任何目录都能使用httdp的命令,就可以在/etc/profile文件里面添加
export PATH=$PATH:/usr/local/httpd/bin
然后保存退出即可。
故事很短,道理很长,学无止境,不忘初心,砥砺前行
今天的杂谈就到这里,不一定对每个人有用,但是对有需要的人会有帮助,做不到人民币,人人喜欢 如果觉得小编说的对,介绍给你们同事,朋友,亲戚吧,谢谢你们呦!,每天不定时更新哦!!!
微信搜索 “徐阿马杂谈” 关注公众号,把你们想知道的,想提的意见发给我,我会采纳!期待你的关注!





