在Windows下安装一个软件很轻松,只要双击setup或者.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件并不那么轻松,因为我们不是在图形界面下,所以要学会如何在linux下安装一个软件,类似在Windows上下载安装一个游戏一样,无非找到对应的可执行文件,直接双击就可以,然后在安装过程中,可能会考虑到将此服务安装到哪个目录之下,当然也会有各种配置文件,只不过平时我们没有注意过这些,其实Linux系统也一样,但稍微比Windows要复杂一些。在红帽一派的系统中,安装方式有3种,源码编译安装、rpm包安装、和yum源安装
编译安装
RPM包安装
RPM是”Redhat Package Manager”的写,根据名字也能猜到这是Redhat公司开发出来的。RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃
- 安装软件包
rpm常用命令
-vh:显示安装进度;
-U:升级软件包;
-qpl:列出RPM软件包内的文件信息;
-qpi:列出RPM软件包的描述信息;
-qf:查找指定文件属于哪个RPM软件包;
-Va:校验所有的RPM软件包,查找丢失的文件;
-qa: 查找相应文件,如 rpm -qa mysql
-e 卸载rpm包
-q 查询已安装的软件信息
-i 安装rpm包
-u 升级rpm包
–replacepkgs 重新安装rpm包
–justdb 升级数据库,不修改文件系统
–percent 在软件包安装时输出百分比
–help 帮助
–version 显示版本信息
-c 显示所有配置文件
-d 显示所有文档文件
-h 显示安装进度
-l 列出软件包中的文件
-a 显示出文件状态
-p 查询/校验一个软件包文件
-v 显示详细的处理信息 - rpm的查询
查询软件包是否安装:
[root@base ~]# rpm -q zsh
zsh-5.0.2-33.el7.x86_64
查询系统中所有已经安装的软件包有哪些:
[root@base ~]# rpm -qa
查询某个文件是由哪个软件包安装的:
[root@base ~]# rpm -qf which vim
vim-enhanced-7.4.629-6.el7.x86_64
查询软件的配置文件:
[root@base ~]# rpm -qc httpd
安装某个软件时,都安装了哪些文件:
[root@base ~]# rpm -ql httpd
查询安装的软件包的信息:
[root@base ~]# rpm -qi httpd
查询未安装的软件包的相关信息:
[root@base ~]# rpm -qpi gcc-4.8.5-39.el7.x86_64.rpm - rpm包的卸载:rpm -e zsh
- rpm包的校验
V:后面接软件名称,该软件所含的文件被改动过,才会被列出来,针对一个软件查询
Va:列出系统上面所有有可能被改动过的文件。针对整个系统的
Vp:后面接RPM软件包
Vf:列出某个文件是否被改动过
校验命令举例:-rpm -Vf /usr/sbin/sshd
校验命令输出的标记含义如下:
S 表示文件长度发生了变化
M 表示文件的访问权限或文件类型发生了变化
5 表示MD5校验和发生了变化
D 表示设备节点的属性发生了变化
L 表示文件的符号链接发生了变化
U 表示文件/子目录/设备节点的owner发生了变化
G 表示文件/子目录/设备节点的group发生了变化
T 表示文件最后一次的修改时间发生了变化
PS:如果在输出结果中有“M”标记出现,那么对应的文件可能已经遭到篡改或替换,此时可以通过卸载这个rpm包重新安装来清除受攻击的文件
yum安装
YUM(Yellow dog Updater Modified): yum是Redhat系列系统基于RPM包构建的软件更新机制,可以自动解决 rpm 包之间的依赖关系,所有软件包由集中的yum软件仓库提供。其理念是使用一个中心仓库(repository)管理一部分甚至一个distribution的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、 删除等操作,减少了Linux用户一直头痛的dependencies的问题。 可以同时配置多个资源库(Repository),简洁的配(/etc/yum.conf),自动解决增加或删除rpm包时遇到的依赖性问题,保持与RPM数据库的一致性
PS: yum的配置文件在 /etc/yum.repos.d/ 下面,必须以 .repo 结尾
- 安装
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1 - 更新和升级
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1 - 查找和显示
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum groupinfo group1 显示程序组group1信息yum search string 根
据关键字string查找安装包 - 删除程序
yum remove | erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况 - 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的headers
yum clean, yum clean all(=yumcleanpackages; yum cleanoldheaders) 清除缓存目录下的软件包及旧的headers - 查看这个命令是由哪个包提供的: yum provides pstree
- 查看yum仓库中所有的rpm包: yum list | grep httpd
- 查看要安装的包的详细信息: yum info httpd
- 安装软件包: yum install httpd -y
- 卸载软软件包: yum remove httpd -y