vlambda博客
学习文章列表

CentOS-创建yum本地源【进阶必备】

CentOS-创建yum本地源【进阶必备】


CentOS-创建yum本地源【进阶必备】

CentOS-创建yum本地源【进阶必备】




1. yum概述

yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。




2. 安装

制作本地源,用createrepo生成repodata目录,以光驱为源。

为了避免从网络下载软件包可能发生的软件包不完整、下载速度慢、网络故障等问题,我们强烈建议您使用本地的 DVD/CD iso 来创建 yum 仓库,这样在安装的时候速度快,而且可以保证所有软件包都能顺利安装。
如果您有局域网内的 yum 仓库,可以直接使用它,就不需要按照以下的步骤重复创建了。
下面的操作都是在安装好 RHEL/CentOS 系统后进行的。



1. 先从光盘或已有的 YUM 仓库安装 createrepo 工具

createrepo 命令用于生成 yum 仓库所必须的一些信息,这些信息都存放在 repodata/ 目录。

依次安装依赖包和createrpo包:

rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  rpm -ivh createrepo-0.9.9-22.el6.noarch.rpm

以上安装包可以从下载的DVD-ISO镜像解压包中获取。
CentOS-创建yum本地源【进阶必备】


2. 使用 ISO 文件制作 yum 仓库

DVD ISO
如果你使用的是 DVD 光盘,可以直接挂载光盘,然后制作 yum 仓库:
Shell 命令:

mkdir /mnt/dvd/mount /dev/cdrom /mnt/dvd/cd /mntcreaterepo .

如果您使用的是官方的 DVD ISO,则需要将它复制到系统上,挂载后制作 yum 仓库:CentOS-创建yum本地源【进阶必备】Shell 命令:

mkdir /mnt/CentOS/mount -o loop /soft/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/dvdcd /mntcreaterepo .


CD ISO

如果您使用的是多个 CD iso 文件,需要先复制到系统上,挂载后制作 yum 仓库。
有几个 ISO 就创建几个目录,并将对应的 ISO 挂载上去:
Shell 命令:

mkdir -p /mnt/{1,2,3,4,5,6}mount -o loop rhel5.1-disc1.iso /mnt/1mount -o loop rhel5.1-disc2.iso /mnt/2mount -o loop rhel5.1-disc3.iso /mnt/3mount -o loop rhel5.1-disc4.iso /mnt/4mount -o loop rhel5.1-disc5.iso /mnt/5

创建 yum 仓库:

Shell 命令:

cd /mnt/createrepo .

CentOS-创建yum本地源【进阶必备】

CentOS-创建yum本地源【进阶必备】


3. 定义 yum 仓库

创建 yum 仓库的定义文件:/etc/yum.repos.d/dvdiso.repo,然后加入以下内容:
Shell 命令:

[DVDISO]name=DVD ISObaseurl=file:///mnt/enabled=1gpgcheck=0

解析:
enabled=1 #是否开启源
gpgcheck=0 #是否验证,可不要

yum.repos.d目录下确保只有 一个 repo结尾的文件,其余的repo文件可以改下名字。



4. 测试 yum 仓库

强烈建议执行 ‘yum clean all’ 命令,将所有 yum metadata 等信息清空,再重新获取最新的仓库信息:
Shell 命令:

yum clean allyum list

如果在 ‘yum list’ 命令的输出中能够看到刚才制作的仓库里的软件包的名字,那就是 OK 了。

再试着安装一个软件包看是否成功:
yum install 包名
Shell 命令:

yum install sudo.x86_64

如果安装成功,表示 yum 仓库和 RPM 包都没问题。




yum指令的使用


1.  yum 语法

yum [options] [command] [package …]

options:可选,选项包括

-h(帮助),-y(当安装过程提示选择全部为”yes”),-q(不显示安装的过程)等等。

command:要进行的操作。
package操作的对象。



2. rpm包的更新

#检查可以更新的软件包 yum check-update #更新所有的软件包 yum update 
#更新特定的软件包 yum update kernel

#大规模的升级 yum upgrade



3. rpm包的安装和删除

rpm包的安装和删除

yum installyum remove



4. yum缓存的相关信息

#清楚缓存中rpm包文件 yum clean packages #清楚缓存中rpm的头文件 yum clean headers #清除缓存中旧的头文件 yum clean old headers #清除缓存中旧的rpm头文件和包文件 yum clean all



5. 软件包信息查询

#列出资源库中所有可以安装或更新的rpm包 yum list 
#列出资源库中特定的可以安装或更新以及已经安装的rpm包 yum list firfox* N:可以在rpm包名中使用通配符,查询类似的rpm包
#列出资源库中所有可以更新的rpm包 yum list updates
#列出已经安装的所有的rpm包 yum list installed
#列出已经安装的但是不包含在资源库中的rpm包 yum list extras N:通过如网站下载安装的rpm包
#rpm包信息显示(info参数同list),列出资源库中所有可以安装或更新的rpm包的信息 yum info
#列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息
yum info firefox* N:可以在rpm包名中使用匹配符
#列出资源库中所有可以更新的rpm包的信息yum info updates
#列出已经安装的所有的rpm包的信息
yum info installed
#列出已经安装的但是不包含在资源库中的rpm包的信息 yum info extras N:通过如网站下载安装的rpm包的信息
#搜索匹配特定字符的rpm包yum search firofox#搜索包含特定文件的rpm包yum provides firefox




实例

实例 1
安装 pam-devel

[root@www ~]# yum install pam-develSetting up Install ProcessParsing package install argumentsResolving Dependencies <==先检查软件的属性相依问题--> Running transaction check---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated--> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel--> Running transaction check---> Package pam.i386 0:0.99.6.2-4.el5 set to be updatedfilelists.xml.gz 100% |=========================| 1.6 MB 00:05filelists.xml.gz 100% |=========================| 138 kB 00:00-> Finished Dependency Resolution……(省略)



实例 2

移除 pam-devel[root@www ~]# yum remove pam-develSetting up Remove ProcessResolving Dependencies <==同样的,先解决属性相依的问题--> Running transaction check---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased--> Finished Dependency Resolution
Dependencies Resolved
============================================================================= Package Arch Version Repository Size=============================================================================Removing: pam-devel i386 0.99.6.2-4.el5 installed 495 k
Transaction Summary=============================================================================Install 0 Package(s)Update 0 Package(s)Remove 1 Package(s) <==还好,并没有属性相依的问题,单纯移除一个软件
Is this ok [y/N]: yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Erasing : pam-devel ######################### [1/1]
Removed: pam-devel.i386 0:0.99.6.2-4.el5Complete!



实例 3
利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?

[root@www ~]# yum list pam*Installed Packagespam.i386 0.99.6.2-3.27.el5 installedpam_ccreds.i386 3-5 installedpam_krb5.i386 2.2.14-1 installedpam_passwdqc.i386 1.0.2-1.2.2 installedpam_pkcs11.i386 0.5.3-23 installedpam_smb.i386 1.1.7-7.2.1 installedAvailable Packages <==底下则是『可升级』的或『未安装』的pam.i386 0.99.6.2-4.el5 basepam-devel.i386 0.99.6.2-4.el5 basepam_krb5.i386 2.2.14-10 base


CentOS-创建yum本地源【进阶必备】


如果有想要了解更多内容或需要更多资料的小伙伴

可以 扫码 参与

原价398元现在仅需 元的

Linux运维实战训练营!

2天从理论到实战

get原厂面试官最喜欢问的面试点

新盟官方金牌讲师手把手带你

零基础进阶运维大佬!


CentOS-创建yum本地源【进阶必备】


CentOS-创建yum本地源【进阶必备】

扫码加老师

获取小白专属福利