使用createrepo创建自己的yum源
<h3>1.createrepo 命令介绍</h3>
<ul>
<li>createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据-
语法:
<pre><code class="language-bash">-u --baseurl <url>
指定Base URL的地址
-o --outputdir <url>
指定元数据的输出位置
-x --excludes <packages>
指定在形成元数据时需要排除的包
-i --pkglist <filename>
指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。
-n --includepkg
通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。
-q --quiet
安静模式执行操作,不输出任何信息.
-g --groupfile <groupfile>
指定本地软件仓库的组划分,范例如下: createrepo -g comps.xml /path/to/rpms 注意:组文件需要和rpm包放置于同一路径下。
-v --verbose
输出详细信息。
-c --cachedir <path>
指定一个目录,用作存放软件仓库中软件包的校验和信息。 当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。
--update
如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减, 则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。
-p --pretty
以整洁的格式输出xml文件。
-d --database
该选项指定使用SQLite来存储生成的元数据,默认项。</code></pre>
<h3>2.createrepo 安装及搭建</h3>
<h4>1、安装createrepo</h4>
<p><code>yum install createrepo</code></p>
<h4>2、搭建</h4>
<p>创建的目录
<code>mkdir /opt/www/mirrors/6/x86_64</code>
执行命令:
<code>createrepo /opt/www/mirrors/6/x86_64</code></p>
<h3>3.创建yum源文件</h3>
<p>[123and]
name=123and
baseurl=<a href="http://mirrors.123and.cn/$releasever/$basearch/">http://mirrors.123and.cn/$releasever/$basearch/</a>
enabled=1
gpgcheck=0</p>
<h6>解释:</h6>
<p>[....] 代表这个库的名字,必须是唯一的,不可以重复。
name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。
baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file:///,ftp://,<a href="http://等">http://等</a>, 文件目录不能设置到i386,否则本地源使用会报错
enabled=1 说明启用这个更新库,0表示不启用。
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey= 0 表示gpg文件所存放的位置,此处也可以有http方式的位置。
来源:<a href="https://my.oschina.net/u/3709136/blog/1924082">https://my.oschina.net/u/3709136/blog/1924082</a></p></li>
</ul>
<p>[========]</p>
<h2>linux 下载rpm包到本地,createrepo:创建本地YUM源</h2>
<h4>1、如何下载rpm包到本地,设置yum安装时,保留rpm包。</h4>
<p>将keepcache的值设置为1,就可以将yum安装时的rpm包保存在 /var/cache/yum下面</p>
<pre><code class="language-bash">vi /etc/yum.conf
keepcache=1</code></pre>
<h4>2.使用yum-plugin-downloadonly插件,</h4>
<p><code>yum install yum-plugin-downloadonly</code>
用法: yum install ceph-0.87.1-0.el7.centos.x86_64.rpm --downloadonly --downloaddir=./</p>
<h4>3.安装epel源</h4>
<p>有时centos的rpm源不是最新的,需要安装一个epel源,
<code>yum install epel-release</code></p>
<h4>4.repodata作为软件的仓库,其目录下有四个必要文件:</h4>
<pre><code class="language-bash">filelists.xml.[gz],
other.xml.[gz],
primary.xml.[gz]
repomd.xml </code></pre>
<p>(md意思是metadata),其中最主要的是repomd.xml文件。</p>
<h4>5、一般出现的找不到repodata目录或文件的错误的原因通常有三个:</h4>
<pre><code class="language-bash">一是路径问题;
二是没有生成repodate目录;
三是*.repo配置文件冲突(这个需要特意注意)。</code></pre>
<h4>6、创建本地源步骤如下:</h4>
<pre><code class="language-bash">1、安装createrepo包;
2、新建本地源目录(假若本地源在当前家目录下)
2.1 $mkdir -p local-yum/i386/ #其中i386是包放置目录
2.2 将安装包放置到i386目录中
2.3 createrepo local-yum/ #创建一个源</code></pre>
<h4>7、配置yum源</h4>
<p>(可以单独新建一个repo文件,也可以添加到已经存在的repo文件中)在/etc/yum.repos.d/下面创建文件</p>
<pre><code class="language-bash">[local-yum]
name=local-yum
baseurl=file:///home/test/local-yum/ #文件目录不能设置到i386,否则本地源使用会报错
enabled=1
gpgcheck=0
解释:
[....] 代表这个库的名字,必须是唯一的,不可以重复。
name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。
baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file:///,ftp://,http://等
enabled=1 说明启用这个更新库,0表示不启用。
gpgcheck=1 表示使用gpg文件来检查软件包的签名
gpgkey= 表示gpg文件所存放的位置,此处也可以有http方式的位置。
</code></pre>
<h4>8.检验yum源是否安装成功</h4>
<p>可以使用以下命令来检验yum源是否安装成功
yum clean all
yum repolist</p>
<h4>9、yum工具介绍</h4>
<p>yum工具有很多的参数可供使用,如下:
yum install 软件名1 [软件名2] [...]
yum update [软件名1][软件名2] [...]
yum check-update
yum upgrade [软件1] [软件2] [...]
yum remove | erase 软件名1 [软件名2] [...]
yum list [...]
yum info [...]
yum provides | whatprovides feature1 [feature2] [...]
yum clean [ packages | headers | metadata | dbcache | all ]
yum makecache
yum groupinstall 软件组1 [软件组2] [...]
yum groupupdate 软件组1 [软件组2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo 软件组名 [...]
yum search 字符串1 [字符串2] [...]
yum shell [文件名]
yum resolvedep 依赖关系1 [依赖关系2] [...]
yum localinstall rpm包1 [rpm包2] [...]
yum localupdate rpm包1 [rpm包2] [...]
yum reinstall 软件包1 [软件包2] [...]
yum downgrade 软件包1 [软件包2] [...]
yum deplist 软件包1 [软件包2] [...]
yum repolist [all|enabled|disabled]
yum help [command]
以上就是yum全部的可用参数了,自动分析依赖性关系是它最好的一个特点,也是目前最方便的安装方法。</p>
<h4>10、更新本地源,在仓库所在目录下</h4>
<p>createrepo --update local-yum/ # 更新本地源
createrepo local-yum/ # 重新生成metadata</p>
<h4>11、用的上的命令</h4>
<pre><code> createrepo --update:</code></pre>
<p>有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。这就是--update选项诞生的原因。
像之前一样运行createrepo命令但是添加了--update选项. $createrepo --updatelocal-yum/ 现在createrepo只更新那些在上次产生元数据之后被改变,添加或者删除了的项目.
verifytree 如果你刚刚做了一个repo并且你想要验证在你的repo中的所有东西都是正确且可以完成其功能的话,你可以运行erifytree命令来检查所有的repodata和软件包。</p>
<h4>12、创建基于html的更新源</h4>
<p>12.1 安装httpd安装包
12.2 如上创建本地更新源
cd /var/www/html/
mkdir -p nsmc
cdnsmc
mkdir RPMS SRPMS
12.3 拷贝相关文件到RPMS和SRPMS目录中
12.4 在nsmc所在目录下执行如下命令
createrepo nsmc #创建仓库
12.5 service httpd start #启动httpd守护进程,这是关键地方之一,否则在其他机器上会提示找不到相关源
12.6 编写repo文件
*************************************
[nsm]
name=NeoShine Linux Desktop 5 nsmc repo - i386
baseurl=<a href="http://xxx.xxx.xxx.xxx/nsmc">http://xxx.xxx.xxx.xxx/nsmc</a>
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release</p>
<p>来源:<a href="https://blog.csdn.net/hao_rh/article/details/73275071">https://blog.csdn.net/hao_rh/article/details/73275071</a></p>
<p>[========]</p>
<h3>例子:</h3>
<p>一、下载安装包
1、首先添加ovirt官方repo
<code>yum install -y https://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm</code>
2、安装createrepo工具
<code>yum install -y createrepo</code>
3、修改YUM配置
修改YUM配置,用来保留随后进行安装时候会下载到的所有包。注意这一步操作一定要放在添加ovirt官方repo后面, 否则将上面那个ovirt-release43.rpm也会缓存下来,我们一会儿要做的离线包不需要它。
4、修改keepcache
<code>vi /etc/yum.conf</code>
修改为如下:
<code>keepcache = 1</code>
进行完这两步以后就可以开始分别制作离线安装包了</p>
<p>二、制作ovirt-engine离线安装包
1、先正常安装ovirt-engine
<code>yum install -y ovirt-engine --nogpgcheck</code>
装完之后就行了,不需要进行后面engine-setup的过程,我们要的只是这些rpm包。
生成repo相关数据
<code>cd /var/cache/yum/x86_64/7/</code>
<code>createrepo -v ./</code>
将该文件夹下载下来
至此,ovirt-engine的离线安装包就准备好了</p>
<p>离线安装ovirt-engine
将之前缓存的文件夹传至新主机的/var/cache/yum/里面
创建本地repo配置文件
vi /etc/yum.repo.d/local.repo
[local]
name=local-repo
baseurl=file:///var/cache/yum/x86_64/7
gpgcheck=0
enabled=1
安装ovirt-engine
yum install -y ovirt-engine</p>