Linux学习笔记之软件安装管理
1.软件包分类
源码包
脚本安装包
二进制包(RPM包、系统默认包)
源码包的优点:
- 开源,如果有足够的能力可以修改源代码
- 可以自己选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定,效率也越高
- 卸载方便
源码包的缺点:
- 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
- 编译过程时间较长,安装比二进制安装时间长
- 因为是编译安装,安装过程中一旦报错新手很难解决
PRM包
二进制包的优点:
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
- 安装速度比源码包安装快得多
二进制包缺点:
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活
- 依赖性(非常麻烦
脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安装。但实际安装的还是源码包和二进制包
优点:安装简单、快捷
缺点:完全丧失了自定义性
RPM包的来源
- RPM包的来源
RPM包在光盘中
1、先在虚拟机中设置光盘的iso镜像
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
cd /mnt/cdrom
cd Packages/
- RPM包命名原则
http-2.2.15-15.el6.centos.1.i686.rpm
- httpd 软件包
- 2.2.15 软件版本
- 15 软件发布的次数
- el6.centos 适合的Linux平台
- i686 适合的硬件平台
- rpm rpm包扩展名
- RPM包依赖性
- 树形依赖: a->b->c
- 环形依赖: a->b->c->a
- 模型依赖: 模块依赖,查询网站:www.rpmfind.net
包全名、包名的区别
- 包全名:操作的包是没有安装的软件包时,使用包全名。包括: 路径/包名.rpm
- 包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
- RPM命令规则
rpm -ivh 包名/包全名 //安装命令
-i 安装
-v 显示详细信息
-h 显示进度
--nodeps 不检测依赖性,实际安装中,不允许使用
例如:
rpm -ivh httpd //安装apache
rpm -Uvh 包全名
选项:
-U //升级
rpm -e 包名
//rpm准备了这个卸载命令的原因是,我们安装时根本不知道这个包装了在哪里(要知道linux下的安装的软件的文件散布多个地方的,很难一一找),而rpm知道,所以干脆就为我们准备了这条便利的命令。
3) window下卸载软件,往往容易留很多垃圾数据难以除完,例如注册表等等。而linux中不会出现这个问题,只要把软件的安装目录所有都删除掉,就不会有残留。
rpm -q 包名 //查询包是否安装
-q //查询
rpm -qa //查询所有已经安装的RPM包
-a //所有
rpm -qi 包名
-i //查询软件信息
-p //查询未安装包信息
rpm -ql 包名
-l //列表
-p //查询未安装包的信息
rpm -qf 系统文件名
-f //查询系统文件属于那个软件包
RPM包默认安装位置:
/ect/ //配置文件安装目录
/usr/bin/ //可执行的命令安装目录
/usr/lib/ //程序所使用的函数库保存位置
/usr/share/doc/ //基本的软件使用手册保存位置
/usr/share/man/ //帮助文件保存位置
rpm -V 包名 //检验文件类型
c //配置文件
d //普通文档
g //ghost file
L //授权文件
r //描述文件
rpm2cpio 包全名 | cpio -idv .文件绝对路径
- rpm2cpio //将rpm包转换cpio格式的命令
- cpio //是一个标准工具,它用于创建软件档案和从档案文件中提取文件
系统文件丢失的处理方法:
rpm -qf /bin/ls //查询ls命令属于哪个软件包
mv /bin/ls/tmp //造成ls命令误删除假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls //提取RPM包中ls命令道当前目录的/bin/ls下
cp /root/bin/ls /bin/ //把ls命令复制到/bin/目录,修复丢失文件
- Yum在线安装:yum源文件
1、yum的优点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)
2、redhat的yum在线安装需要付费,centOS不需要。
3、在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。
4、[base]:名字可以随便起。
5、name:名字也是随便起。
6、mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行。可以找一个163或清华大学的yum源更换。
7、enabled:默认最后一个容器不生效,其他容器都生效。
8、gpgcheck:一般都要开启,开启后安装时会验证rpm包是否是官方的,以保证系统安全。
9、gpgkey:默认系统安装后,在目录【/etc/pki/rpm-gpg】下都会存在数字证书。注:前面的【file://】表示文件协议,后面的【/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6】是数字证书的位置。
- 光盘yum云搭建
- 挂载光盘
mkdir /mnt/cdrom //建立挂载点
mount /dev/cdrom /mnt/cdrom //挂载光盘
- 使网络yum源失效
cd /etc/yum.repos.d/ //进入yum源目录
mv CentOS-Base.repo CentOS-Base.repo.bak //修改yum源文件后缀名,使其失效
- 使光盘yum源生效
vim 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命令
1.查询
yum list //查询所有可用软件包列表
yum search 关键词 //搜索服务器上所有和关键词相关的包
2.安装
yum -y install 包名
选项:
install //安装
-y //自动回答yes
yum -y install gcc
3.升级
yum -y update 包名
选项:
update //升级
-y //自动回答yes
4.卸载
yum -y remove 包名
选项:
remove //卸载
-y //自动回答yes
YUM软件组管理命令
yum grouplist //列出所有可用的软件组列表
yum groupinstall 软件组名 //安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名 //卸载指定软件组