目录
- 一、SRC
- 二、须知:
- 三、配置自定义yum源1
- 四、配置自定义yum源2
- 五、异常
- 六、常见操作
一、SRC
用来进行包管理,类似maven,可以自定义yum源
在Fedora、RedHat、CentOS中使用,别的发行版不用这个工具
基于rpm
1. COM
在server设置本机的yum源并通过httpd发布到网络,然后client将yum源配置为server节点即可。
yum中有repo的概念,1个client的repo可以跟1个server的repo对应
==》步骤
将iso挂载到server的目录下,把这个目录配置为server的本地yum源。
配置项中有个baseUrl,值是个url,可以是http开头,也可以以file://开头
server安装httpd,将之前配置的yum源目录复制到httpd指定的目录下。此时可以直接通过http访问server上的资源。发布的过程其实就是把资源放到指定目录。
因为yum源默认就是以一个官方的http地址作为源的,只不过替换了一个源而已
在client中将repo配文和server的配置对应起来。然后清除缓存就配好了。
==》
server中iso文件挂载httpd的指定目录,或者直接把相关的rpm放在指定目录。可以有多个目录,最后一级目录明就是repo名。
client中在/etc/yum.repo.d中设置对应各个repo的配文,把baseUrl配好。然后清理缓存即可。
二、须知:
/etc/yum.repos.d/ 存放yum的配文
/etc/fstab 存放挂载信息,开机会自动执行,一般执行mount命令后会把信息放到这个文件中
三、配置自定义yum源1
YUM源其实就是一个保存了多个RPM包的服务器,可以通过http的方式来检索、下载并安装相关的RPM包。
生产环境通常无法上网,不能连接外网的YUM源,所以就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置自定义yum源。
1. 准备好一台节点,配置好ip,准备好iso
{1} 将CentOS-6.8-x86_64-bin-DVD1.iso镜像挂载到/mnt/cdrom目录
[root@hadoop101 /]# mkdir /mnt/cdrom
[root@hadoop101 /]# mount -t iso9660 -o rw /dev/cdrom /mnt/cdrom
2. 将server节点的yum源由默认的指向网络改为指向本机目录
{1} 修改本机上的YUM源配置文件,将源指向本机的目录
[root@hadoop101 /]# cd /etc/yum.repos.d/
[root@hadoop101 yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak (是系统原来的,不是前面操作的163)
[root@hadoop101 yum.repos.d]# vi CentOS-Base.repo //CentOS-Base.repo是个配置文件
[base]
name=CentOS-Local
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1 #增加改行,使能
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3. 清除YUM缓冲
yum clean all
yum makecache //建立新缓存
{1} 列出可用的YUM源
[root@hadoop101 yum.repos.d]# yum repolist
4. 安装httpd,yum源配好后,要发布到生产环境的内网中
{1} 安装httpd
[root@hadoop101 yum.repos.d]#yum install -y httpd
[root@hadoop101 yum.repos.d]#systemctl start httpd
使用浏览器访问http://192.168.1.100:80(如果访问不通,检查防火墙是否开启了80端口或关闭防火墙)
[1] 配置
vi /etc/httpd/conf/httpd.conf
AddType application/x-gzip .gz .tgz 添加.parcel,修改为
AddType application/x-gzip .gz .tgz .parcel
{2} 将YUM源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的YUM源了
[root@hadoop101 yum.repos.d]#cp -r /mnt/cdrom/ /var/www/html/CentOS
然后在这个目录下执行createrepo
{3} 取消先前挂载的镜像(如果重启就不用了)
[root@hadoop101 yum.repos.d]#umount /mnt/cdrom
5. 在浏览器中访问http://192.168.1.100/cdrom/验证是否已经发布到http
6. 此时yum-server已经配好,开始配置client
{1} 准备一台client,备份或删除原有的YUM源配置文件
[root@hadoop102 /]#cd /etc/yum.repos.d/
[root@hadoop102 yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak
{2} 编辑CentOS-Base.repo文件
[root@hadoop102 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-hadoop101
baseurl=http://192.168.11.101/CentOS # 这里是server的仓库的地址
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #???
{3} 在这台新的服务器上执行YUM清除缓存命令
[root@hadoop102 yum.repos.d]# yum clean all
[root@hadoop102 yum.repos.d]# yum repolist #查看当前的仓库列表
此时yum源就配好了
四、配置自定义yum源2
须知
- iso其实就是一个虚拟的安装光盘,可以用虚拟的光驱来加载。为什么要以虚拟安装盘的形式呢,因为安装文件只有以这种方式才能占用最小容量,通过光驱加载后会变大。不宜通过直接以类exe的方式提供。
- iso里集中了大量的安装包
1. 将iso挂载到光驱中
{1} 创建光驱的挂载点=挂载目录
cd /mnt;mkdir cdrom
这里目录名可以随意
{2} 在vm中将iso放到光驱中
注意设备状态的2个复选框要勾上
2. 挂载
mount /dev/cdrom /mnt/iso-all-newversion
此时进入/mnt/iso-all-newversion,访问的就是挂载的iso光盘
安装包都在Packages下
3. 本地和远程配置yum源
有3种安装方式,yum会自动把相关依赖下好安好,rpm需要自己安依赖,所以yum相当于rpm的封装。编译安装就是自定义。
所谓的配置yum源,就是配置yum包的来源,可以是网上资源、本地资源。
cd /etc/yum.repos.d
将CentOS-Base.repo和CentOS-Debuginfo.repo改名备份
[root@node105 yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@node105 yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
{1} 编辑CentOS-Media.repo,也可以自己建一个repo文件。
指定iso光盘位置,并设置为开启模式。默认在/etc/yum.repos.d下有很多repo文件,但yum repolist只会显示其中几个,就是因为别的都没有开启,开启要把enabled设为1。
在baseurl中指定,默认的都是错的,需要修改
{2} yum clean all;yum makecache;yum repolist
{3} 使用httpd把这个目录发布出去,然后在其他节点的repo文件中配置。
五、异常
1. 遇到过一次repo文件无法更新,cloudera-manager.repo文件一修改之后,执行yum clean up就复原成原来的,修改的变成cloudera-manager.repo~1~的名字,后来修改完之后,不执行yum clean up,而是直接用,比如执行yum install cloudera-manager-agent,结果就好了
2. 没有可用的包
折腾了好几次,到最后也不知道是怎么解决的。应该是因为下面2步:
{1} yum install epel-release
镜像连接错误
使用yum搜索某些rpm包,找不到包是因为CentOS是RedHat企业版编译过来的,去掉了所有关于版权问题的东西。安装EPEL后可以很好的解决这个问题。EPEL(Extra Packages for Enterprise Linux )即企业版Linux的扩展包,提供了很多可共Centos使用的组件,安装完这个以后基本常用的rpm都可以找到。
解决方法
如果是第一种情况,请设置你的网络连接。
针对第二种情况,我们只需要 从企业版Linux库配置包中安装扩展包。具体方法如下
{2} 在/etc/yum.repos.d下,把CentOS-Base.repo放开,然后yum clean all;yum repolist all;yum makecache;
六、常见操作
1.修改yum源为aliyun
https://blog.csdn.net/hnmpf/article/details/81240177
https://blog.csdn.net/ltx06/article/details/78030056
注意wget 阿里云的源时要根据centos的版本下载
Installed:
kernel.x86_64 0:3.10.0-1062.9.1.el7
Updated:
NetworkManager.x86_64 1:1.18.0-5.el7_7.1 NetworkManager-libnm.x86_64 1:1.18.0-5.el7_7.1 NetworkManager-team.x86_64 1:1.18.0-5.el7_7.1
NetworkManager-tui.x86_64 1:1.18.0-5.el7_7.1 NetworkManager-wifi.x86_64 1:1.18.0-5.el7_7.1 binutils.x86_64 0:2.27-41.base.el7_7.1
ca-certificates.noarch 0:2019.2.32-76.el7_7 curl.x86_64 0:7.29.0-54.el7_7.1 device-mapper.x86_64 7:1.02.158-2.el7_7.2
device-mapper-libs.x86_64 7:1.02.158-2.el7_7.2 firewalld.noarch 0:0.6.3-2.el7_7.2 firewalld-filesystem.noarch 0:0.6.3-2.el7_7.2
hostname.x86_64 0:3.13-3.el7_7.1 iproute.x86_64 0:4.11.0-25.el7_7.2 kernel-tools.x86_64 0:3.10.0-1062.9.1.el7
kernel-tools-libs.x86_64 0:3.10.0-1062.9.1.el7 krb5-libs.x86_64 0:1.15.1-37.el7_7.2 libblkid.x86_64 0:2.23.2-61.el7_7.1
libcurl.x86_64 0:7.29.0-54.el7_7.1 libmount.x86_64 0:2.23.2-61.el7_7.1 libsmartcols.x86_64 0:2.23.2-61.el7_7.1
libuuid.x86_64 0:2.23.2-61.el7_7.1 microcode_ctl.x86_64 2:2.1-53.7.el7_7 nss.x86_64 0:3.44.0-7.el7_7
nss-softokn.x86_64 0:3.44.0-8.el7_7 nss-softokn-freebl.x86_64 0:3.44.0-8.el7_7 nss-sysinit.x86_64 0:3.44.0-7.el7_7
nss-tools.x86_64 0:3.44.0-7.el7_7 nss-util.x86_64 0:3.44.0-4.el7_7 numactl-libs.x86_64 0:2.0.12-3.el7_7.1
polkit.x86_64 0:0.112-22.el7_7.1 procps-ng.x86_64 0:3.3.10-26.el7_7.1 python-firewall.noarch 0:0.6.3-2.el7_7.2
python-perf.x86_64 0:3.10.0-1062.9.1.el7 rsyslog.x86_64 0:8.24.0-41.el7_7.2 selinux-policy.noarch 0:3.13.1-252.el7_7.6
selinux-policy-targeted.noarch 0:3.13.1-252.el7_7.6 sqlite.x86_64 0:3.7.17-8.el7_7.1 sudo.x86_64 0:1.8.23-4.el7_7.1
systemd.x86_64 0:219-67.el7_7.2 systemd-libs.x86_64 0:219-67.el7_7.2 systemd-sysv.x86_64 0:219-67.el7_7.2
tuned.noarch 0:2.11.0-5.el7_7.1 tzdata.noarch 0:2019c-1.el7 util-linux.x86_64 0:2.23.2-61.el7_7.1
Complete!
2. 查看装了那些包
yum grouplist
3. 删除
yum remove vsftpd
验证是否删除成功
rpm -qa vdftpd