一.软件包安装
分类:源码包、二进制包(RPM包,系统默认包)
源码包
优点
可以自由选择所需的功能
软件是编译安装,适合自己系统,更加稳定,效率更高
卸载方便
缺点
安装过程步骤较多,容易出错
编译时间较长,安装比二进制安装要长
编译安装,报错,新手难以解决
二进制包
优点
包管理系统简单,只用几个命令就可以实现安装、升级、查询和卸载
安装速度比源码包快多了
缺点
经过编译,不再可以看到源代码
功能选择不如源码包灵活
依赖性
二. RPM包管理
简介
1、RPM包的来源:所有RPM包都在系统光盘的Packages目录中
2、RPM包命名规则:软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名
3、RPM包依赖性:
a、树形依赖:a->b->c 解决方法:从后往前安装
b、环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
c、模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。
4、yum在线安装:可以方便的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。
注:RedHat的yum是收费服务,而CentOS的yum是免费服务
安装
1、包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
2、RPM安装
rpm -ivh 包全名
选项:
-i(install)安装
-V(verbose)显示详细信息
-h(hash)显示进度
--nodeps不检测依赖性
升级
rpm -Uvh 包全名
参数选项:-U(upgrade) 升级
卸载
rpm -e 包名
选项:-e(erase) 卸载
--nodeps 不检查依赖
三、RPM包查询
查询方式:
1、 rpm -q 包名 查询包是否安装; rpm -qa 查询所有安装的rpm包。rpm -qa grep httpd
2、 rpm -qi 包名 查询包详细信息。 -i : 查询软件信息; -p :查询未安装包信息。rpm -qip xxxx
3、 rpm -ql 包名 查询包中文件安装位置。 -l:列表; -p:查询未安装包信息。rpm -ql httpd
4、 rpm -qf 系统文件名 查询系统文件属于哪个RPM包。 (必须为系统包 不能是自己新建的) rpm -qf xxx
5、 rpm -qR 查询依赖性。 -R:查询依赖性; -p:查询未安装包信息。
四、RPM包校验
rpm -V(大写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)
RPM包中文件提取:
rpm2cpio 包全名 cpio -idv .文件绝对路径
--> 前面的【.】代表当前路径,不能省略。【文件绝对路径】和包里文件的绝对路径对应,也就是告诉了cpio要去包里提取哪个文件。
注:cpio只知道提取文件,并不知道要从什么地方提取文件,因此我们通常要使用【】管道符或【<】输入重定向告诉cpio我们应该从什么设备去取出文件。
①-rpm2cpip //将rpm包转换为cpio格式的命令;
②-cpip //是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件;
使用输入重定向的cpio命令格式:
cpio 选项 < [文件设备]
①-i:copy-in模式,还原;
②-d:还原时自动新建目录;
③-v:显示还原过程;
五、YUM在线安装
YUM源文件
1、yum的优点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)
2、redhat的yum在线安装需要付费,centOS不需要。
3、在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。
4、配置介绍
[base]:名字可以随便起。
name:名字也是随便起。
mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行。可以找一个163或清华大学的yum源更换。
enabled:默认最后一个容器不生效,其他容器都生效。
gpgcheck:一般都要开启,开启后安装时会验证rpm包是否是官方的,以保证系统安全。
gpgkey:默认系统安装后,在目录【/etc/pki/rpm-gpg】下都会存在数字证书。注:前面的【file://】表示文件协议,后面的【/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6】是数字证书的位置。
光盘搭建YUM源
有三个步骤:
1、挂载光盘;
2、使网络yum源【CentOS-Base.repo】失效;
3、使光盘yum源【CentOS-Media.repo】生效,需要编辑【CentOS-Media.repo】文件,修改【baseurl】和【enabled】两项内容,操作如下:
[root@CentOS6 yum.repos.d]# vi CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/ -->将baseurl设置为实际光盘挂载地址(另外两个要注释掉,否则会因为找不到光盘而报错。【#】注释时,必须写在行开头)
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1 -->将enabled设置为1,使这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
编辑后保存退出即可。
注:可以使用【yum list】命令列出当前yum源中的所有rpm包:即更新数据库
[root@CentOS6 yum.repos.d]# yum list
......省略部分内容......
Available Packages
389-ds-base.i686 1.2.11.15-29.el6 c6-media
389-ds-base-devel.i686 1.2.11.15-29.el6 c6-media
389-ds-base-libs.i686 1.2.11.15-29.el6 c6-media
......省略部分内容......
可以从后面的【c6-media】看出这是光盘yum源,因为这是光盘yum源文件【CentOS-Media.repo】中定义的名字。
YUM命令
1、常用yum命令:
查询:
①yum list:查询目前使用的yum源中所有可用软件包列表;
②yum search 关键字:搜索服务器上所有和关键字相关的包;
安装:
①yum -y install 包名
⑴-install:安装;
⑵-y:自动回答yes;
②例如:yum -y install httpd
升级:
①yum -y update 包名
⑴-update:升级;
⑵-y:自动回答yes;
卸载:
②yum -y remove 包名
⑴-remove:卸载;
⑵-y:自动回答yes;
!!!服务器使用最小化安装,用什么软件安装什么,尽量不要卸载!!!
- yum软件组管理命令
yum grouplist:列出所有可用的软件列表;
yum groupinstall 软件组名:安装指定软件组,组名可以由grouplist查询出来;
yum gourpremove 软件组名:卸载指定软件组;
①LANG=en_US:切换至英文;(临时生效)①
②LANG=zh_CN.utf8:切换至中文;(临时生效)②
六、源码包管理
源码包和RPM包区别
安装后区别:安装位置不同
RPM包安装在默认位置:
源码包安装在指定位置中,一般是/usr/local/软件名/
安装位置不同带来的影响
1、源码包是不能使用【service】命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一。而rpm包安装后,通常都是放在【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用【service】命令。
1).rpm包安装位置不用指定,源码包安装位置必须指定。源码包没有卸载命令。卸载时直接删除文件夹即可。源码包默认启动方法/usr/local/apache2/bin/apachetl start
2).rpm包启动方式两种 service XXXX start(red hat 系列专属) 或 /etc/rc.d/init.d/xxx start
安装过程
1.源码包保存位置:/usr/local/src/
2.软件安装位置:/usr/local/
3.如何确定安装过程报错:
安装过程停止;
并出现:error、warning或no的提示;
- 下载源码包解压缩下载的源码包进入解压缩目录;
- ./configure:软件配置与检查
定义需要的功能选项; ./configure --prefix=PREFIX
检测系统环境是否符合安装要求;
.把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑; - make:编译
如果报错,可执行“make clean” :清除编译缓存文件;
make install:编译安装
源码包的卸载无需卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件;
https://segmentfault.com/a/1190000011325357