linux-yum

目录

  • 一、SRC
    • 1. COM
  • 二、须知:
  • 三、配置自定义yum源1
    • 1. 准备好一台节点,配置好ip,准备好iso
      • {1} 将CentOS-6.8-x86_64-bin-DVD1.iso镜像挂载到/mnt/cdrom目录
    • 2. 将server节点的yum源由默认的指向网络改为指向本机目录
      • {1} 修改本机上的YUM源配置文件,将源指向本机的目录
    • 3. 清除YUM缓冲
      • {1} 列出可用的YUM源
    • 4. 安装httpd,yum源配好后,要发布到生产环境的内网中
      • {1} 安装httpd
        • [1] 配置
      • {2} 将YUM源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的YUM源了
      • {3} 取消先前挂载的镜像(如果重启就不用了)
    • 5. 在浏览器中访问http://192.168.1.100/cdrom/验证是否已经发布到http
    • 6. 此时yum-server已经配好,开始配置client
      • {1} 准备一台client,备份或删除原有的YUM源配置文件
      • {2} 编辑CentOS-Base.repo文件
      • {3} 在这台新的服务器上执行YUM清除缓存命令
  • 四、配置自定义yum源2
    • 须知
    • 1. 将iso挂载到光驱中
      • {1} 创建光驱的挂载点=挂载目录
      • {2} 在vm中将iso放到光驱中
    • 2. 挂载
    • 3. 本地和远程配置yum源
      • {1} 编辑CentOS-Media.repo,也可以自己建一个repo文件。
      • {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. 没有可用的包
      • {1} yum install epel-release
      • {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
    • 2. 查看装了那些包
    • 3. 删除

一、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

须知

  1. iso其实就是一个虚拟的安装光盘,可以用虚拟的光驱来加载。为什么要以虚拟安装盘的形式呢,因为安装文件只有以这种方式才能占用最小容量,通过光驱加载后会变大。不宜通过直接以类exe的方式提供。
  2. iso里集中了大量的安装包

1. 将iso挂载到光驱中

{1} 创建光驱的挂载点=挂载目录

cd /mnt;mkdir cdrom
这里目录名可以随意

{2} 在vm中将iso放到光驱中

注意设备状态的2个复选框要勾上
linux-yum_第1张图片

2. 挂载

mount /dev/cdrom /mnt/iso-all-newversion
在这里插入图片描述
此时进入/mnt/iso-all-newversion,访问的就是挂载的iso光盘
linux-yum_第2张图片
安装包都在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中指定,默认的都是错的,需要修改
linux-yum_第3张图片
linux-yum_第4张图片

{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. 没有可用的包

linux-yum_第5张图片
折腾了好几次,到最后也不知道是怎么解决的。应该是因为下面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

你可能感兴趣的:(linux,运维,linux)