1. 程式人生 > >linux運維、架構之路-rpm定制、本地yum倉庫搭建

linux運維、架構之路-rpm定制、本地yum倉庫搭建

his rip eve lis libxml upd force not run span

一、定制rpm包

1、環境

[root@m01 ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.32-696.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.0 錯誤: 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.0

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.3 -d pcre-devel,openssl-devel
--post-install /server/scripts/nginx_rpm.sh /application/nginx-1.10.3

2、實戰打包PHP

fpm -s dir -t rpm -n php -v 5.5.32 -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.32/

3、實戰打包MySQL

fpm -s dir -t rpm -n mysql -v 5.6.36 -d ncurses-devel libaio-devel cmake --post-install /server/scripts/mysql_rpm.sh /application/mysql-5.6.36 /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.3/ /application/nginx
ln -s /application/nginx/sbin/nginx  /usr/local/sbin/

#php_rpm.sh#
#!/bin/sh
ln -s /application/php-5.5.32/ /application/php

#mysql_rpm.sh#
#!/bin/sh
useradd -s /sbin/nologin -M mysql
ln -s /application/mysql-5.6.36/ /application/mysql
chown -R mysql.mysql /application/mysql-5.6.36/

5、其它機子測試

yum localinstall nginx-1.6.2-1.x86_64.rpm -y

三、yum倉庫搭建

1、安裝createrepo

yum install createrepo -y #創建yum源軟件

2、創建yum倉庫目錄並初始化repodata索引文件

mkdir -p /application/yum/centos6.9/x86_64/
cd /application/yum/centos6.9/x86_64/ #拷貝rpm包到此目錄
createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/

3、提供yum服務

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

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

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

5、客戶端修改yum源

cd /etc/yum.repos.d/
vi local.repo
[onlylady]
name=Server
baseurl=http://172.19.5.61
enable=1
gpgcheck=0

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倉庫搭建