[转载]CentOS 7 创建本地YUM源
本文中的“本地YUM源”包括三种类型:一是直接使用CentOS光盘作为本地yum源,优点是简单便捷,缺点是光盘软件包可能不完整(centos 7 Everything 总共才6.57G);二是同步CentOS官方源到本地(相当于创建了一个公共镜像),优点是最靠谱,缺点是占空间费流量;三是创建完全自定义的本地源,优点是灵活性最大,缺点是只是作为其他源的补充。
一、使用CentOS光盘作为本地yum源
(1) 实体机上直接放入光盘
(2) VMware Workstation 虚拟机:虚拟机-->可移动设备-->CD/DVD-->连接
- mkdir /mnt/cdrom #创建目录
- mount /dev/cdrom /mnt/cdrom #挂载
- umount /mnt/cdrom #卸载
若不想每次都要放光盘,那就复制光盘文件到本地硬盘吧
- cp -avf /mnt/cdrom /yum # -a:该选项保留链接、文件属性,并递归地复制目录
2、创建repo文件
- cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF
- [Local]
- name=Local Yum
- baseurl=file:///yum/
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
- enabled=1
问:为什么连createrepo软件都不用安装?
createrepo 的作用是创建索引文件的(位于repodata文件夹),光盘中连GPG-KEY都有了。
二、如何为CentOS创建公共镜像
详细说明见官方中文文档:
http://wiki.centos.org/zh/HowTos/CreatePublicMirrors
提供一个SHELL脚本,然后cron自动运行~~
http://wangyan.org/blog/centos-local-yum-repo.html
脚本稍作修改,换成中科大的镜像源。可用镜像列表见:http://www.centos.org/download/mirrors/
- localpath="/mirrors/CentOS"
- mirror="mirrors.hustunique.com::centos"
- rsync="rsync -avzH --delete"
- verlist="7"
- baselist="centosplus extras fasttrack os updates"
- archlist="x86_64"
- for ver in $verlist
- do
- for base in $baselist
- do
- for arch in $archlist
- do
- remote=$mirror/$ver/$base/$arch/
- mkdir -pv $localpath/$ver/$base/$arch/
- $rsync $remote $localpath/$ver/$base/$arch/
- done
- done
- done
三、创建完全自定义的本地源
把平时收藏的一些RPM软件包放在一个目录里,就变成一个自定义源了,可以用YUM来管理,灵活性相当大。
官方教程:How to setup your own package repository
1、创建本地yum仓库
- mkdir -p /yum/local #可以有N级目录
- cp ... #复制RPM包到上述目录
2、创建repo文件
- cat >>/etc/yum.repos.d/CentOS-Local.repo<<-EOF
- [Local]
- name=Local Yum
- baseurl=file:///yum/
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
- enabled=1
3、安装createrepo
- yum install createrepo #使用yum安装createrepo
- rpm -ivh http://mirror.centos.org/centos/7/os/x86_64/Packages/createrepo-0.9.9-23.el7.noarch.rpm
4、创建索引
- createrepo /yum
- yum makecache #更新缓存
四、添加yum源
- [1] Add RPMforge Repository for yum because that has many useful packages.
- [root@dlp ~]#
- wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
- [root@dlp ~]#
- rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
- Preparing… ###################################### [100%] 1:rpmforge-release ###################################### [100%]
- [root@dlp ~]#
- sed -i -e "s/enabled = 1/enabled = 0/g" /etc/yum.repos.d/rpmforge.repo
- [2] Add repository EPEL that is provided from Fedora project.
- [root@dlp ~]#
- wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- [root@dlp ~]#
- rpm -Uvh epel-release-6-8.noarch.rpm
- Preparing… ###################################### [100%] 1:epel-release ###################################### [100%]
- [root@dlp ~]#
- sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
五、参考
http://jingyan.baidu.com/article/e9fb46e1aed8207521f7662c.html
http://blog.chinaunix.net/uid-28283843-id-3930474.html
http://www.ibm.com/developerworks/cn/linux/l-lpic1-v3-102-5/
六、其他补充
1.使用YUM查找软件包
命令:yum search
2.列出所有可安装的软件包
命令:yum list
3.列出所有可更新的软件包
命令:yum list updates
4.列出所有已安装的软件包
命令:yum list installed
5.列出所有已安装但不在 Yum Repository 內的软件包
命令:yum list extras
6.列出所指定的软件包
命令:yum list 7.使用YUM获取软件包信息
命令:yum info 8.列出所有软件包的信息
命令:yum info
9.列出所有可更新的软件包信息
命令:yum info updates
10.列出所有已安裝的软件包信息
命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內的软件包信息
命令:yum info extras
12.列出软件包提供哪些文件
命令:yum provides
5.清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all 清除所有
1.清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages
2.清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders
4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
file:///media/CentOS/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] 没有那个文件或目录: ‘/media/CentOS/repodata/repomd.xml’
Trying other mirror.
file:///media/cdrecorder/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] 没有那个文件或目录: ‘/media/cdrecorder/repodata/repomd.xml’
Trying other mirror.
file:///media/cdrom/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] 没有那个文件或目录: ‘/media/cdrom/repodata/repomd.xml’
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: c5-media. Please verify its path and try again
name=CentOS-$releasever – Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
#“$basearch”代表了系统的构架格式如“i386”和“repodata”存放repomd.xml文件的文件夹位置。
#“repomd.xml”作用,提供了“更新.xml.gz”的下载信息和SHA校验值。
#这里“repomd.xml”里包括了3个文件 “other.xml.gz””filelists.xml.gz””primary.xml.gz”
#作用很明显了,“其他更新包列表”“更新文件集中列表”“主要更新包列表”
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta
images/
isoLinux/
repodata/
.discinfo
.treeinfo
RELEASE-NOTES-ro.html
RPM-GPG-KEY-CentOS-5
RPM-GPG-KEY-beta
images/
isolinux/
repodata/
Parent Directory/
RPMS.lvn/
SRPMS.lvn/
SRPMS.lvn-testing/
debug/
repodata/
SDL_sound-1.0.1-0.lvn.1.4.i386.rpm
SDL_sound-devel-1.0.1-0.lvn.1.4.i386.rpm
a52dec-0.7.4-0.lvn.7.4.i386.rpm
a52dec-devel-0.7.4-0.lvn.7.4.i386.rpm
CentOS/
images/
isolinux/
NOTES/
SRPMS/
.discinfo
centosdocs-man.css
GPL
RELEASE-NOTES-en
RELEASE-NOTES-en.html
RPM-GPG-KEY
RPM-GPG-KEY-centos4
RPM-GPG-KEY-CentOS-4
yumgroups.xml
comps.rpm
comps.xml
hdlist
hdlist4
hdstg2.img
netstg2.img
product.img
stage2.img
Cluster/
ClusterStorage/
images/
isolinux/
Server/
VT/
.discinfo
.treeinfo
RHEL5.4可以直接使用光盘作yum源,而RHEL5.1不能直接用光盘中的源,否则会出现urlopen error unknown url type: media,需要改造一番,注意这里提供的方法不用拷贝光盘中的大量文件.
- [root@Blinux Desktop]#mkdir /media/RHEL
- [root@Blinux Desktop]#mkdir /media/yum/
- [root@Blinux Desktop]#rpm -ivh /media/RHEL/Server/createrepo-0.4.4-2.fc6.noarch.rpm
- [root@Blinux Desktop]createrepo -o /media/yum/ -g /media/RHEL/Server/repodata/comps-rhel5-server-core.xml /media/RHEL/Server/
- [root@Blinux Desktop]mount --bind /media/yum/repodate/ /media/RHEL/Server/repodate/
附加:
1、yum 的配置文件(/etc/yum.conf), repo 文件(/etc/yum.repos.d)详解
http://www.centos.org/docs/5/html/5.1/Deployment_Guide/c1-yum.html
2、yum 特殊参数
--installroot=root 指定安装软件时的根目录
--enablerepo=repoidglob 暂时启用某个下载源
--disablerepo=repoidglob 暂时停用某个下载源
--exclude=package 排除某个软件包
--noplugins 暂时停用所有插件
--disableplugin=plugin 暂时停用指定的插件
3、案例1:禁用某个源
为什么要禁掉源?
“注:假如你正考虑使用第三方软件库,你应该认真地思考如何防止来自这些软件库的「更新」不经意地取替了 CentOS 的核心部份。其中一个方法就缺省它们为停用的,有必要时才启用它们“,http://wiki.centos.org/zh/AdditionalResources/Repositories?action=show&redirect=zh%2FRepositories
编辑 /etc/yum.repos.d/example.repo
enabled=0
或者
yum --disablerepo=some-repository install some-package
yum --enablerepo=some-disabled-repository install some-package
YUM Remove Repo (Repository) – YUM Disable Repo (Repository), http://www.if-not-true-then-false.com/2010/yum-remove-repo-repository-yum-disable-repo-repository/
4、CentOS 使用的软件库
http://wiki.centos.org/zh/AdditionalResources/Repositories?action=show&redirect=zh%2FRepositories
知名的第三方软件库:RPMforge、ELRepo、ATrpms、EPEL、及 RPMfusion 等
[转载]CentOS 7 创建本地YUM源的更多相关文章
- 为CentOS 6 配置本地YUM源
在网上找了很多为CentOS 6配置本地YUM源的方法,其中有很多是与网络相关的,我只想配个自己用的,结果就发现这个方法比较简单实用,就转过来了. 环境:CentOS 6.0 默认的yum是以网络来安 ...
- CentOS7创建本地YUM源的三种方法
这篇文章主要介绍了CentOS7创建本地YUM源的三种方法,本文讲解了使用CentOS光盘作为本地yum源.如何为CentOS创建公共镜像.创建完全自定义的本地源等内容,需要的朋友可以参考下 ...
- CentOS 6.x 本地yum源配置与使用
系统默认已经安装了可使用yum的软件包,所以可以直接配置: # mount /dev/cdrom /mnt 挂载镜像,可以写到配置文件 ...
- CENTOS 6-7的本地YUM源配置
本文档适合CENTOS 6-7的本地YUM源配置 cd /media cd CentOS_6.8_Final/ cd Packages 创建目录拷贝文件 mkdir /yum cp * /yum 配置 ...
- linux 下载rpm包到本地,createrepo:创建本地YUM源
如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...
- CentOS 6.5本地yum源、局域网离线yum仓库(断网情况下轻松安装各种依赖包)
在工作中, 公司的服务器大部分都禁止连接外网的,初始化系统,测试某些产品时,往往缺一些软件或依赖包,一个个上传到机器,如此浪费时间,浪费金钱,en...yum能够自动查找并解决rpm包之间的依赖关系, ...
- 创建本地yum源仓库
更新本地yum源 yum仓库服务端配置如下 : 1. 创建yum仓库目录 mkdir -p /data/yum_data/ cd /data/yum_data/ #可以上传rpm包到此目录,此目录下面 ...
- CentOS 7搭建本地yum源
问题 CentOS7.1安装rpm包时提示缺失包,有些包iso里面也没有,只能从外网yum,这种情况下,可以提前yum好所需的依赖包,做成一个本地yum源.将这些文件拷贝到没联网的机器就可以使用了. ...
- CentOS 8配置本地yum源及DNF简介
CentOS 8更改了软件包的安装程序,取消了 yum 的配置方法,改而使用了dnf 作为安装程序.虽然改变了软件包的安装方式,但是 dnf 还是能兼容使用 yum 的配置文件和命令的使用方法. 小提 ...
随机推荐
- NOIP 模拟 $15\; \rm \text{玫瑰花精}$
题解 \(by\;zj\varphi\) 一道线段树题目 这道题可以通过维护一棵线段树,线段树上的每个节点维护 \(\rm l,r,len,p\) 分别表示这段区间最左边的花精,最右边的花精,被两只花 ...
- 题解 P3317 [SDOI2014]重建
题解 前置芝士:深度理解的矩阵树定理 矩阵树定理能求生成树个数的原因是,它本质上求的是: \[\sum_T \prod_{e\in T} w_e \] 其中 \(w_e\) 是边权,那么我们会发现其实 ...
- [转]C# 互操作性入门系列(四):在C# 中调用COM组件
传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...
- Python使用flask架构、跨域
from flask import Flask import json from flask_cors import CORS Server = Flask(__name__) cors = CORS ...
- React 性能调优记录(下篇),如何写高性能的代码
react性能非常重要,性能优化可以说是衡量一个react程序员水平的重要标准. 减少你的渲染 这个大家都明白,只要是父组件中用了子组件,子组件就算没用prop也会进行依次渲染, 可以用pureCom ...
- 利用sql语句复制一条或多条记录
sql 复制记录insert into article (id,class,title,content) select id,'2',title,content from article where ...
- 最长回文子序列---DP
问题描述 给定一个字符串s,找到其中最长的回文子序列.可以假设s的最大长度为1000. 解题思路 1.说明 首先要弄清楚回文子串和回文子序列的区别,如果一个字符串是"bbbab", ...
- springMVC学习总结(一) --springMVC搭建
springMVC学习总结(一) --springMVC搭建 搭建项目 1.创建一个web项目,并在项目中的src文件夹下创建一个包com.myl.controller. 2.添加相应jar包 3.在 ...
- Django——后台管理
1.要使用Django-admin后台的前提 INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', #必须有这一项 'django.contri ...
- [考试总结]noip模拟47
感觉自己放弃题目还是过于容易. 其实第一题不是很难,但是自己拿了一个暴力就走人了.. 然后其实简单优化一下子就有不少分数. 然后第二题的本质不同的子序列个数的方程没有推出来,如果推出来就会直接有 \( ...