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