程序包管理之制作yum本地源

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

程序包管理之制作yum本地源

 [root@localhost yum]# yum list

程序包管理之制作yum本地源

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

(0)
YOUNGYOUNG
上一篇 2016-08-24
下一篇 2016-08-24

相关推荐

  • 推荐-DNS架设实验

    DNS架设实验 实验拓扑 实验准备 流程 测试 总结 实验拓扑: 1.对于来自内网的DNS正反向解析,并实现view选择指定解析库解析。2.对于来自外网的DNS正向解析,并实现view选择指定解析库解析。3.实现主从服务器结构。4.实现一个完成对一个子域的授权。5.子域中的所有查询xiao.com.的信息都转向192.168.1.1解析。 1.根据view,…

    2016-04-19
  • 计算机及Linux系统基础简介

    一、计算机的组成及其功能 计算机由运算器,控制器,存储器,输入装置和输出装置五大部件组成计算机,每一部件分别按要求执行特定的基本功能。 运算器或称算术逻辑单元(Arithmetical and Logical Unit) 运算器的主要功能是对数据进行各种运算。这些运算除了常规的加、减、乘、除等基本的算术运算之外,还包括能进行“逻辑判断”的逻辑处理能力,即“与…

    Linux干货 2017-07-02
  • 8月9日sed(更新版)

    sed命令及vim基础使用命令 处理文本的工具sed stream editor,行编辑器    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有…

    Linux干货 2016-08-15
  • 任务计划

    所谓计划任务就是指某一个时间系统自动做一件事情如输入指令或者保存文件等等 计划任务分两种:一次性计划任务命令(at)和周期性计划任务命令(crontab)at的用法:如果当前时间为2017年6月6日 at 18:00 2017-06-6 w > /root/who.txt init 0 (输入ctrl+d结束编辑…

    Linux干货 2017-06-07
  • 磁盘管理和高级文件系统管理-习题

    高级文件系统管理-习题 1、 创建一个可用空间为40G 的RAID1 设备,要求其chunk大小为128k ,文件系统为ext4 ,有一个空闲盘,开机可自动挂载至/backup目录 [root@centos7 ~]# mdadm -C /dev/md0 -c 128 -a yes -l 1 -n 2 -x 1 /dev/sdb /dev/sdc /dev/s…

    Linux干货 2016-09-01
  • 实现NFS为lamp环境web站点提供共享存储

    1.实验需求 (1)nfs server导出/data/application/web,在目录中提供wordpress; (2)nfs client挂载nfs server导出的文件系统,至/var/www/html; (3)客户端1(lamp)部署wordpress,并让其正常访问,要确保正常发文章,上传图片。 (4)客户端2(lamp),挂载nfs se…

    Linux干货 2017-05-02