红联Linux门户
Linux帮助

Linux下构建yum库

发布时间:2014-12-18 15:19:49来源:linux网站作者:huangbiao86

1、将一个iso文件挂载到计算机,如 mount -o loop /rhel6.0 /mnt

2、将iso里面的文件拷贝到需要建立yum的目录下(cp)

3、

4、如果软件源在网络上那就需要启动ftp服务,service vsftpd restart,如果在本机就不需要 ;

5、配置repo文件

vim /etc/yum.repos.d/rhel-beta.repo(并非一定要是rhel-beta.repo,但是一定要以.repo结尾)

内容为:

[rhel6] 
name=Red Hat Enterprise Linux6 
baseurl=ftp://192.168.100.*/pub/RHEL6(如果是在本机,那就需要使用file:///var/...) 
(*代表ftp服务器的地址填写你知道yum源的IP,很重要!注意那台服务器的ftp服务是开启的并制作了yum源) 
enabled=1 
gpgcheck=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release 

解释:

[....] 代表这个库的名字,必须是唯一的,不可以重复。

name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。

baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等,关于baseurl中的变量,可以查看yum.conf 的手册:man yum.conf ,在手册的最后一段有详细描述。

enabled=1 说明启用这个更新库,0表示不启用。

gpgcheck=1 表示使用gpg文件来检查软件包的签名

gpgkey= 表示gpg文件所存放的位置,此处也可以有http方式的位置。

这时,当我们yum repolist 时,就可以看到bsdmap-yum 源了。

6、设置之后,还有最后一步,需要设置导入redhat的认证密钥:rpm - -import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

7、若是原来有repo文件,将其移出,运行yum clean all 清除

8、yum list 查看本机已经安装好的软件

9、yum install soft_name 安装需要的软件等操作,具体查看yum命令详解;


我们也可以用createrepo方式创建yum源:

repodata作为软件的仓库,其目录下有四个必要文件:filelists.xml.[gz],other.xml.[gz],primary.xml.[gz]和repomd.xml(md意思是metadata),其中最主要的是repomd.xml文件。一般出现的找不到repodata目录或文件的错误的原因通常有三个:一是路径问题;二是没有生成repodate目录;三是*.repo配置文件冲突(这个需要特意注意)。


创建本地源步骤如下:

1、安装createrepo包;

2、新建本地源目录(假若本地源在当前家目录下)

2.1 $mkdir -p local-yum/i386/#其中i386是包放置目录

2.2 将安装包放置到i386目录中

2.3 createrepo local-yum/ #创建一个源

3、配置yum源(可以单独新建一个repo文件,也可以添加到已经存在的repo文件中,vim /etc/yum.repos.d/rhel-beta.repo(并非一定要是rhel-beta.repo,但是一定要以.repo结尾))

[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方式的位置。


4、yum工具介绍

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全部的可用参数了,自动分析依赖性关系是它最好的一个特点,也是目前最方便的安装方法。


5、更新本地源,在仓库所在目录下

createrepo --update local-yum/   # 更新本地源

createrepo local-yum/     # 重新生成metadata

6、用的上的命令

createrepo --update:

有时候你的软件仓库中含有很多的软件包,虽然只是其中的一小部分有所改动但是你却不必为每个软件包重新产生元数据,这样做明显太浪费时间了。这就是--update选项诞生的原因。

像之前一样运行createrepo命令但是添加了--update选项.$createrepo--updatelocal-yum/   现在createrepo只更新那些在上次产生元数据之后被改变,添加或者删除了的项目.

verifytree   如果你刚刚做了一个repo并且你想要验证在你的repo中的所有东西都是正确且可以完成其功能的话,你可以运行erifytree命令来检查所有的repodata和软件包。

7、创建基于html的更新源

7.1 安装httpd安装包

7.2 如上创建本地更新源

cd /var/www/html/

mkdir -p nsmc

cdnsmc

mkdir RPMS SRPMS

7.3 拷贝相关文件到RPMS和SRPMS目录中

7.4 在nsmc所在目录下执行如下命令

createrepo nsmc    #创建仓库

7.5 service httpd start#启动httpd守护进程,这是关键地方之一,否则在其他机器上会提示找不到相关源

7.6 编写repo文件

[nsm]

name=NeoShineLinux Desktop 5 nsmc repo - i386

baseurl=http://xxx.xxx.xxx.xxx/nsmc

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-neoshine-release

注意:gpgcheck设置为0,则不需要认证签名。


使用 yum 命令

1.列表查看软件包信息

可以使用 list 选项查看软件包相关的各项信息。

[root@localhost ~]# yum list updates //查看有哪些可用于升级的软件包

[root@ localhost ~]# yum list installed //查看本机已安装的软件包

[root@ localhost ~]# yum list available //查看 yum 源中所有可用的软件包

[root@ localhost ~]# yum list available lynx* //查看 yum 源中以 lynx 开头的软件包

[root@ localhost ~]# yum info installed bind //查看已安装的 bind 软件包的信息

2.软件包升级、卸载、安装

升级(update)、卸载(remove)、安装(install)软件包时,系统会自动检查并解决软件包之间的依赖关系。开始各项操作前,系统会提示用户按 y 键进行确认(如果希望系统自动回答为 y,可以在 yum 命令后增加-y 选项)。

[root@localhost ~]# yum -y update //升级所有可用的软件包,由系统自动确认

[root@localhost ~]# yum update bind //升级 bind 软件包

[root@localhost ~]# yum remove net-snmp-utils //卸载 net-snmp-utils 软件包

[root@localhost ~]# yum install lynx //安装 lynx 软件包