您好,登錄后才能下訂單哦!
定制rpm包及搭建yum倉庫
FPM的作者是jordansissel
FPM的github:https://github.com/jordansissel/fpm
FPM功能簡單說就是將一種類型的包轉換成另一種類型。
支持的源類型包:
dir 將目錄打包成所需要的類型,可以用于源碼編譯安裝的軟件包
rpm 對rpm進行轉換
gem 對rubygem包進行轉換
python 將python模塊打包成相應的類型
[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
移除原生的ruby倉庫
[root@student ~]# gem installfpm
安裝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
yum -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
[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
[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
mkdir –p /application/yum/centos6/x86_64/
yum -y install createrepo
createrepo -pdo/application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/
cd /application/yum/centos6/x86_64/
python -m SimpleHTTPServer80 &>/dev/null &
//可以用Apache或nginx提供web服務,但用Python的http模塊更簡單,適用于內網環境, 可以通過瀏覽器輸入本機IP查看。
createrepo--update /application/yum/centos6/x86_64/
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
//修改yum配置文件keepacache=0改為1
ls /var/cache/yum/x86_64/6/base/packages
[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
[root@YUM ~]# yum --enablerepo=oldboy --disablerepo=base,extras,updates,epellist
指定使用oldboy庫(臨時生效)
[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
# 還有其他開啟的倉庫就使用這個辦法關閉
[root@web01 ~]# yum repolist
上游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/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。