Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
使用本地yum源有两种方式:第一直接使用光盘镜像,不过此方法仅限本机使用;第二种创建本地仓库,然后使用http或者nfs和ftp等方式向外部提供yum repository。
第一种:如何使用发行版光盘作为yum repository(以CentOS 6.8为例实验)
1.挂载光盘到制定挂载点: 此处我们使用CentOS的自动挂载功能来实现:
[root@localhost ~]# cd /misc
[root@localhost misc]# cd cd
[root@localhost cd]# ls
CentOS_BuildTag GPL Packages RPM-GPG-KEY-CentOS-6
RPM-GPG-KEY-CentOS-Testing-6
EFI images RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Debug-6
TRANS.TBL
EULA isolinux repodata RPM-GPG-KEY-CentOS-
Security-6
2.新建yum repo配置文件:
[root@localhost cd]# cd /etc/yum.repos.d [root@localhost yum.repos.d]# ls base.repo [root@localhost yum.repos.d]# cat base.repo #必须以.repo结尾 # # # # [base] #仓库的ID唯一不能重复 name=CentOS 7 #仓库功能的描述 baseurl=file:///misc/cd/ #repodata所在路径 enabled=1 #开启仓库,0是关闭,不写默认是1 gpgcheck=1 #是否检查gpg,1是检查,0是不检查 gpgkey=file:///etc/pki/rpm-gpg/ #gpgkey的路径
第二种:创建本地yum仓库
如果你是一名运维工程师,为了方便公司内部网络中的服务器安装软件,同时也节省网络带宽,此时就可以在公司内部创建一个yum仓库。
具体步骤:
1.在发行版光盘中寻找createrepo:
[root@localhost ~]# type createrepo createrepo is hashed (/usr/bin/createrepo) #此处安装系统时已做安装
2.确定repository输出方式:
(1)本地输出:提供一个放置rpm包的本地路径;file的形式
(2)网络输出:提供一个文件服务器,配置好ftp或http服务;
ftp服务:
安装程序包:vsftpd
文件存放路径:/var/ftp/pub
启动服务:service vsftpd start
http服务:
安装程序包:httpd
文件存放路径:/var/www/html
启动服务:service httpd start
注意确保防火墙关闭;
我们此处以本地输出为例。
3.在准备好的目录中放置rpm程序包文件
可以通过cp命令将光盘中的程序包拷贝到以上输出目录当中。
[root@localhost ~]# mkdir yum
[root@localhost ~]# cp mogilefs/* yum
[root@localhost ~]# cp galera_cluster/* yum
#创建yum文件夹并做了仓库路径,将准备好的rpm包复制进yum目录当中
[root@localhost ~]# cd yum [root@localhost yum]# ls galera-25.3.9-1.rhel7.el7.centos.x86_64.rpm MariaDB-5.5.46-centos7-x86_64-shared.rpm Perlbal-1.78-1.el6.noarch.rpm jemalloc-3.6.0-1.el7.x86_64.rpm MariaDB-5.5.46-centos7-x86_64-test.rpm Perlbal-doc-1.78-1.el6.noarch.rpm jemalloc-devel-3.6.0-1.el7.x86_64.rpmMariaDB-Galera-5.5.46-centos7-x86_64-server.rpm perl-Danga-Socket-1.61-1.el6.rf.noarch.rpm MariaDB-5.5.46-centos7-x86_64-client.rpm MariaDB-Galera-5.5.46-centos7-x86_64-test.rpmperl-MogileFS-Client-1.14-1.el6.noarch.rpm MariaDB-5.5.46-centos7-x86_64-common.rpm MogileFS-Server-2.46-2.el6.noarch.rpmperl-Net-Netmask-1.9015-8.el6.noarch.rpm MariaDB-5.5.46-centos7-x86_64-compat.rpm MogileFS-Server-mogilefsd-2.46-2.el6.noarch.rpm perl-Perlbal-1.78-1.el6.noarch.rpm MariaDB-5.5.46-centos7-x86_64-devel.rpm MogileFS-Server-mogstored-2.46-2.el6.noarch.rpm MariaDB-5.5.46-centos7-x86_64-server.rpm MogileFS-Utils-2.19-1.el6.noarch.rpm
4.对此目录运行createrepo命令即可
cd到yum目录执行createrepo;
[root@localhost ~]# createrepo yum Spawning worker 0 with 6 pkgs Spawning worker 1 with 6 pkgs Spawning worker 2 with 5 pkgs Spawning worker 3 with 5 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete ![](http://i.imgur.com/WwcruFd.png)
此处可以看到repodata文件夹已经创建成功
下面我们来测试创建的yum仓库是否可用
1.在本机/etc/yum.repos.d/目录中创建一个.repo结尾的文件,这里我们就叫test.repo,里面添加上如下内容:
[root@localhost yum]# cd /etc/yum.repos.d [root@localhost yum.repos.d]# touch test.repo
[root@localhost yum]# yum list
2.在本机上更新本地yum缓存
清理缓存:yum clean all
[root@localhost yum.repos.d]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: test Cleaning up everything Cleaning up list of fastest mirrors
创建缓存:yum makecache
root@localhost yum.repos.d]# yum makecache Loaded plugins: fastestmirror, langpacks test| 2.9 kB 00:00:00 (1/3): test/filelistsdb| 67 kB 00:00:00 (2/3): test/otherdb| 4.0 kB 00:00:00 (3/3): test/primary_db | 25 kB 00:00:00 Determining fastest mirrors Metadata Cache Created
3.查询新的yum仓库内容
yum list all
[root@localhost yum.repos.d]# yum list all Available Packages MariaDB-Galera-server.x86_64 5.5.46-1.el7.centos test MariaDB-Galera-test.x86_64 5.5.46-1.el7.centos test MariaDB-client.x86_645.5.46-1.el7.centos test MariaDB-common.x86_645.5.46-1.el7.centos test MariaDB-compat.x86_645.5.46-1.el7.centos test MariaDB-devel.x86_64 5.5.46-1.el7.centos test MariaDB-server.x86_645.5.46-1.el7.centos test MariaDB-shared.x86_645.5.46-1.el7.centos test MariaDB-test.x86_64 5.5.46-1.el7.centos test MogileFS-Server.noarch 2.46-2.el6 test MogileFS-Server-mogilefsd.noarch 2.46-2.el6 test MogileFS-Server-mogstored.noarch 2.46-2.el6 test MogileFS-Utils.noarch2.19-1.el6 test Perlbal.noarch 1.78-1.el6 test Perlbal-doc.noarch 1.78-1.el6 test galera.x86_6425.3.9-1.rhel7.el7.centostest jemalloc.x86_64 3.6.0-1.el7 test jemalloc-devel.x86_643.6.0-1.el7 test perl-Danga-Socket.noarch 1.61-1.el6.rftest perl-MogileFS-Client.noarch 1.14-1.el6 test perl-Net-Netmask.noarch 1.9015-8.el6 test perl-Perlbal.noarch 1.78-1.el6
4.安装应用
yum install [Packge_name]
[root@localhost yum.repos.d]# yum install Perlbal.noarch Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package Perlbal.noarch 0:1.78-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================== Package ArchVersion Repository Size =========================================================================================================================================== Installing: Perlbal noarch 1.78-1.el6 test 5.7 k Transaction Summary =========================================================================================================================================== Install 1 Package Total download size: 5.7 k Installed size: 4.4 k Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : Perlbal-1.78-1.el6.noarch 1/1 Verifying : Perlbal-1.78-1.el6.noarch 1/1 Installed: Perlbal.noarch 0:1.78-1.el6 Complete!
安装测试成功!
原创文章,作者:YOUNG,如若转载,请注明出处:http://www.178linux.com/38965