构建YUM源

yum命令查询详解

一、列举包文件

列出资源库中所有可以安装或更新的rpm包

# yum list

列出资源库中特定的可以安装或更新以及已经安装的rpm包

# yum list perl //列出名为perl 的包

# yum list perl* //列出perl 开头的包

列出资源库中所有可以更新的rpm包

# yum list updates

列出已经安装的所有的rpm包

# yum list installed

列出已经安装的但是不包含在资源库中的rpm包

# yum list extras

注:extras是repos.d中定义的资源列表名称

二、列举资源信息

列出资源库中所有可以安装或更新的rpm包的信息

# yum info

列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息

# yum info perl //列出perl 包信息

# yum info perl* //列出perl 开头的所有包的信息

列出资源库中所有可以更新的rpm包的信息

# yum info updates

列出已经安装的所有的rpm包的信息

# yum info installed

列出已经安装的但是不包含在资源库中的rpm包的信息

# yum info extras

三、搜索

搜索匹配特定字符的rpm包

# yum search perl //在包名称、包描述等中搜索

检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值

# yum provides locate 谁提供locate这个命令,能搜索出locate安装包。

四、管理包

安装rpm包

# yum install perl //安装perl 包

# yum install perl* //安装perl 开头的包

删除rpm包,包括与该包有倚赖性的包

# yum remove perl* //会删除perl-* 所有包

五、更新

检查可更新的rpm包

# yum check-update

更新所有的rpm包

# yum update

更新指定的rpm包,如更新kernel和kernel source

# yum update kernel kernel-source

大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级

# yum upgrade

六、清空缓存

清除暂存中rpm包文件

# yum clean packages

清除暂存中rpm头文件

# yum clearn headers

清除暂存中旧的rpm头文件

# yum clean oldheaders

清除暂存中旧的rpm头文件和包文件

# yum clearn   或    # yum clearn all

七、其他

安装Livna.org rpms GPG key

# rpm –import http://rpm.livna.org/RPM-LIVNA-GPG-KEY

检查GPG Key

# rpm -qa gpg-pubkey*

显示Key信息

# rpm -qi gpg-pubkey-a109b1ec-3f6e28d5

删除Key

# rpm -e gpg-pubkey-a109b1ec-3f6e28d5

八、特殊命令

1、yum配置文件位置:/etc/yum.conf

keepcache选项 keepcache=1 保留安装包,安装的位置有两个:

/var/cache/yum/x86_64/7/updates/packages

/var/cache/yum/x86_64/7/base/packages

安装maven需要依赖的软件包都会放在这两个位置

2、yum -y install yum-utils

接着用yumdownloader就能下载rpm包了。简单快捷啊。yumdownloader ncftp

安装这个软件的作用就是直接将软件下载到当前文件夹

3、查看回退安装

yum history list 列出最近的历史

yum history info id 列出某次的详细信息

yum history undo id 撤销某次更改

九、如何使用yum来下载RPM包而不进行安装

yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的。

yum install --downloadonly <package-name>

默认情况下,一个下载的RPM包会保存在下面的目录中:

/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages

以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)

如果你想要将一个包下载到一个指定的目录(如/tmp):

yum install --downloadonly --downloaddir=/tmp <package-name>

 

基于HTTP构建YUM网络源

1、挂载光盘镜像文件至/mnt;

mount /dev/cdrom /mnt

 

2、复制/mnt/Packages目录下所有软件包至/var/www/html/centos/;

mkdir -p /var/www/html/centos/

cp -R /mnt/Packages/* /var/www/html/centos/

 

3、使用createrepo创建本地源,执行如下命令会在CentOS目录生成repodata目录;

yum install createrepo* -y

cd /var/www/html

createrepo centos/

 

4、利用HTTP发布YUM本地源;

yum install httpd httpd-devel -y

useradd apache -g apache

systemctl restart httpd.service

setenforce 0

systemctl stop firewalld.service

ps -ef |grep httpd

 

5、在YUM客户端,创建/etc/yum.repos.d/httpd.repo文件,输入如下内容:

[base]

name=”CentOS7 HTTP YUM”

baseurl = http://x.x.x.x/centos/

gpgcheck = 0

enabled = 1

[updates]

name = “CentOS7 HTTP YUM”

gpgcheck = 0

enabled = 1

 

6、在YUM 客户端上执行以下命令,详解如下:

yum clean all

yum install ntpdate -y

 

同步外网YUM源

1、下载Centos 7 repo文件至/etc/yum.repos.d/,并安装 reposync 命令工具。

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

mv CentOS7-Base-163.repo /etc/yum.repos.d/centos.repo

yum clean all

yum install yum-utils createrepo -y

yum repolist

 

2、通过reposync命令工具获取外网YUM源所有软件包,-r指定repolist id,默认不加-r表示获取外网所有YUM软件包,-p参数表示指定下载软件的路径。

reposync -r base -p /var/www/html/centos/

reposync -r updates -p /var/www/html/centos/

 

3、通过reposync工具下载完所有的软件包之后,需要执行createrepo更新本地YUM仓库。

createrepo /var/www/html/centos/

 

建立 YUM服务器

配置防火墙:

firewall-cmd –permanent –add-service=ftp

firewall-cmd –reload

关闭SELinux:

setenforce 0

vim /etc/sysconfig/selinux

SELINUX=disabled

FTP:

yum -y install vsftpd

systemctl start vsftpd

systemctl enable vstfpd

 

实现目标1:提供基础软件Base源

挂载centos镜像

mkdir /var/ftp/{centos6u6,centos7u3}

mount -o loop /home/centos7u2.iso /var/ftp/centos7u2

echo “mount -o loop /home/centos7u2.iso /var/ftp/centos7u2” >> /etc/rc.local

chmod +x /etc/rc.d/rc.local

添加yum 源:

vim /etc/yum.repos.d/centos7u2.repo

[centos7u2]

name=centos7u2

baseurl=file:///var/ftp

gpgcheck=0

enabled=1

 

实现目标2:提供update源

服务器端:

开启yum自动缓存:vim /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=1

yum -y update 或者 yum -y update –downloadonly  安装后不清理缓存

mkdir /ftp/update

find /var/cache/yum/x86_64/7/ -iname “*.rpm” -exec cp -rf {} /ftp/update \;

yum -y install createrepo   安装创建源工具

createrepo /ftp/update   创建源数据库

客户端:

vim /etc/yum.repos.d/update.repo

[update]

name=centos update

baseurl=ftp://192.168.10.3/update       ftp默认目录为 /ftp

gpgcheck=0

enabled=1

 

实现目标3:提供其它软件包如nginx,zabbix等 –downloadonly

配置nginx及zabbix源:

vim /etc/yum.repos.d/nginx.repo

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

yum clean all

yum install nginx –downloadonly

mkdir /var/ftp/{nginx,zabbix}

fin /var/cache/yum/x86_64/7/ -iname “*.rpm” -exec cp -rf {} /ftp/nginx

yum -y install createrepo   安装创建源工具

createrepo /ftp/nginx  创建源数据库