1.本地虚拟机安装yum-plugin-downloadonly软件 在虚拟机内配置yum只下载RPM包而不安装,这里要使用–downloadonly选项,需要先安装yum-plugin-downloadonly。 命令如下:yum install yum-plugin-downloadonly
2.在本地虚拟机下载目标rpm安装包 yum install --downloadonly --downloaddir=/tmp RPM_Name /tmp为指定下载的目录,RPM_Name为目标软件。
yum–downloadonly会只下载RPM包不安装,同时会把依赖的包都下载下来,注意如虚拟机已经安装了依赖包,则不会下载,因此务必确保虚拟机的纯净(如果有方案可以下载已经有的依赖包,欢迎告知)。
在目标机构建软件源,createrepo是必不可少的模块,需要在虚拟机上下载createrepo相关模块。 命令:yum install --downloadonly --downloaddir=/tmp createrepo (1/3): createrepo-0.9.9-26.el6.noarch.rpm | 97 kB 00:01 (2/3): deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm | 71 kB 00:00 (3/3): python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm | 27 kB 00:00
3.查询依赖软件依赖关系 yum deplist 软件包名称
4.上传到虚拟机 通过ftp软件或者shell内置软件,上传到centos上。
5.在目标机器上安装createrepo
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-26.el6.noarch.rpm
6.createrepo构建本地软件源 假设安装包在目标机的/home/user/rpms/目录下。 命令: createrepo /home/user/rpms
7.修改yum软件源 移除现有的软件源 命令: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bk 开启本地软件源 命令: vim /etc/yum.repos.d/CentOS-Media.repo 在baseurl增加一行 =file:///home/user/rpms/
修改文件CentOS-Base.repo,内容如下
[redhat-mylocal] #yum的ID,本地唯一,用于区分不同yum源
name=redhatmyrepo #描述信息
baseurl=file:///media/cdrom/ #前面的file://是协议,后面的/mnt是光盘挂载点
gpgcheck=0 #1使用公钥验证rpm包的正确性,0不验证
enabled=1 #1启用yum源,0禁用yum源
8.在目标机安装目标软件 如果用的是纯净的虚拟机环境,并且和目标机保持一致,那么依赖包就会都安装,yum安装就会很顺利。除非个别包会有依赖冲突,A依赖B,B又依赖A,导致无法安装,此时可以用rpm命令强制安装其中一个,再用yum安装软件即可。 命令:rpm -ivh demo.rpm --nodeps --force
合理的脚本代码可以有效的提高工作效率,减少重复劳动。