一、软件包管理简介
1、软件包分类
1)源码包
#脚本安装包
2)二进制包(RPM包、系统默认包)
2、源码包
源码包的优点是:
— 开源,如果有足够的能力,可以修改源代码
— 可以自由选择所需的功能
— 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
— 卸载方便
源码包的缺点
— 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
— 编译过程时间较长,安装比二进制安装时间长
— 因为是编译安装,安装过程中一旦报错新手很难解决
3、RPM包
二进制包的优点:
— 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
— 安装速度比源码包安装快的多
二进制包缺点:
— 经过编译,不再可以看到源代码
— 功能选择不如源码包灵活
— 依赖性
4、脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装还是源码包和二进制包
— 优点:安装简单、快捷
— 缺点:完全丧失了自定义性
二、RPM命令管理
1、RPM包命名规则
1)RPM包的来源
RPM包在系统光盘中(Packages)
2)RPM包命令原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
— httpd软件包名
— 2.2.15软件版本
— 15软件发布的次数
— el6.centos适合的Linux平台
— i686适合的硬件平台
— rpm rpm包扩展名
3)RPM包依赖性
— 树形依赖:a->b->c
— 环形依赖:a->b->c->a
— 模块依赖:模块依赖,查询网站:www.rpmfind.net
2、安装命令
1)包全名与包名
包全名:操作的包是没有安装的软件包时,使用包命名。而且要注意路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
2)RPM安装
rpm -ivh 包全名
选项:
— -i(install):安装
— -v(verbose):显示详细信息
— -h(hash):显示进度
— –nodeps:不检测依赖性
3、升级
rpm -Uvh 包全名
选项:
— -U(upgrade):升级
4、卸载
rpm -e 包名
选项:
— -e(erase):卸载
— –nodeps:不检查依赖性
5、RPM包查询
1)查询是否安装
rpm -q 包名
#查询包是否安装
— -q(query):查询
rpm -qa
#查询所有已经安装的RPM包
— -a(all):所有
2)查询软件包详细信息
rpm -qi 包名
选项:
— -i(information):查询软件信息
— -p(package):查询未安装包信息
3)查询包中文件安装位置
rpm -ql 包名
选项:
— -l(list):列表
— -p(package):查询未安装包信息
RPM包默认安装位置
4)查询系统文件属于哪个RPM包
rpm -qf 系统文件名
选项:
— -f(file):查询系统文件属性于哪个软件包
5)查询软件包的依赖性
rpm -qR 包名
选项:
— -R(requires):查询软件包的依赖性
— -p(package):查询未安装包信息
6、RPM包校验
1)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):描述文件
2)RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
— rpm2cpio
#将rpm包转换为cpio格式的命令
— cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
[root@localhost ~]# cpio 选项 < [文件|设备] 选项: -- -i:copy-in模式,还原 -- -d:还原时自动新建目录 -- -v:显示还原过程 [root@localhost ~]# rpm -qf /bin/ls #查询ls命令属于哪个软件包 [root@localhost ~]# mv /bin/ls /tmp/ #造成ls命令误删除假象 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls #提取RPM包中ls命令到当前目录的/bin/ls下 [root@localhost ~]# cp /root/bin/ls /bin/ #把ls命令复制回/bin/目录,修复文件丢失
三、yum在线管理
1、Yum源文件
[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo -- [base]:容器名称,一定要放在[]中 -- name:容器说明,可以自己随便写 -- mirrorlist:镜像站点,这个可以注释掉 -- baseurl:我们的yum源服务的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址 -- enabled:此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效 -- gpgcheck:如果是1是指RPM的数字证书生效,如果是0则不生效 -- gpgkey:数字证书的公钥文件保存位置,不用修改
2、光盘搭建yum源
1)挂载光盘
[root@localhost ~]# mkdir /mnt/cdrom #建立挂载点 [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/ #挂载光盘
2)使用网络yum源失效
[root@localhost ~]# cd /etc/yum.repos.d/ #进入yum源目录 [root@localhost ~]# mv CentOS-Base.repo CentOS-Base.repo.bak #修改yum源文件后缀名,使其失效
3)使光盘yum源生效
[root@localhost ~]# vim CentOS-Media.repo [c6-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ #地址改为你自己的光盘挂载地址如:file:///mnt/cdrom file:///media/cdrom/ file:///media/cdrecorder/ #注释这两个不存在的地址 gpgcheck=1 enabled=0 #把enabled=0改为enabled=1,让这个yum源配置文件生效 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3、yum命令
1)常用yum命令
(1)查询
yum list #查询所有可用软件包列表 yum search关键字 #搜索服务器上所有和关键字相关的包
(2)安装
[root@localhost ~]# yum -y install 包名 选项: -- install:安装 -- -y:自动回答yes 例如: [root@localhost ~]# yum -y install gcc
(3)升级
[root@localhost ~]# yum -y update 包名 选项: -- update:升级 -- -y:自动回答yes
(4)卸载
[root@localhost ~]# yum -y remove 包名 选项: -- remove:卸载 -- -y:自动回答yes
2、YUM软件组管理命令
[root@localhost ~]# yum grouplist #列出所有可用的软件组列表 [root@localhost ~]# yum groupinstall 软件组名 #安装指定软件组,组名可以由grouplist查询出来 [root@localhost ~]# yum groupremove 软件组名 #卸载指定软件组
四、源码包管理
1、源码包和RPM包的区别
1)安装之前的区别:概念上的区别
2)安装之后的区别:安装位置不同
3)源码包安装位置
#安装在指定位置当中,一般是
/usr/local/软件名/
4)安装位置不同带来的影响
#RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是
[root@localhost ~]# /etc/rc.d/init.d/httpd start 或 [root@localhost ~]# service httpd start #service命令是redhat系统专有的命令
#而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
2、源码包安装过程
1)安装准备
#安装C语言编译器
#下载源码包
— http://mirror.bit.edu.cn/apache/httpd/
2)安装注意事项
#源代码保存位置:/usr/local/src/
#软件安装位置:/usr/local/
#如何确定安装过程报错:
— 安装过程停止
— 并出现error、warning或no的提示
3)源码包安装过程
#下载源码包 #解压缩下载的源码包 [root@localhost ~]# tar -zxvf httpd-2.2.9.tar.gz #进入解压缩目录 [root@localhost ~]# cd httpd-2.2.9 #./configure 软件配置与检查 -- 定义需要的功能选项。 -- 检测系统环境是否符合安装要求。 -- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编译。 [root@localhost ~]# ./configure --prefix=/usr/local/apache2 #指定安装路径 [root@localhost ~]# make #预编译 [root@localhost ~]# make clean #如果出错使用这个清除编译 [root@localhost ~]# make install #编译安装
五、脚本安装包
强大的Nginx服务器
#Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POPS)代理服务器,由俄国公司在2004年发布
准备工作
#关闭RPM包安装的httpd和MySQL
#保证yum源正常使用
#关闭SELinux和防火墙
[root@localhost ~]# vi /etc/selinux/config SELINUX=enforcing #改为 SELINUX=disabled #关闭SELinux
下载LAMP
http://lnmp.org/install.html
#脚本一键安装包 [root@localhost ~]# wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh
centos.sh脚本分析
#所谓的一键安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装
#优点:简单、快速、方便
#缺点:
— 不能定义安装软件的版本
— 不能定义所需要的软件功能(源码包的优势丧失)