一、软件包管理简介
(*windows的安装包无法在linux执行)
分类:
①源码包(源代码包,即开源的含义,绝大多数是C语言写的)
-脚本安装包(不需要手工安装,但是比较少)
②二进制包(RPM包、系统默认包)
已经经过了编译的源码包(从官方网站下载)
Redhat系列都用rpm包(centos)
源码包的优点:
-开源,如果有足够的能力,可以修改源代码。
-可以自由选择所需的功能
-是编译安装,更加适合系统,更稳定,效率更高
-卸载方便(把源码包安装目录直接删掉,没有遗留)
源码包的缺点:
-安装步骤较多(如lamp环境搭建,容易出现拼写错误)
-编译时间较长,比二进制安装时间长(如果有机会可以手动安装linux一次试试看)
-编译安装,安装过程中一旦报错新手很难解决
RPM包(二进制包)的优点:
-包管理系统简单,需要人执行的操作较少
-安装速度比源码包安装快的多
缺点:
-不开源
-功能不如源码包灵活
-依赖性(软件包有依赖性)
二、RPM包管理-rpm命令管理
1、命名原则
http 软件包名(短的是包名,全加起来是包全名-命令对这两个的辨识度不同)
2.15软件版本
-15发行了15次
el6.centos 适合的linux平台(如果没有就是任何版本都可以)
i686 适合的硬件平台(X64就是64位包,除此之外一般是都可以)
rpm 扩展名(其实是给用户看的)
2、RPM包依赖性
树形依赖:a->b->c
环形依赖:a->b->c->a(用一条命令同时安装)
模块依赖:模块依赖查询网站:www.rpmfind.net
实战:
先按照linux学习中-基础命令②中的挂载操作把光盘挂载,然后进入挂载点的Pacakges文件夹下
(rpm包和压缩包一样用的红色)
安装命令 rpm -ivh(安装、显示安装信息、显示安装过程):
安装后发现:前半部分是软件包库依赖(以.so.数字结尾是特征)只要安装上库就安装上软件了。
3、包全名和报名
包全名:就是包的完整名称。
操作的包是没有安装的软件包是,使用包全名,而且要注意路径。
包名:表示是什么软件的名词
操作的包是已经安装的软件包时,使用包名。系统会负责搜索/var/lib/rpm/中的数据库。(比如查询、卸载时)
4、RPM安装
rpm -ivh 包全名
选项:-i install
-v 显示进度信息
-h 显示进度
--nodeps 不检测依赖性(除实验外不推荐使用)
挂载以后进入安装cd的package,然后利用tab键可以看到所有包,选择一个安装,一般从主包安装起。
装主包出现了:
错误的依赖性
然后需要的包一直找,最后到库文件哪里的时候搜索对应的库,最后反复迭代回去,就可以成功了。
如果不知道装哪一个包,可以反复装然后看它的要求解决。
5、RPM包升级
rpm -Uvh 包全名(和安装完全一样)
选项:
-U (upgrade) 升级
6、卸载
rpm -e
注意:卸载一样具有迭代性
不知道是几的、RPM包校验
作用:比较两个rpm包是否做了修改
命令:rpm -V httpd(没有任何信息证明没有做过任何修改)
7、查询方法
查询是否安装 :
rpm -q :包名
rpm -qa :查询所有安装包
rpm -qa 包名 :查询相关的所有安装包
①rpm -qi 详细信息查询
②rpm -qip 查询未安装包的信息 (但是得用包全名)(注意,全名补完功能只有进入到package有)
③ rpm -ql 查询包的安装位置(各个文件)
-qlp 包全名 (可以查到预安装的文件)
④ rpm -qf 系统文件名
f即file,查询系统文件属于软件包(需要有绝对路径)
⑤查询软件包的依赖性 rpm -qR 包名 (查询依赖性)
三、RPM包管理-yum在线管理
yum自动安装,比较方便。
1、网络yum源配置
centOS的网络yum源默认是连好的,只要能上网,就可以直接是用yum源服务器,但是国外的比较慢。
进入路径下的centos.base文件发现5个yum池,默认是第一个生效:
[]内容不变
mirrorlist地址
baseurl 镜像地址
默认情况下不写enable,默认是1
2、常用yum命令
1>查询
yum list
yum search 关键字 :搜索服务器上所有和关键字相关的包(此处没有包名和包全名了)
2>安装
yum -y install 包名
选项:install 安装
-y 自动回答yes
3>升级
yum -y update 包名
如果没有包名就会升级所有命令,容易使服务器崩溃,不建议这样做,这个命令要小心使用。
4>卸载
yum -y remove 包名(不要轻易用yum卸载)
3、yum软件组查询指令
1>yum grouplist 是一些服务器的功能组件,组安装比单独安装方便的多
2> yum groupinstall “软件组名”
3>yum groupmove 软件组移除