1.yum命令

yum可以解决软件包安装时的依赖性

 

yum listall    ##列出所有安装包

yum listinstalled    ##列出已经安装的

yum  listavailable    ##列出没有安装的

yum remove   software#    #卸载软件

yum installsoftware    ##安装软件

yum search 关键字    ##搜索与关键字相关的软件

yum whatprovides  文件    ##搜索包含此文件的包

yum reinstall  software    ##从新安装软件

yum  localinstall 第三方软件    ##安装第三方软件并解决依赖关系

yum info software    ##查询软件信息

yum groups list    ##列出软件组

yum groups install    ##安装组

yum groups remove    ##卸载组

yum groups info    ##查看组信息

yum history    ##查看系统中的更新、删除

yum update    ##升级

 

##关于yum list##

软件安装—yum、rpm_yum 

安装后

软件安装—yum、rpm_yum_02 

##补充##

关于  yumsearch 关键字  与   yum whatprovides 文件 的区别

search 后面跟的是软件的信息,例如功能等,whatprovides 后面跟的是软件名

软件安装—yum、rpm_rpm_03 

我们在上课地方使用的机子,可以用lftp老师的IP(yum源)进行下载软件。如下图:

软件安装—yum、rpm_yum_04 

下载当前目录全部

软件安装—yum、rpm_rpm_05 


    我们虚拟机上的软件仓库的地址也是老师的IP,即系统获取软件的资源来源于这个yum源。所以当老师关闭网络服务,我们安装软件就会失败,显示无法到某个网址。如下图:

软件安装—yum、rpm_yum_06 


    而之所以会显示这个,是因为软件仓库的指向的设置,而软件仓库就是为了告诉系统下载软件的来源,而删掉这个文件就会提示找不到资源。

    所以当脱离老师设置的环境,我们可以用一个与本机匹配的安装镜像rhel-server-7.0-x86_64-dvd.iso,自己建立软件仓库。

 

2.官方软件仓库的建立

(1)需要一个与本机匹配的安装镜像,rhel-server-7.0-x86_64-dvd.iso,这个文件从官方网站下载得到

(2)让系统能够读取rhel-server-7.0-x86_64-dvd.iso中的内容,用mount挂载在目录上

(3)此时可以在这个目录下看到镜像中的内容,但这个挂载会随重启而消失,所以我们要通过编辑/etc/fstab文件来使该挂载可以长期存在。

     vim /etc/fstab

/xxx/rhel-server-7.0-x86_64-dvd.iso  /xxx  iso9660  ro,relatime 0 0

      镜像文件        挂在点  类型   挂载参数 备份检测

 

0 0  表示不备份不检测

 

##实验过程##

    将rhel-server-7.0-x86_64-dvd.iso挂载在/westos上,然后我们可以打开网页,在网址处输入file:///westos,我们可以在这里看到镜像的内容。

软件安装—yum、rpm_software_07 

用mount命令,可以看到已经成功挂载。

软件安装—yum、rpm_rpm_08


软件安装—yum、rpm_software_09


    如此软件仓库就建立成功了,但还不能进行软件的安装,因为软件仓库的指定文件还没有进行设置。可以找到rpm软件单独对这个软件安装,但不能解决它的依赖性。

        如果前面有挂载,先用 umount 卸掉挂载文件。

 

3.编写软件仓库的指定文件

/etc/yum.repos.d    ##仓库指向文件存储目录

vim /etc/yum.repos.d/test.repo    ##仓库指向文件

 

[redhatsoftware]    ##仓库名称

name=localsoftware    ##仓库描述

baseurl=file:///source    ##仓库地址

##file://本地镜像挂载路径;ftp://网络镜像点————指定yum源

gpgcheck=1|0    ##是否检测软件的gpgkey

enabled=1    ##此仓库在系统中生效(该yum源可用,系统会读取)

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

##本机gpgkey文件(指定发行版数字签名公钥文件)

 

【同一个文件里可以使用多个模块】

 

yum clean all    ##刷新仓库配置

 

gpgcheck=0表示不检测,红帽官方不负责

 

##实验过程##

(1)在/etc/yum.repos.d/目录下建立一个.repo的文件   vim yum.repo

(2)文件内容:

软件安装—yum、rpm_rpm_10 

(3)刷新仓库配置  yum clean all ,之后就可以用yum安装软件了

软件安装—yum、rpm_software_11

 

4.网络yum源的配置

yum  install  httpd    ##安装httpd

systemctl  stop  firewalld    ##关闭防火墙

systemctl  disable  firewalld    ##永久关闭防火墙

systemctl  start  httpd    ##开启httpd

Systemctl  enable  httpd      ##开机启动(永久开启)

 

vim /etc/fstab    ##关机会自动卸载挂载,修改为永久挂哉

/xxx/rhel-server-7.0-x86_64-dvd.iso  /xxx  iso9660  ro,relatime 0 0

      镜像文件        挂在点  类型   挂载参数 备份检测

 

yum 源:http://当前主机/source

 

##实验过程##

(1)安装httpd

软件安装—yum、rpm_rpm_12 

(2)关闭防火墙,开启httpd服务

软件安装—yum、rpm_yum_13 

(3)将rhel-server-7.0-x86_64-dvd.iso镜像挂载在/var/www/html/source/下

软件安装—yum、rpm_yum_14


软件安装—yum、rpm_software_15


软件安装—yum、rpm_rpm_16 


(4)修改/etc/yum.repos.d/目录下的软件仓库指向文件yum.repo文件,修改地址,刷新仓库配置,之后就可以用新的yum源安装了

(5)重新启动后,发现挂载消失,重新进行挂载。

     为了挂载可以一直存在,编辑/etc/fstab文件,在下面添上挂载的信息。

软件安装—yum、rpm_rpm_17


软件安装—yum、rpm_software_18


软件安装—yum、rpm_software_19 

再重启后,就发现挂载不消失。

软件安装—yum、rpm_rpm_20 

 

##补充##

###yum软件控制##

控制显示64位安装包或32位安装包

 

vim /etc/yum.conf

exclude=*.x86_64    ##忽略64位安装包

在yum.conf文件里添加一行:exclude=*.i686    ##忽略32位安装包

软件安装—yum、rpm_yum_21 

 

##第三方软件仓库的搭建##

    当我们从网上下了很多rpm文件,当我们需要安装其中的某个软件,得一个个安装完它们的依赖软件,很麻烦,而我们也无法使用yum一次性安装(yum可以解决依赖性安装),因为软件仓库里没有相关的信息。(系统不知道,要有地址指向,系统才能知道)

我们可以看到我们镜像挂载文件/var/www/html/source/下的文件,其中有一个repodata目录,下面就是关于一些可安装的软件包的信息

软件安装—yum、rpm_rpm_22


信息:

软件安装—yum、rpm_yum_23


所以我们把所有rpm包放到指定目录中,执行createrepo生成repodate目录

1createrepo   /rpm/  ,然后该目录下就会生成一个repodata目录

软件安装—yum、rpm_rpm_24


软件安装—yum、rpm_yum_25


(2)编写/etc/yum.repos.d/目录下的软件仓库指向文件yum.repo文件,添加一个仓库信息,刷新仓库配置(指定/rpm位yum源)

软件安装—yum、rpm_yum_26


软件安装—yum、rpm_rpm_27

 

5.rpm命令的使用

rpm    ##底层软件管理工具

    -i    ##install

    -v    ##显示信息

    -h    ##指定包的解密方式为hash

    -q    ##查询

    -p    ##指定软件包本身

    -l    ##列出软件中文件的名字

    --scripts    ##查看软件安装和卸载过程中所执行的动作

    -f    ##查询某个文件属于那个安装包

    -a    ##所有

    -e    ##卸载

    --force    ##强制

    --nodeps    ##忽略依赖性

 

##各种参数的实验##

(1)-ivh

安装google

软件安装—yum、rpm_rpm_28 

缺少lsb和libXss.so.1,安装lsb和libXss.so.1

软件安装—yum、rpm_yum_29


软件安装—yum、rpm_software_30

 

完成后,安装google成功!

删除google-chrome.repo,这个文件会导致一些问题(貌似yum使用有误)

软件安装—yum、rpm_yum_31 

(2)-e    ##卸载

软件安装—yum、rpm_rpm_32 

删除的时候,跟的是软件名,而不能是软件安装包名!

-qa    ##查询所有(查看系统中所有软件包的名字)

软件安装—yum、rpm_software_33 


(3)-qi    ##查询安装信息(已经安装的详细信息)

软件安装—yum、rpm_rpm_34 

(4)-ql    ##软件中文件信息(已经安装的软件在系统中产生的文件)

软件安装—yum、rpm_rpm_35 

(5)-qlp    ##软件包本身文件信息

软件安装—yum、rpm_rpm_36 

(6)-qip    ##软件包信息(安装)

软件安装—yum、rpm_yum_37 

(7)-qp  --scripts    ##软件安装和卸载执行的动作

软件安装—yum、rpm_software_38 

第一个软件包安装后卸载时会删除根目录下的所有文件,所以安装第二个软件包


(8)-ivh  --nodeps    ##忽略依赖性安装

如果依赖成死循环,则可以解除依赖死循环,可以先忽略依赖性,再一个一个安装所需要的所有软件


(10)-ivh  --force    ##强制安装

如果下载后误删了软件中的某一个文件,导致软件有了一些问题,可以强制重装


(11)rpm其它

-ivh//安装(显示过程)

-qc//查看已经安装的软件的配置文件

-qd//查看已经安装的软件的说明

-q--changlog//查看该软件从最古老的版本到当前版本所经历的过程

-q--scripts//查看该软件安装卸载的时候会对系统做什么事

-qp--scripts//查看该软件包(未安装也行)的软件在安装或卸载的时候会对系统做什么事