一、软件包管理简介
(一)软件包分类
1、源码包:(绝大部分是c,c++)
- 脚本安装包
2、二进制包(源码经过编译之后的,linux的安装基本都是二进制包)
- RPM包(redhat系才有)
- 系统默认包
(二)源码包
1、优点:
- 开源,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,更加稳定效率更高
- 卸载方便(删除源码包的安装文件)
2、缺点
- 安装步骤较多,容易出错
- 编译时间长,比二进制安装时间长了
- 编译安装,安装过程中一旦报错新手很难解决
(三)二进制包
1、优点
- 包管理系统简单,只需要几个命令就可以实现包的安装、升级、查询、卸载。
- 安装速度快,因为已经编译过了。
2、缺点
- 看不到源码
- 功能选择步入源码包灵活
- 依赖性,A依赖B依赖C,安装卸载的顺序需要正确
二、rpm命令管理
(一)rpm包命名原则和依赖性
1、命名规则:httpd-2.2.15-39.el6.centos.x86_64.rpm,包全名
- httpd:软件包名
- 2.2.15:版本
- 39:软件发布次数
- el6.centos:适合的Linux 平台
- x86_64:适合的硬件平台
- rpm:rpm包扩展名
2、依赖性
- 树形依赖:a-->b-->c
- 环形依赖:a-->b-->c-->a
- 模块依赖:查询网站,www.rpmfind.net
- so.2结尾,属于库依赖,需要去www.rpmfind.net 查询属于什么包。
(二)安装升级与卸载
1、包名与包全名
- 包全名:操作未安装的包,且注意路径。
- 包名:操作已经安装的软件包。是搜索/var/lib/rpm/中的数据库。
2、RPM安装
1)语法:
- rpm -ivh 包全名
- -i(install):安装
- -v(verbose):显示详细信息
- -h(hash):显示进度
- --nodeps:不检测依赖X,建议检测依赖
2)实例
- 挂载处理:
- 新建挂载点:mkdir mnt/cdrom
- 挂载处理:mount -t iso9660 /dev/sr0 /mnt/cdrom
- 安装
- rpm -ivh httpd-2.2.15-39.el6.centos.x86_64.rpm
- 需要使用包全名,可以使用 TAB 键补全
- 因为有依赖,所以比较麻烦(简直想死)。需要使用 yum 命令解决
3、RPM升级
1)语法:
- rpm -Uvh 包全名
- -U(upgrade):升级
4、卸载
1)语法:
- rpm -e 包名
- -e(erase):卸载
- --nodeps:不检查依赖性
2)注意
- rpm -e httpd
- 使用包名,因为是搜索后台数据库。
(三)rpm查询
1、查询是否安装
1)语法:
- rpm -q 包名:查询包是否安装
- -q(query):查询
- rpm -qa:查询所有已经安装的RPM包
- -a(all):所有
2)实例
- rpm -q httpd:查询httpd 是否安装
- rpm -qi httpd:查询httpd详情,i是详细信息
- rpm -qa:列出所有
- rpm -qa | grep httpd:所有的搜索查询,然后利用管道符检索
2、查询软件包详细信息
1)语法:
- rpm -qi 包名
- -i:查询软件信息
- -p:查询未安装包信息,加包全名
2)实例
- rpm -qi httpd:查询httpd详情
- rpm -qip httpd-2.2.15-39.el6.centos.x86_64.rpm:查询未安装的包信息
3)rpm包在组建软件包的时候,就规定好了。所以在可以查询未安装的信息,未安装的安装规则位置等等。
3、查询包中文件安装位置
1)语法:
- rpm -ql 包名
- -l:列表(list)
- -p:查询未安装包信息,加包全名
2)实例
- rpm -ql httpd:查询httpd
- rpm -qlp httpd-2.2.15-39.el6.centos.x86_64.rpm:查询未安装的包信息
4、查询系统文件属于哪个RPM包
1)语法:
- rpm -qf 系统文件名
- -f:查询系统文件属于哪个软件包(file)
2)实例
- rpm -qf man.config
5、查询软件包的依赖性
1)语法:
- rpm -qR 包名
- -R:查询软件包的依赖性(requires)
- -p:查询未安装包的信息
2)实例
- rpm -qR httpd
- rpm -qR httpd-2.2.15-39.el6.centos.x86_64.rpm
(四)校验和文件提取
1、rpm包校验
1)语法:
- rpm -V 已安装的包名
- -V:校验指定rpm包中的文件(verify)
2)实例
- rpm -V httpd
3)校验内容是否修改
- 8个内容信息
- 文件类型
2、rpm包中文件提取
1)语法:
- rpm2cpio 包全名 | cpio
-idv . 文件绝对路径- rpm2cpio :将rpm包转换为cpio格式的命令
- cpio:是一个标准工具,它用于创建文档和从档案文件中提取文件
- cpio 【选项】<【文件】【设备】
- -i:copy-in 模式,还原
- -d:还原时自动新建目录
- -v:显示还原过程
- cpio 【选项】<【文件】【设备】
- 一行输不下,使用 "\"
2)实例
三、yum在线管理
(一)IP地址配置和网络yum源
1、IP地址配置
1)使用setup工具:setup
2)启动网卡:vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 把ONBOOT="no"改为 ONBOOT="yes"
3)重启网络服务:service network restart
2、网络yum源(默认就是好用的)
1)ls /etc/yum.repos.d
- CentOS-Base.repo,默认是生效的
- CentOS-Media.repo,没有网络,光盘就要生效这个
2)vi /etc/yum.repos.d/CentOS-Base.repo
- [base]:容器名称,一般要放在【】中
- name:容器说明,可以自己随便写
- mirrorlist:镜像站点,这个可以注释掉
- baseurl:我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。也可以修改成国内的,速度会比较快。
- enabled:此容器是否生效,如果不写或者写成emabled=1都是生效,写成enabled=0是不生效。
- gpgcheck:如果是 1 是指RPM的数字证书生效,0 则是不生效。
- gpgkey:数字证书的公钥文件保存位置。不用修改。
(二)yum命令
1、查询
1)yum list:查询所有可用软件包列表
- 从远程服务器上查询,前提是 linux 可以连接互联网 。就是网络yum源配置好的地址。
- yum list | more:分屏显示
2)yum search + 关键字:搜索服务器上所有和关键字相关的包
- yum search httpd:搜索httpd包
2、安装:
1)语法:yum -y install + 包名
- install:安装
- -y:自动回答yes
2)实例:
- yum -y install gcc:gcc是c语言编辑器,安装源码包的时候,必须有gcc。
- rpm -q gcc:查看是否安装好
3、升级:yum -y update + 包名
- 不加软件包,会全部升级,包括linux内核也会升级(会死的)
4、卸载:yum -y remove + 包名
- 不加软件包,会级联删除,会出问题的。
- 不要使用yum 升级与卸载,不安全。
5、yum软件组管理命令
- yum grouplist:列出所有可用的软件组列表
- yum groupinstall + 软件组名:安装指定软件组,组名可以由grouplist查询出来
- yum groupremove + 软件组名:卸载指定软件组
(三)光盘yum源
1、步骤
1)挂载光盘
- 新建挂载点:mkdir mnt/cdrom
- 挂载处理:mount -t iso9660 /dev/sr0 /mnt/cdrom
2)修改网络yum源失效:
- 修改后缀,如把CentOS-Base.repo 改为 CentOS-Base.repo.bak
- CentOS-Base.repo,默认是生效的
- 其他的都修改
- CentOS-Media.repo,没有网络,光盘yum源。
- 或者进入文件,修改生效标志,enabled=0
3)修改光盘yum源文件
- baseurl=file:///mnt/dcrom:地址为光盘的挂载地址,自己定义。注释掉其他的yum源
- gpgcheck=1:证书有效
- enabled=1:生效
四、源码包管理
(一)源码包与RPM包的区别
1、区别:
- 安装之前的区别:概念上的区别
- 安装之后的区别:安装位置不同
2、RPM 包安装位置
- 安装在默认位置中,不建议手动修改。
3、源码包安装位置
- 安装在指定位置中,一般是:/user/local/软件名/
4、安装位置不同带来的影响
1)RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM安装包的apache的启动方法是
- /etc/rc.d/init.d/httpd start:绝对路径中启动
- service httpd start:使用 service 命令管理
- service network restart,reahat特有命令
- service: 是固定去系统默认的路径中查找,不会搜索local路径
- 所以只能管理RPM包
2)源码包只能使用绝对路径进行服务的管理:
- /user/local/apache2/bin/paachectl start
(二)源码包安装过程:略
五、脚本安装包
(一)脚本安装包
1、简介:
- 脚本安装包并不是独立的软件包类型,常见安装的是源码包
- 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
- 非常类似于windows下软件的安装方式
2、Webmin的作用
- Webmin 是一个基于web的 linux 系统管理界面。可以通过图形化的方式设置用户账号、apache、DNS、文件共享等服务。
3、Webmin安装过程
- du
-sh webmin-1.610:查看大小