vlambda博客
学习文章列表

一看就懂的CentOS基础知识—软件安装




一看就懂的CentOS基础知识—软件安装



Linux 软件安装管理





1.概述

一看就懂的CentOS基础知识—软件安装


1)码包 /开源;可以自由选择所需功能;更适合系统,更稳定高效;卸载方便 /搭建环境时容易拼写错误;安装时间长;编译一旦出错,新手很难解决。


2)脚本安装包,简单快捷 ,缺少自定义性。


3)二进制包(RPM包,系统默认包),方便简单;速度快 /不能看到源代码;功能选择不灵活。



2.源码包安装

一看就懂的CentOS基础知识—软件安装


软件包分类:


1)源码包 //脚本安装包;


优点:


①开源,如果有足够的能力,可以修改源代码;

②可以自由选择所需的功能;

③软件是编译安装,所以更加适合自己的系统,更加稳定、效率更高;

④卸载方便;


缺点:


①安装过程步骤较多,尤其安装较大的软件集合时,容易出错;

②编译过程时间较长,安装比二进制安装时间长;

③因为是编译安装,安装过程中一旦报错新手很难解决;


脚本安装包:


所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,可以执行脚本实现一键安装。但实际安装的还是源码包和二进制包。


优点:安装简单、快捷;

缺点:完全丧失了自定义性;


2)二进制包(RPM包) //


优点:


①包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;

②安装速度比源码包安装快的多;


缺点:


①经过编译,不再可以看到源代码;

②功能选择不如源码包灵活;

③软件可能需要依赖安装;



3.rpm包命名规则

一看就懂的CentOS基础知识—软件安装


RPM包命名规则:

openssh-clients-7.4p1-21.el7.x86_64.rpm软件包名openssh-clients-软件版本7.4p1-发布的次数21-安装平台el7-适应的硬件平台x86_64-包扩展名.rpmel7redhat7的企业版


RPM包管理:


  • 系统RPM包的来源:所有RPM包都在系统光盘的Packages目录中。


  • RPM包命名规则:软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名。


  • RPM包依赖性:

a、树形依赖:a->b->c 解决方法:从后往前安装b、环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可c、模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。

  • yum在线安装:可以方便的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。



4.rpm包安装命令

一看就懂的CentOS基础知识—软件安装


(1)包全名与包名


  • 包全名:操作的包是没有安装的软件包时,使用包全名,而且注意路径。

如:/mnt/cdrom/Packags/zlib-devel-1.2.3.-27.e16.i686.rpm


  • 包名:操作已经安装的软件包时,使用包名,搜索/var/lib/rpm/中的数据库。

如:zlib-devel


(2)RPM安装

rpm -ivh 包全名-i (install) 安装-v (verbose) 显示详细信息-h (hash) 显示进度–nodeps 不检测依赖性(尽量不要使用)



5.rpm软件包升级与卸载

一看就懂的CentOS基础知识—软件安装


1.升级命令


rpm -Uvh 包全名(要升级到的软件版本),如果没有安装这个软件的任何版本,这个命令可以代替rpm -ivh。


2.卸载命令


rpm -e 包名(比如httpd,不需要包全名),这个命令不同于安装和升级,它可以在任何目录运行,原理是去/var/lib/rpm目录中的数据库(如_db0)中查找对应的软件包(已经安装过的rpm包都在这些数据库中),然后卸载。


3.–nodeps这个选项不管是在安装和卸载的时候,最好都不要使用。


4.rpm安装包安装的位置是由软件包开发者决定的,安装后的位置会非常凌乱,所以最好是使用rpm -e命令卸载。


相对于二进制安装,源码安装是指定安装目录了,卸载的时候只需要删除对应的目录就可以完全的卸载,不留一点残余。



6.RPM包查询

一看就懂的CentOS基础知识—软件安装


1.查询是否安装:rpm -q 包名 (查询包是否安装,query) rpm -qa (查询所有已经安装的rpm包,all)。


2.查询软件包详细信息:rpm -qi 包名 (查询软件信息,information) rpm -qip 包名 (查询未安装包信息,package)。


3. 查询包中文件安装位置:rpm -ql 包名 (l , list,列表) rpm -qlp 包名 (查询未安装包信息,package)。


4.查询系统文件属于哪个RPM包:rpm -qf 系统文件名 (查询系统文件属于哪个软件包,file)。


5.查询软件包的依赖性:rpm -qR 包名 (-R 查询软件包的依赖性 ,requires)rpm -qRp 包名(-p 查询未安装包信息 ,package)。



7.RPM包校验

一看就懂的CentOS基础知识—软件安装


RPM 包校验rpm -V 已安装的包名-V (verify) : 校验指定RPM包中的文件,无任何提示, 代表该文件没有被做任何修改验证内容中的8个信息S : 文件大小是否改变M : 文件的类型或文件的权限( rwx )是否被改变5 : 文件MD5 校验和是否改变( 可以看成文件内容是否改变 )D : 设备的主从代码是否改变L : 文件路径是否改变U : 文件的属主( 所有者 ) 是否改变G : 文件的属组是否改变T : 文件的修改时间是否改变验证内容中的文件类型c (config file) : 配置文件d (documentation) : 普通文档g (ghost file) : "鬼"文件, 很少见, 就是该文件不应该被这个RPM包包含L (license file) : 授权文件r (read me) : 描述文件MD5校验



8.RPM包中文件提取

一看就懂的CentOS基础知识—软件安装


rpm2cpio 包全名 | cpio -idv .文件绝对路径 --> 前面的【.】代表当前路径,不能省略。【文件绝对路径】和包里文件的绝对路径对应,也就是告诉了cpio要去包里提取哪个文件。


注:cpio只知道提取文件,并不知道要从什么地方提取文件,因此我们通常要使用【|】管道符或【<】输入重定向告诉cpio我们应该从什么设备去取出文件。


使用输入重定向的cpio命令格式:cpio 选项 < [文件|设备]


选项:


  • -i:copy-in模式,还原。

  • -d:还原时自动新建目录。

  • -v:显示还原过程。



yum安装





yum基本介绍

一看就懂的CentOS基础知识—软件安装


1.yum的优点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)


2.redhat的yum在线安装需要付费,centOS不需要。


3.在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。


文件解析:

[base]name=CentOS-$releasever - Base - mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

4.[base]:名字可以随便起。


5.name= :名字也是随便起。


6.mirrorlist=和baseurl=一个是主站点,一个是辅助站点,这两个有一个就行。


7.enabled:默认最后一个容器不生效,其他容器都生效。


8.gpgcheck:一般都要开启,开启后安装时会验证rpm包是否是官方的,以保证系统安全。


9.gpgkey:默认系统安装后,在目录【/etc/pki/rpm-gpg】下都会存在数字证书。



光盘yum源搭建





光盘yum源搭建:

一看就懂的CentOS基础知识—软件安装


1.挂载光盘:

mkdir /media 或 /mnt/cdrom:建立挂载点;mount /dev/cdrom /media 或 /mnt/cdrom:挂载光盘;


2.使网络yum源失效:

cd /etc/yum.repos.d/:进入yum源目录;mv CentOS-Base.repo CentOS-Base.repo.bak :备份yum源文件


3.使光盘yum源生效:

 


4.yum list:验证目前使用的yum源有哪些可用的rpm包。



yum命令





1、常用yum命令:

一看就懂的CentOS基础知识—软件安装


查询:

①yum list:查询目前使用的yum源中所有可用软件包列表;②yum search 关键字:搜索服务器上所有和关键字相关的包;


安装:

①yum -y install 包名升级:①yum -y update 包名卸载:②yum -y remove 包名!!!服务器使用最小化安装,用什么软件安装什么,尽量不要卸载!!!



2、yum软件组管理命令

一看就懂的CentOS基础知识—软件安装

yum grouplist】列出当前已安装的和可安装的所有组(相当于安装系统时的软件选项)【yum groupinstall 英文组名】用于安装指定的软件组


例如,我们想安装【Java 平台】组,由于组名不能是中文,所以我们需要知道该组名对应的英文组名才能安装。有两种方式可以获得英文组名:


  • 因为本机是英文语系,所以可直接在本机通过【yum grouplist】命令查看组名;


  • 若是远程连接的话,通常都是中文语系,需要使用【LANG=en_US】命令临时将当前系统下的语系修改为英文,然后通过【yum grouplist】命令查看组名。例如:

[root@localhost ~]# LANG=en_US[root@localhost ~]# yum grouplist


通过上面查询,可以知道【Java 平台】对应的英文名是【Java Platform】,下面是执行安装操作的命令:

[root@localhost ~]# yum groupinstall "Java Platform"...省略部分内容...Installed:java-1.6.0-openjdk.i686 1:1.6.0.0-1.66.1.13.0.el6 java-1.7.0-openjdk.i686 1:1.7.0.45-2.4.3.3.el6 ...省略部分内容...Complete!

临时修改系统语系:

LANG=en_US:切换至英文;(临时生效)②LANG=zh_CN.utf8:切换至中文;(临时生效)永久修改,则在【/etc/sysconfig/init】文件中修改。


源码包和RPM包启动区别:安装位置不同带来的影响。


1.源码包是不能使用【service】命令来启动服务,因为源码包的安装位置由用户指定。而rpm包通常都是放在【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用【service】命令。


2.综上所述,安装位置不同,启动方法是有区别的。


3.使用绝对路径启动程序的方法是通用的,通常软件包中会写上启动程序的方法的。


4.如果将源码包安装后的启动程序复制到【/etc/rc.d/init.d】目录中,则也是可以使用【service】命令执行的。



Linux中源码包安装过程





源码包安装

一看就懂的CentOS基础知识—软件安装


安装准备:


1.由于源码都是c语言写的,所以要先安装c语言编译器:gcc。


2.从官方网站下载源码包,若是下载到了windows上面,可以使用winSCP传到linux上。


对于要求效率的软件,要安装源码包版本,因为是本机编译,更具有兼容性和效率,而rpm包是软件开发者提供的大众版本,可用于不注重效率的应用。


3.源码包安装过程(源码包的安装过程和安装顺序是固定的)。


下面以安装apache2为例,解压缩后的目录为【httpd-X】:

1、安装时必须进入到解压缩后的目录【httpd-X】中;
2、执行【./configure】命令,该命令用于软件配置与检查(基本上每个源码包都会有该命令,即使个别的没有该命令,也会提供相关替代命令),它有以下几点功能:
a、定义需要的功能选项;b、检测系统环境是否符合安装要求;c、把a中定义好的功能选项和b中检测系统环境的信息都写入Makefile文件,用于后续的编辑。(后续的【make】和【make install】命令都会依赖该文件)执行命令【./configure --prefix=/usr/local/apache2】,该命令用于指定安装位置为:【/usr/local/apache2】(其中的【apache2】目录不需要提前创建,【make install】命令执行时会自动创建)。命令执行后,会在当前目录生成Makefile文件。3、执行【make】命令,编译源码(这一步通常比较耗时);4、执行【make install】命令,安装程序,此时会创建【/usr/local/apache2】目录。注:如果命令执行过程中发生终止,并且出现error、warn或no提示,则表明出错,否则,一切正常。若执行【./configure】或【make】命令时出现错误,是不需要删除【/usr/local/apache2】目录的,因为程序还没有真正安装。只需要执行【make clean】命令即可,该命令用于清除缓存、临时文件等,使安装环境恢复到未安装状态。若执行【make install】命令时报错,则需要删除【/usr/local/apache2】目录,并且执行【make clean】命令才行。



Linux中一键脚本安装包




准备工作:


1.系统安装环境检查。


2.保证yum源正常:可以使用【yum list】命令测试。


3.关闭SELinux和防火墙:

a、永久关闭SELinux的方法:编辑文件【/etc/selinux/config】,将【SELINUX=enforcing】改为【SELINUX=disabled】,然后重启系统即可。b、永久关闭防火墙的方法:【chkconfig iptables off】,开启为:【chkconfig iptables on】;临时关闭防火墙的方法:【service iptables stop】,开启为:【service iptables start】


4.执行一键安装脚本安装(非官方安装有风险,操作需谨慎)。






 推荐阅读 






 运维界升职加薪必备的云计算技术,你学了吗?


学完高级运维云计算课程之后,你可以:


  • 跨越90%企业的招聘硬门槛

  • 增加70%就业机会

  • 拿下BAT全国TOP100大厂敲门砖

  • 体系化得到运维技术硬实力

  • 技术大佬年薪可达30w+


 资源放送 

2022新版Linux运维高级云计算-红帽RHCE实战课程合集,扫描下方二维码即可领取!

 文章来源网络 侵删