Linux--软件包管理yum
前戏
软件包顾名思义就是将应用程序、配置文件和数据打包的产物,所有的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下一样方便,suse、red hat、fedora等发行版都是用rpm包,Debian和Ubuntu则使用.deb格式的软件包。
在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件只能采取源码包 的方式安装。早期在 Linux 系统中安装程序是一件非常困难、耗费耐心的事情,而且大多数 的服务程序仅仅提供源代码,需要运维人员自行编译代码并解决许多的软件依赖关系,因此 要安装好一个服务程序,运维人员需要具备丰富知识、高超的技能,甚至良好的耐心。而且在 安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、 卸载、查询、升级等管理软件操作时难度都非常大。
RPM 机制则为解决这些问题而设计的。RPM 有点像 Windows 系统中的控制面板,会建 立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。
因为rpm安装软件很麻烦,现在基本上都不通过rpm来安装软件了。基本上都是通过yum进行安装软件(其实也是下载rpm包然后进行自动安装,自动查找,解决依赖关系)
尽管 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决, 而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。 Yum 软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum 软件仓库可以 根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安 装到系统。
Yum 软件仓库中的 RPM 软件包可以是由红帽官方发布的,也可以是第三方发布的,当 然也可以是自己编写的。
yum源配置
yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
说到yum源就必须说到linux系统中特有的依赖关系问题,yum就是为了解决依赖关系而存在的。yum源就相当是一个目录项,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。
yum源的目录
yum源,就是一个文件夹的概念,这个文件夹叫做 /etc/yum.repos.d/ 只有存放在这个目录中的 xx.repo 文件,才会被识别是yum源,才会被yum instlal 工具 所调用
#进入yum源目录 cd /etc/yum.repos.d/#查看yum源文件 ls -l
里面的两个yum源是国外的,因为网络原因,所以我们都是自己配置yum源,这里以配置阿里云源为例进行配置
配置之前先做好配置,新建一个目录,将这两个yum源移动到一个目录里
阿里云官方镜像地址:https://opsx.alibaba.com/mirror
# 1.备份yum源 mkdir repo_bak mv *.repo repo_bak/ #2.下载阿里云repo文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 3.清空yum缓存并且生成新的yum缓存 yum clean all yum makecache #4.安装软件扩展源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
第二步-o参数表示存放地址并重命名,放在的是/etc/yum.repos.d目录下,下载完之后会在目录下生成一个CentOS-Base.repo文件
生成新的yum仓库缓存(这个缓存来自于阿里云的yum仓库,便于加速软件下载)
配置一个第三方的 额外仓库源 (epel源),这个源的作用是,如果阿里云源找不到这个软件,就在这里找
yum安装软件
经过上面的配置,我们就可以使用yum安装软件了,先来安装一个nginx
yum install nginx
直接运行上面命令就可以安装了
yum的参数
yum(选项)(参数) -h:显示帮助信息; -y:对所有的提问都回答“yes”; -c:指定配置文件; -q:安静模式; -v:详细模式; -d:设置调试等级(0-10); -e:设置错误等级(0-10); -R:设置yum处理一个命令的最大等待时间; -C:完全从缓存中运行,而不去下载或者更新任何头文件。
yum的命令
yum repolist all 列出所有仓库 yum list all 列出仓库所有软件包 yum info 软件包名 查看软件包信息 yum install 软件包名 安装软件包 yum reinstall 软件包名 重新安装软件包 yum update 软件包名 升级软件包 yum remove 软件包名 移除软件包 yum clean all 清楚所有仓库缓存 yum check-update 检查可以更新的软件包 yum grouplist 查看系统中已安装的软件包 yum groupinstall 软件包组 安装软件包组
系统服务管理命令
如果大家之前学习或者使用过RHEL6系统,应该已经习惯了service、chkconfig等命令来管理系统服务,但是在RHEL7系统中改变了systemctl来管理系统服务。
systemctl start xxx # 启动服务 systemctl restart xxx # 重启服务 systemctl stop xxx # 停止服务 systemctl reload xxx # 重新加载配置文件(不终止服务) systemctl status xxx # 查看服务状态
设置开机启动相关
systemctl enable xxx # 开机自动启动 systemcel disable xxx # 开机不自动启动
etc下目录的重要知识
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录
#网卡配置文件 /etc/sysconfig/network-script/ifcfg-eth0#修改机器名以及网卡,网管等配置 /etc/sysconfig/network#linux的dns客户端配置文件,实现域名和ip的互相解析 /etc/resolv.conf#本地dns解析文件,设定ip和域名的对应解析,开发测试最常用的临时域名解析 /etc/hosts/#系统全局环境变量永久生效的配置文件,如PATH等 /etc/profile#用户的环境变量 ~/.bash_profile ~/.bashrc#存放可执行程序的目录,大多是系统管理命令 /usr/sbin#存放用户自编译安装软件的目录 > 等同于C:\Program files (windows) /usr/local#关于处理器的信息,还可以top指令查看 /proc/cpuinfo#查看内存信息,还可以free -m /proc/meminfo