软件包的安装方式有两种,分别为:

- rpm
     - yum # rpm包安装
 - 准备工作: 下载iso镜像
 - 挂载设备到某个目录:mount xxx.iso /mnt/
 - 进入Packages包执行命令:
     rpm -ivh xxx.rpm    # 安装软件, i:install,v,显示过程

例如:

yum 如何删除一个仓库 yum清空仓库缓存_基本操作


    rpm -qp xxx.rpm     # 找出rpm包在系统中安装后的名字

例如:

yum 如何删除一个仓库 yum清空仓库缓存_html_02


    rpm -e xxx      # 删除软件

例如:

yum 如何删除一个仓库 yum清空仓库缓存_基本操作_03



    查询:

        rpm -ql xxx.rpm     # 查询该软件生成了哪些文件;

        rpm -qc xxx.rpm     # 查询软件生成的配置文件;

        rpm -qa         # 查询已经安装的软件包

        rpm -qa | grep http # 查询与http相关的软件是否安装;

        rpm -qf /bin/ls     # 查看/bin/ls是由哪个软件包生成的;


- 缺点:必须切换到软件包所在的目录;依赖性需要自己查找安装;



# yum安装


- 前提

    iso镜像

    需要你的软件包仓库;



## 搭建本地yum仓库

1. 挂载iso镜像到本地的某个目录:

    mount xxx.iso /mnt/

    # 你可以在/mnt目录里面访问到iso镜像的内容;

先用df命令查看挂载信息:

yum 如何删除一个仓库 yum清空仓库缓存_html_04


再将设备挂载到/mnt下:

yum 如何删除一个仓库 yum清空仓库缓存_html_05

(注意:如果挂载未生效,使用umount取消之前的挂载)

2. 告诉yum仓库你的软件位置:
    # 切换到yum仓库配置文件所在目录
    cd /etc/yum.repos.d/
   
    # 删除装系统时默认设置配置文件
    rm -fr *

(也可以不删,在系统原文件上直接编辑)

yum 如何删除一个仓库 yum清空仓库缓存_基本操作_06



    # 编辑属于你的配置文件

    vim westos.repo     # 一定要以.repo结尾,前面任意

    ```

    [rhel7]         # 仓库名称

    name=rhel7      # 仓库描述

    baseurl=file:///mnt # 仓库地址,file://是协议,/mnt是本地所在位置;

    gpgcheck=0      # 不检测key

    enabled=1       # 1,仓库生效; 0,不生效;  

    ```

yum 如何删除一个仓库 yum清空仓库缓存_html_07

3. 清除缓存:
    # 默认会去/var/cache/yum去找软件信息,更改配置后一定要清缓存;
    yum clean all

yum 如何删除一个仓库 yum清空仓库缓存_基本操作_08



4. 检测

    - 方法一: 

        # 列出所有的软件仓库包含的软件包;

        yum repolist

yum 如何删除一个仓库 yum清空仓库缓存_html_09



    - 方法二:

        # 任意安装一个软件

        yum install lftp -y




## 搭建网络yum仓库



** desktop主机

1. 准备工作: 把本机文件让其他主机可以访问(httpd)

    # 一般把安装了httpd软件的主机称为Web服务器,可以共享文件给其他主机;

    yum install httpd -y

    systemctl start httpd

    systemctl enabled httpd 

开启http协议,设置为开机启动

yum 如何删除一个仓库 yum清空仓库缓存_linux_10

    systemctl stop firewalld

    systemctl disable firewalld

关闭防火墙,设置为开机不启动

yum 如何删除一个仓库 yum清空仓库缓存_配置文件_11




2. 把iso镜像的内容让其他主机可以访问:

    # /var/www/html,是http的默认发布目录,http://ip/rhel7访问;

    mkdir /var/www/html/rhel7


    # iso挂载到http的默认发布目录

    mount xxx.iso/var/www/html/rhel7

yum 如何删除一个仓库 yum清空仓库缓存_linux_12



3. 修改yum仓库的配置文件

    # 只需要修改baseurl

    vim 配置文件.repo     # 一定要以.repo结尾,前面任意

yum 如何删除一个仓库 yum清空仓库缓存_基本操作_13


    ```

    [rhel7]         # 仓库名称

    name=rhel7      # 仓库描述

    baseurl=http://ip/rhel7 # 仓库地址,http://是协议,/rhel7是ip主机/var/www/html/rhel7目录;

    gpgcheck=0      # 不检测key

    enabled=1       # 1,仓库生效; 0,不生效;   

yum 如何删除一个仓库 yum清空仓库缓存_html_14

4. 清空缓存和检测



*** 其他主机(想使用desktop搭建好的yum仓库)

    # 只需要修改yum仓库的配置文件,同desktop第3步;


yum 如何删除一个仓库 yum清空仓库缓存_linux_15




## 搭建网络第三方软件仓库


- 理解什么是第三方软件?

    iso镜像里面包含4000多个软件包,但还有一些软件(eg:wps,smplayer,ntfs)没有;

    从其他地方(eg:baidu,www.pkgs.org)下载的其他软件包;


** desktop主机

1. 创建software目录,可让其他主机访问

    mkdir /var/www/html/software


2. 将第三方软件放在/var/www/html/software目录下;

    # 可通过网址http://ip/software访问;

    cp xxxx.rpm/var/www/html/software/

yum 如何删除一个仓库 yum清空仓库缓存_linux_16


3. 对software目录生成repodata元数据,让系统知道该目录下有软件包;

    createrepo /var/www/html/software/

yum 如何删除一个仓库 yum清空仓库缓存_基本操作_17



4. 修改yum仓库的配置文件;

    vim westos.repo     # 一定要以.repo结尾,前面任意

    ```

    [rhel7]         # 仓库名称

    name=rhel7      # 仓库描述

    baseurl=http://ip/rhel7 # 仓库地址,http://是协议,/rhel7是ip主机/var/www/html/rhel7目录;

    gpgcheck=0      # 不检测key

    enabled=1       # 1,仓库生效; 0,不生效;  



    [soft]          #仓库名称

    name=soft       # 仓库描述

    baseurl=http://ip/software  # 仓库地址,http://是协议,/software是ip主机/var/www/html/software目录;

    gpgcheck=0      # 不检测key

    enabled=1       # 1,仓库生效; 0,不生效;  

yum 如何删除一个仓库 yum清空仓库缓存_html_18



5. 清空缓存和检测;


**** 其他主机要使用第三方软件仓库:

    # 只需要修改yum仓库的配置文件,同desktop主机第4步操作;

测试成功

yum 如何删除一个仓库 yum清空仓库缓存_html_19


yum 如何删除一个仓库 yum清空仓库缓存_yum 如何删除一个仓库_20