Linux 的yum详解

Linux yum详解:

rpm包在安装过程中经常会出现一些依赖关系,这就是yum安装方式诞生的背景。

YUM 全称yellowdog Update Modifier

 

yum最大的好处就是一站式解决软件包的安装,可以自动安装所需依赖环境。

 

yum的配置文件:

/etc/yum.conf                              # 为所有仓库提供公共配置

/etc/yum.repos.d/*.repo      # 为仓库的指向提供配置

 

 

yum缓存地址:

/var/cache/yum/

 

yum安装卸载的记录文件:

/var/log/yum.log

 

1.yum源的配置

默认系统安装好后,在/etc/yum.repo.d/目录下有几个CentOS-Base开头的几个repo文件。

yum源可以分为2种:网络源和本地源。

网络源的好处是软件包更新较快,但是容易受网络带宽的影响。

本地源用的是已经下载好的软件包,不用受网络影响,但包更新可能不够及时。

 

网络源的安装请网上搜索相应的repo文件。

 

本地源的配置在下文中会详细说明具体操作步骤。

 

 

这里先对repo文件格式做个大体的说明:

[Media]  便于识别的ID,同一系统上的repo文件中该字段不能重名

name=testrepo 

baseurl=http://xxxxxxx或者file:///xxx 或ftp://xxx

gpgcheck=0    # 0表示关闭gpg校验,1表示启用gpg校

enabled=1        表示启用该repo

gpgkey=http://xxxxxxx/RPM-GPG-KEY-CentOS-6     # 启用gpgcheck后,需要加这条。不启用gpgcheck的话,这条可以删掉。

 

 

2.yum命令的用法:

从使用角度对yum命令进行分类:

  • 显示仓库列表

yum repolist [all|enabled|disabled]

 

  • 软件包的搜索

yum list all                 # 显示所有软件包

yum list all|grep httpd     # 搜索所有含httpd的软件包

yum list available              # 显示所有可用的软件包

yum list installed      # 显示已经安装的软件包

yum list updates      # 显示有更新的软件包

 

yum search httpd    # 列出所有包名或者summary内容中包含httpd的包

 

 

  • 软件包的安装

yum install httpd      # 安装httpd软件包及相关依赖包

yum reinstall httpd  # 重新安装软件包

 

  • 软件包的卸载

yum remove httpd            # 卸载软件包和依赖环境

yum erase httpd              # 卸载软件包和依赖环境

 

  • 软件包的升级、降级

yum update httpd    #更新httpd软件包

yum update      # 全部更新

yum downgrade package         # package降级安装

 

  • 软件包的信息查看

yum info httpd         # 查看httpd软件包信息

yum groupinfo group1     # 显示程序组group1信息

 

  • 查看指定包的依赖关系

yum deplist httpd              # 查看httpd依赖哪些包

 

  • 查看yum事物历史

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

 

  • 安装及升级本地程序包:

yum localinstall rpmfile1 [rpmfile2] [...]                     # 本地安装软件包

yum localupdate rpmfile1 [rpmfile2] [...]                   # 本地升级软件包

 

  • 包组的管理命令

yum groupinstall group1…

yum groupupdate group1 ...

yum grouplist          # 列出所有的包租

yum groupremove group1                 # 移除某个包组

yum groupinfo group1     # 显示某个包组的信息

 

 

  • 其它命令

yum check-update            # 检查可用的升级

yum clean all             # 清理yum所有的缓存

yum make cache      # 建立yum缓存

 

 

3.yum的命令行选项

--nogpgcheck:禁止进行gpg check

-y: 自动回答为“yes”;

-q:静默模式;

--disablerepo=repoidglob:临时禁用此处指定的repo

--enablerepo=repoidglob:临时启用此处指定的repo

--noplugins:禁用所有插件;

 

4.yum仓库的手动创建

 

为了下面实验结果的直观起见,我先将/etc/yum.repo.d/文件夹下原有的内容都重命名为xxx.repo.bak

 

方法1:直接挂载光盘构建yum源仓库

mount /dev/cdrom /media

 

/etc/yum.repos.d/目录下,建立local.repo文件:

[local]

name=local source

baseurl=file:///media

enabled=1

gpgcheck=1

gpgkey=/media/RPM-GPG-KEY-CentOS-6

 

保存并退出。

yum clean all

yum install xxx          # 安装个软件测试下yum源能否正常工作。

 

 

方法2:本地网络源仓库

http://172.16.249.118是局域网的一台服务器,上面做了yum源。【如下图】

 

wKioL1XiYWTBOKe1AAJ1EH7XeTQ307.jpg

 

/etc/yum.repos.d/目录下,建立http.repo文件:

 

[httpd]

name=httpd source

baseurl=http://172.16.249.118                                                                              

enabled=1

gpgcheck=1

gpgkey=http://172.16.249.118/RPM-GPG-KEY-CentOS-6

 

 

 

方法3createrepo命令创建repo源文件,再挂载

 

yum仓库的建立需要用到createrepo程序。

假设在/tmp/demo下有一些软件包,需要创建包仓库。

wKiom1XhyxzQ_69WAAIApCYwXTo768.jpg

cd /tmp/demo

create -o ../ ./           #注释:-o 指定生成的repo的路径为上层目录, ./ 是表示将当前目录的文件创建yum仓库。

wKioL1XhzUiSg7qjAAAxrkR6kvg745.jpg

 

/etc/yum.repos.d/目录下,建立repo文件:

test.repo

[local]

name=test.repo

baseurl=file:///tmp

enabled=1

gpgcheck=1

 

 

yum clean all    # 清除yum缓存

yum repolist     # 查看当前有哪些repo文件

wKioL1Xhzmbi4o4ZAAD8Vs1meio745.jpg

 

已经可以找到刚才新建的yum源了。

也可以yum install 安装个软件测试下是否yum源可以正常工作。

你可能感兴趣的:(linux,yum,软件仓库)