linux运维、架构之路-rpm定制、本地yum仓库搭建

时间:2023-03-09 03:01:47
linux运维、架构之路-rpm定制、本地yum仓库搭建

一、定制rpm包

1、环境

[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.-.el6.x86_64
[root@m01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@m01 ~]# getenforce
Disabled
[root@m01 ~]# hostname -I
172.19.5.61 172.16.1.61

2、安装FPM

yum install ruby rubygems ruby-devel -y #安装ruby模块
gem sources -a http://mirrors.aliyun.com/rubygems/ #添加国内源
gem sources --remove http://rubygems.org/ #移除原生的Ruby仓库
gem install fpm #安装fpm
gem install fpm -v 1.4.
错误:

Building native extensions. This could take a while...
Building native extensions. This could take a while...
ERROR: Error installing fpm:
解决:安装旧版本的fpm
gem install fpm -v 1.4.

3、FPM命令参数介绍

fpm --help
-s 指定源类型
-t 指定目标类型,既想要制作成什么包
-n 指定包的名字
-v 指定包的版本号
-C 指定打包的相对路径
-d 指定依赖于哪些包
-f 第二次打包时目录下如果有同名安装包存在,则覆盖它
-p 输出安装包的目录,不想放在当前目录下就需要指定 

二、FPM实战打包NMP

1、实战打包Nginx

fpm -s dir -t rpm -n nginx -v 1.10. -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh /application/nginx-1.10.

2、实战打包PHP

fpm -s dir -t rpm -n php -v 5.5. -d 'zlib libjpeg freetype libpng gd curl zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libjpeg-turbo-devel libcurl-devel libxslt-devel libmcrypt-devel mhash mcrypt' --post-install /server/scripts/php_rpm.sh -f /application/php-5.5./

3、实战打包MySQL

fpm -s dir -t rpm -n mysql -v 5.6. -d 'ncurses-devel libaio-devel cmake' --post-install /server/scripts/mysql_rpm.sh /application/mysql-5.6. /etc/init.d/mysqld /etc/my.cnf /etc/profile

4、脚本文件

#nginx_rpm.sh#
useradd -s /sbin/nologin -M www
ln -s /application/nginx-1.10./ /application/nginx
ln -s /application/nginx/sbin/nginx /usr/local/sbin/ #php_rpm.sh#
#!/bin/sh
ln -s /application/php-5.5./ /application/php #mysql_rpm.sh#
#!/bin/sh
useradd -s /sbin/nologin -M mysql
ln -s /application/mysql-5.6./ /application/mysql
chown -R mysql.mysql /application/mysql-5.6./

5、其它机子测试

yum localinstall nginx-1.6.-.x86_64.rpm -y

三、yum仓库搭建

1、安装createrepo

yum install createrepo -y #创建yum源软件

2、创建yum仓库目录并初始化repodata索引文件

mkdir -p /application/yum/centos6./x86_64/
cd /application/yum/centos6./x86_64/ #拷贝rpm包到此目录
createrepo -pdo /application/yum/centos6./x86_64/ /application/yum/centos6./x86_64/

3、提供yum服务

python -m SimpleHTTPServer  &>/dev/null & #python的http模块

4、如果有新的rpm包放入必须更新

createrepo --update /application/yum/centos6./x86_64/

5、客户端修改yum源

cd /etc/yum.repos.d/
vi local.repo
[onlylady]
name=Server
baseurl=http://172.19.5.61
enable=
gpgcheck= yum clean all #清除本地缓存
yum --enablerepo=local --disablerepo=base,extras,updates list #显示本地yum源列表
#安装nginx为例#
yum --enablerepo=local --disablerepo=base,extras,updates,epel install nginx -y

6、yum命令参数

linux运维、架构之路-rpm定制、本地yum仓库搭建