定制rpm包及搭建yum仓库
定制rpm包及搭建yum仓库
第1章 定制rpm包
1.FPM打包工具FPM的作者是jordansissel 支持的源类型包: dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm 对rpm进行转换 gem 对rubygem包进行转换 python 将python模块打包成相应的类型 2.fpm安装[root@student ~]# yum -y install ruby rubygemsruby-devel 安装ruby模块 [root@web01 ~]# gem sources -ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added tosources 添加阿里云的Rubygems仓库,国外资源会影响下载速度 [root@student ~]# gem sources --removehttp://rubygems.org/ http://rubygems.org/ removed from sources 移除原生的仓库 [root@student ~]# gem installfpm fpm
3.fpm常用参数-s#指定源类型 -t指定目标类型,即想要制作为什么包 -n指定包的名字 -v指定包的版本号 -C指定打包的相对路径Change directory tohere before searching forfiles -d指定依赖于哪些包 -f第二次打包时目录下如果有同名安装包存在,则覆盖它 -p输出的安装包的目录,不想放在当前目录下就需要指定 --post-install软件包安装完成之后所要运行的脚本;同--after-install --pre-install软件包安装完成之前所要运行的脚本;同--before-install --post-uninstall软件包卸载完成之后所要运行的脚本;同--after-remove --pre-uninstall软件包卸载完成之前所要运行的脚本;同--before-remove
4. 安装nginxyum -y install pcre-devel openssl-devel useradd nginx -M -s /sbin/nologin tar xf nginx-1.6.2.tar.gz cd nginx-1.6.2
./configure --prefix=/application/nginx-1.6.2--user=nginx --group=nginx --with-http_ssl_module--with-http_stub_status_module
make && make install ln -s /application/nginx-1.6.2/ /application/nginx
5.编写脚本[root@oldboy ~]# cd/server/scripts/ [root@oldboy scripts]# vimnginx_rpm.sh #!/bin/bash useradd nginx -M -s /sbin/nologin ln -s /application/nginx-1.6.2//application/nginx
6.打包[root@web01 application]# yum -yinstall rpm-build
[root@oldboy ~]# fpm -s dir -t rpm-n nginx -v 1.6.2 -d 'pcre-devel,openssl-devel' --post-install/server/scripts/nginx_rpm.sh -f /application/nginx-1.6.2/ no value for epoch is set,defaulting to nil {:level=>:warn} no value for epoch is set,defaulting to nil {:level=>:warn} Created package{:path=>"nginx-1.6.2-1.x86_64.rpm"} [root@oldboy ~]# ll -hnginx-1.6.2-1.x86_64.rpm -rw-r--r-- 1 root root 6.7MNov 1 10:02 nginx-1.6.2-1.x86_64.rpm
4. 安装rpm包
rpm -ivh nginx-1.6.2-1.x86_64.rpm
yum -y localinstallnginx-1.6.2-1.x86_64.rpm
第2章 搭建yum仓库服务端配置:1.创建yum仓库目录mkdir ?Cp /application/yum/centos6/x86_64/ 2.安装createrepo软件yum -y install createrepo 3.初始化repodata索引文件createrepo -pdo/application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/ 4.进入需要提供仓库的目录cd /application/yum/centos6/x86_64/ 5.配置web查看yumpython -m SimpleHTTPServer80&>/dev/null & //可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境,可以通过浏览器输入本机IP查看。 6.每加入一个rpm包就要更新一下createrepo--update/application/yum/centos6/x86_64/ 7.保存下载过的软件sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf //修改yum配置文件keepacache=0改为1 8.安装包存储目录ls /var/cache/yum/x86_64/6/base/packages
客户端配置:1.配置本地yum源文件[root@B yum.repos.d]#cd /etc/yum.repos.d [root@B yum.repos.d]#vi oldboy.repo 连接本地yum源 [oldboy] name=oldboy baseurl=http://10.0.0.61 enable=1 gpgcheck=0 2.指定新增的yum源生效[root@YUM ~]# yum --enablerepo=oldboy --disablerepo=base,extras,updates,epellist 指定使用oldboy库(临时生效) 3.使yum源永久生效[root@oldboy yum.repos.d]# vim /etc/yum.repos.d/CentOS-Base.repo # 在每一个启动的源加上 #enabled=0#改为1就启用,没有此参数也是启用。 [base] enabled=0 ………… [updates] ………… enabled=0 ………… [extras] ………… enabled=0 # 还有其他开启的仓库就使用这个办法关闭
4.查看现有yum源[root@web01 ~]# yum repolist
5.同步公网yum源上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。 CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/ epel源:rsync://mirrors.ustc.edu.cn/epel/ 163源:http://mirrors.163.com/ 阿里云源:http://mirrors.aliyun.com/
# 同步base源 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64//data/yum_data/centos/6/os/x86_64/
# epel源 /usr/bin/rsync -av --exclude=debugrsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |