1 rpm
管理
rpm
的作用类似于windows
上的电脑管家中软件管理
、安全卫士里面“软件管家”等产品,是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
要想装软件,和windows下一样,先得找到安装包。
软件包的获得方式:
-
不嫌麻烦的话,去官网去下载;
-
不介意老版本的话,可以从光盘(或者镜像文件)中读取;
rpm
要安装软件需要挂载安装,并且一个一个的去安装对应的依赖,对于一般运维工作,使用yum
即可
2 YUM
包管理系统
2.1 yum
简介
yum(Yellow dog Updater Modified)是CentOS中属于RPM前端软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。
yum相比rpm更人性化,更便捷:
- 联网安装(不用挂载)
- 联动安装(软件所需依赖自动安装)
- 联网更新
- yum仓库的组成部分
- 数据 :包含所有的软件包文件
- 元数据:指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息.
2.2 yum
的配置文件
-
yum 的配置文件有2种:
# 为所有仓库提供公共配置 /etc/yum.conf # 为仓库的指向提供配置 /etc/yum.repos.d/*.repo
2.2.1 主配置文件
-
路径
/etc/yum.conf
[main] # 下载RPM包的缓存目录 cachedir=/var/cache/yum/$basearch/$releasever # RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存 keepcache=0 # 调试级别 取值范围 0 – 10,默认值为2 debuglevel=2 # yum相关日志存放路径 logfile=/var/log/yum.log # 是否要平台完全匹配才能安装 exactarch=1 # 需不需要检查已过期的仓库 obsoletes=1 # 是否检查包的完整性和合法性 gpgcheck=1 # 是否允许支持yum的插件功能,0 表示不允许 ,1表示允许 plugins=1 # 允许保留多少个内核包 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum # 指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release distroverpkg=centos-release
2.2.1 仓库配置文件
-
路径
/etc/yum.repos.d/*.repo
# 容器名字,必须是唯一的 [repositoryID] # 仓库的名字,仅作一个标识 name=Some name for this repository # 指定真正仓库所在的路径,可以指多个仓库 baseurl=url://path/to/repository/ # 指是否启用这个仓库,1表示启用,0表示不启用 enabled={1|0} # 是否要检测软件包的合法性,1表示启用,0表示不启用 gpgcheck={1|0} # 软件包的公钥文件所在路径 gpgkey=URL # 是否基于组来批量管理程序包 enablegroups={1|0} # 意思是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,默认为:roundrobin,意为随机挑选; failovermethod={roundrobin|priority} # 仓库优先级 ,默认为1000 cost=1000
2.3 配置本地yum源
2.3.1挂载光盘
-
虚拟光驱加载镜像文件,然后挂载到本地目录,先用lsblk命令查看光驱的块设备名称,这里是sr0
#建立本地yum源文件夹 mkdir /mnt/dvd #挂载 mount –o ro /dev/sr0 /mnt/dvd
2.3.2 开机自动挂载
-
方法1
-
修改
/etc/rc.local
文件。该文件是操作系统开机后最后执行的一个文件,该文件默认是没有执行权限的,如果你是第一次修改,请记得加执行权限。这就相当于开机后用脚本执行了一条挂载命名echo "mount -O ro /dev/sr0 /mnt/dvd" >> /etc/rc.local
-
-
方法2
-
编写
/etc/fstab
文件,将光盘当作块状设备挂载到系统中。# 将下面一行配置写入/etc/fstab中 /dev/sr0 /mnt/dvd iso9660 defaults 0 0
-
2.3.3 修改配置文件指向本地仓库
- 配置文件路径:
/etc/yum.repos.d/
# 备份源配置文件
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
- 创建本地配置文件,名字随意,如:
vim /etc/yum.repos.d/dvd.repo
# 仓库的名字,不要有特殊符号(自定义)
[dvd]
# 仓库描述
name=localdvd
# 指定yum仓库的路径;file://表示本地路径
baseurl=file:///mnt/dvd
# 启用仓库,1表示启用;0表示不启用
enabled=1
# 不用校验软件包的签名,0表示不校验;1表示校验
gpgcheck=0
2.3.4 测试验证
yum clean all #清空yum缓存 rm -rf /var/cache/yum
yum makecache #创建yum缓存
yum list #查看仓库里的软件包
2.4 配置国内网络yum源(重点)
前面说了,由于自带的yum源是国外的源,速度很慢,所以可以替换为国内的yum源。目前国内提供yum源的机构有很多,如阿里、网易、搜狐、清华等等,这里以阿里源为例。
2.4.1 还是先备份原来的yum源
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
2.4.2 下载网络源的repo文件到服务器
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
也可以将这两个文件自己保存起来,每次新建服务器,将该源替换进去。
清空并创建缓存
# 清空yum缓存 rm -rf /var/cache/yum
yum clean all
#创建yum缓存
yum makecache
2.5 扩展:自建局域网yum源
公司内网自建了yum仓库,在公司内的服务器可以使用
[base]
name=CentOS-7-Base-hbgg
baseurl=http://10.10.16.80/centos/7/base/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7-updates-hbgg
baseurl=http://10.10.16.80/centos/7/updates/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7-extras-hbgg
baseurl=http://10.10.16.80/centos/7/extras/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=CentOS-7-epel-hbgg
baseurl=http://10.10.16.80/centos/7/epel/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-EPEL-7
具体用法不再赘述,参考前文。
1 安装网络yum源
# 清理缓存
yum clean all
# 更新YUM源
yum makecache
# 备份默认源
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
# 删除默认的国外源
rm -rf /etc/yum.repos.d/*
# 下载阿里源的repo文件到服务器
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理缓存
yum clean all
# 更新YUM源
yum makecache
# 关闭防火墙
systemctl stop firewalld.service
# 禁止开机自启
systemctl disable firewalld
# 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 重启
reboot
# 查询启用的yum源清单,获取仓库标识
yum repolist
# 安装常用软件
yum -y install vim wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils ntpdate
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
2.4 yum 命令的用法
yum查询功能
yum [options] [command] [package …]
-y:默认yum需要是交互模式,-y表示自动提供yes响应
search:搜索某个软件名或关键字
list:列出所有yum所管理的软件包和名称
info:同上,也类似rpm -qai
provides:查找该命令是由软件安装生成的,类似rpm -df的功能
repolist:列出所有可用的repo
yum 安装、升级、降级、卸载
yum install:后面接需要安装的软件
reinstall:后面接需要重新安装的软件
update:后面接需要升级到的软件
check-update:检查可用的升级包
downgrade:后面接需要降级到的版本
remove:卸载软件
erase:功能同上,卸载和软件组相关的功能
yum组功能
yum grouplist:列出所有可使用的组列表
groupinfo:后面接groupname,可用了解该group内含所有组的名称
groupinstall:安装整组的软件
groupremove:删除某个组的软件
清理缓存
yum clean { all | package | headers }
all:将所有的数据删除,包括元数据和软件文件
package:将所有已下载的软件文件删除
headers:删除所有下载的元数据文件
构建缓存
yum makecache
1 查看服务器基本信息
1.1 查看gcc版本级相关信息
gcc -v
1.2 查看当前内核系统
版本信息
cat /proc/version
1.3 安装lsb_release
yum install redhat-lsb -y
1.4 查看操作系统
版本信息(使用命令时提示command not found,需要安装redhat-lsb)
lsb_release -a
2 开关防火墙
在RHEL7里有几种防火墙共存:
- firewalld
- iptables
- ebtables
默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等
Firewalld与iptables对比更*、更人性化
2.1 查看firewalld状态
systemctl status firewalld
2.2 策略启停firewalld
# 启动
systemctl start firewalld
# 停止
systemctl stop firewalld
2.3 开机启用/禁用
# 启用
systemctl enable firewalld
# 禁用
systemctl disable firewalld
2.4 查看默认域中的火墙
firewall-cmd --list-all
2.5 启/停、重启一个firewalld
服务
# 启动
systemctl start firewalld.service
# 关闭
systemctl stop firewalld.service
# 重启一个服务
systemctl restart firewalld.service
2.6 显示一个firewalld
服务的状态
systemctl status firewalld.service
2.7 是否开机自启
# 查看服务是否开机启动
systemctl is-enabled firewalld.service
# 查看已启动的服务列表
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表
systemctl --failed
# 开机自启
systemctl enable firewalld.service
# 禁止开机自启
systemctl disable firewalld.service
2.8 查看端口开放情况
firewall-cmd --list-port
- 如果提示
FirewallD is not running
,说明防火墙处于关闭状态
2.9 防火墙开启状态下开放端口
firewall-cmd --zone=public --add-port=3334/tcp --permanent
# 重启firewall
firewall-cmd --reload