Centos定制rpm包、搭建yum仓库的教程
1保留yum安装软件时下载下来的rpm包
只需修改yum配置文件即可。下载下来的rpm包会自动保存在/var/cache/yum/目录下
[root@swag~]#sed-i's#keepcache=0#keepcache=1#g'/etc/yum.conf [root@swag~]#yuminstallsl-y [root@swag~]#tree/var/cache/yum/x86_64/6/epel/ /var/cache/yum/x86_64/6/epel/ ├──83f14a3d88054141092be5da12eb18cb1baabd7d52e1ae38bfc98d3d5005490c-primary.sqlite ├──cachecookie ├──packages │└──sl-5.02-1.el6.x86_64.rpm └──repomd.xml 1directory,4files
2编译安装Nginx
#Downloadtar.gzpackage cd/home/oldboy/tools wget-qhttp://nginx.org/download/nginx-1.6.3.tar.gz #YuminstallDependentpackage yuminstallopensslopenssl-devel-y yuminstallpcrepcre-devel-y rpm-qapcrepcre-devel #Useraddwww useraddwww-s/sbin/nologin-M #Compileandinstall tar-xfnginx-1.6.3.tar.gz cdnginx-1.6.3 ./configure--user=www--group=www--with-http_ssl_module--with-http_stub_status_module--prefix=/application/nginx-1.6.3/ make&&makeinstall #Createasoftlink ln-s/application/nginx-1.6.3//application/nginx #Startnginx /application/nginx/sbin/nginx #Checkport80 lsof-i:80
3安装fpm工具
首先安装依赖包
yum-yinstallzlib-develcurl-developenssl-develhttpd-develapr-develapr-util-develmysql-devel
下载ruby,fpm是ruby写的,因此系统环境需要ruby。不推荐yum安装ruby,在测试的时候会出现一些问题。
[root@swagtools]#wgethttps://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swagtools]#tar-xfruby-2.3.0.tar.gz [root@swagtools]#cdruby-2.3.0 [root@swagruby-2.3.0]#./configure [root@swagruby-2.3.0]#make&&makeinstall [root@swagruby-2.3.0]#ruby-v ruby2.3.0p0(2015-12-25revision53290)[x86_64-linux] [root@swag~]#whereisgem gem:/usr/local/bin/gem [root@swag~]#/usr/local/bin/geminstallfpm [root@swag~]#fpm-v 1.9.3 #添加阿里云的Rubygems仓库,默认的源为外国源,访问下载速度比较慢,在添加之前先移除原生的Ruby仓库 [root@swag~]#gemsources ***CURRENTSOURCES*** https://rubygems.org/ [root@swag~]#gemsources--removehttps://rubygems.org/ https://rubygems.org/removedfromsources #添加阿里仓库 [root@swag~]#gemsources-ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/addedtosources [root@swag~]#gemsources ***CURRENTSOURCES***
http://mirrors.aliyun.com/rubygems/
fpm常用参数
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次打包时目录下如果有同名安装包存在,则覆盖它
-p:输出的安装包的目录,不想放在当前目录下就需要指定
--post-install:软件包安装完成之后所要运行的脚本;同--offer-install
--pre-install:软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove
--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
fpm支持的源类型包
dir:将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm:对rpm进行转换
gem:对rubygem包进行转换
python:将Python模块打包成相应的类型
fpm支持的目标类型包
rpm:转换为rpm包
deb:转换为deb包
solaris:转换为solaris包
puppet:转换为puppet包
4将Nginx打包
[root@swagtools]#wgethttps://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swagtools]#tar-xfruby-2.3.0.tar.gz [root@swagtools]#cdruby-2.3.0 [root@swagruby-2.3.0]#./configure [root@swagruby-2.3.0]#make&&makeinstall [root@swagruby-2.3.0]#ruby-v ruby2.3.0p0(2015-12-25revision53290)[x86_64-linux] [root@swag~]#whereisgem gem:/usr/local/bin/gem [root@swag~]#/usr/local/bin/geminstallfpm [root@swag~]#fpm-v 1.9.3 #添加阿里云的Rubygems仓库,默认的源为外国源,访问下载速度比较慢,在添加之前先移除原生的Ruby仓库 [root@swag~]#gemsources ***CURRENTSOURCES*** https://rubygems.org/ [root@swag~]#gemsources--removehttps://rubygems.org/ https://rubygems.org/removedfromsources #添加阿里仓库 [root@swag~]#gemsources-ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/addedtosources [root@swag~]#gemsources ***CURRENTSOURCES*** [root@swagtools]#wgethttps://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swagtools]#tar-xfruby-2.3.0.tar.gz [root@swagtools]#cdruby-2.3.0 [root@swagruby-2.3.0]#./configure [root@swagruby-2.3.0]#make&&makeinstall [root@swagruby-2.3.0]#ruby-v ruby2.3.0p0(2015-12-25revision53290)[x86_64-linux] [root@swag~]#whereisgem gem:/usr/local/bin/gem [root@swag~]#/usr/local/bin/geminstallfpm [root@swag~]#fpm-v 1.9.3 #添加阿里云的Rubygems仓库,默认的源为外国源,访问下载速度比较慢,在添加之前先移除原生的Ruby仓库 [root@swag~]#gemsources ***CURRENTSOURCES*** https://rubygems.org/ [root@swag~]#gemsources--removehttps://rubygems.org/ https://rubygems.org/removedfromsources #添加阿里仓库 [root@swag~]#gemsources-ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/addedtosources [root@swag~]#gemsources ***CURRENTSOURCES***
5其它机器测试
#scp把rpm包传送过去 [root@swag~]#scpnginx-1.6.3-1.x86_64.rpmroot@10.0.0.5:/home/oldboy/tools #测试 [root@swag3tools]#yumlocalinstallnginx-1.6.3-1.x86_64.rpm-y
6yum仓库搭建
安装createrepo
[root@swag2~]#yuminstallcreaterepo-y
创建yum仓库目录并初始化repodata索引文件
[root@swag2~]#mkdir-p/application/yum/centos6.9/x86_64/ [root@swag2~]#cd/application/yum/centos6.9/x86_64/#拷贝定制的rpm包到此目录下 [root@swag2x86_64]#createrepo-pdo/application/yum/centos6.9/x86_64//application/yum/centos6.9/x86_64/
提供yum服务
#这里用python来提供web服务,也可用apache或nginx来提供web服务 [root@swag2x86_64]#python-mSimpleHTTPServer80&>/dev/nullpython的httpd模块 [root@swag2x86_64]#lsof-i:80 COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME python24680root3uIPv4324930t0TCP*:http(LISTEN)
如果有新的rpm包放入必须更新
[root@swag2x86_64]#createrepo--update/application/yum/centos6.9/x86_64/
客户端修改yum源
cat>>/etc/yum.repo.d/<yum的一些用法
#只下载包不安装包
1、yumdownloaderpcre-developenssl-devel
2、yum--downloadonlypcre-developenssl-devel#yum本地安装rpm包 yumlocalinstallpcre-developenssl-devel #yum开启某些个源,关闭某些源安装软件包 yum--enablerepo=local--disablerepo=base,extras,updates,epelinstallpcre-developenssl-devel #yum安装不做GPG-check yuminstall--nogpgcheckpcre-developenssl-devel #查看yum历史记录 yumhistory #列出启用的软件库 yumrepolist yumrepolistall#列出所有的软件库,包括禁用的也列出错误排查
#若在客户端安装nginx的时候报以下错误是因为缺少依赖包的缘故,把其下载下来并更新yum仓库即可。
yum仓库:createrepo--update/application/yum/centos6.9/x86_64/
客户端:yumcleanallError:Package:nginx-1.6.3-1.x86_64(only)
Requires:pcre-devel
Error:Package:nginx-1.6.3-1.x86_64(only)
Requires:openssl-devel#需要注意配置文件书写是否有误
7镜像同步公网yum源
上面只是将自己制作的rpm包,放入yum源。但还有一种需求,平时安装软件都是从公网下载的,占用带宽,因此可以直接使用公网yum源的repodata。
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。http://mirrors.ustc.edu.cn/status/
#CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/ #epel源:rsync://mirrors.ustc.edu.cn/epel/ #同步命令: #使用rsync同步yum源,为了节省带宽、磁盘和下载时间,这里只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。 #同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。 /usr/bin/rsync-avrsync://mirrors.ustc.edu.cn/centos/6/os/x86_64//data/yum_data/centos/6/os/x86_64/ /usr/bin/rsync-avrsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64//data/yum_data/centos/6/extras/x86_64/ /usr/bin/rsync-avrsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64//data/yum_data/centos/6/updates/x86_64/ #epel源 /usr/bin/rsync-av--exclude=debugrsync://mirrors.ustc.edu.cn/epel/6/x86_64//data/yum_data/epel/6/x86_64/ #使用内网yum源方法 #可以自建一个内网dns,如果没有,可使用hosts解析。 echo'192.168.0.200mirrors.aliyun.com'>>/etc/hosts #结果展示 [root@swag5data]#du-shyum_data 21Gyum_data [root@swag5data]#tree-L3yum_data/ yum_data/ ├──centos │├──6 ││├──extras ││├──os ││└──updates │└──RPM-GPG-KEY-CentOS-6 ├──epel │└──6 │└──x86_64总结
以上所述是小编给大家介绍的Centos定制rpm包、搭建yum仓库的教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。