Centos定制rpm包、搭建yum倉庫的教程
1 保留yum安裝軟件時下載下來的rpm包
只需修改yum配置文件即可。下載下來的rpm包會自動保存在/var/cache/yum/目錄下
[root@swag ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@swag ~]# yum install sl -y [root@swag ~]# tree /var/cache/yum/x86_64/6/epel/ /var/cache/yum/x86_64/6/epel/ ├── 83f14a3d88054141092be5da12eb18cb1baabd7d52e1ae38bfc98d3d5005490c-primary.sqlite ├── cachecookie ├── packages │ └── sl-5.02-1.el6.x86_64.rpm └── repomd.xml 1 directory, 4 files
2 編譯安裝Nginx
# Download tar.gz package cd /home/oldboy/tools wget -q http://nginx.org/download/nginx-1.6.3.tar.gz # Yum install Dependent package yum install openssl openssl-devel -y yum install pcre pcre-devel -y rpm -qa pcre pcre-devel # Useradd www useradd www -s /sbin/nologin -M # Compile and install tar -xf nginx-1.6.3.tar.gz cd nginx-1.6.3 ./configure --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --prefix=/application/nginx-1.6.3/ make && make install # Create a soft link ln -s /application/nginx-1.6.3/ /application/nginx # Start nginx /application/nginx/sbin/nginx # Check port 80 lsof -i :80
3 安裝fpm工具
首先安裝依賴包
yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel
下載ruby,fpm是ruby寫的,因此系統(tǒng)環(huán)境需要ruby。不推薦yum安裝ruby,在測試的時候會出現(xiàn)一些問題。
[root@swag tools]# wget https://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swag tools]# tar -xf ruby-2.3.0.tar.gz [root@swag tools]# cd ruby-2.3.0 [root@swag ruby-2.3.0]# ./configure [root@swag ruby-2.3.0]# make && make install [root@swag ruby-2.3.0]# ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] [root@swag ~]# whereis gem gem: /usr/local/bin/gem [root@swag ~]# /usr/local/bin/gem install fpm [root@swag ~]# fpm -v 1.9.3 # 添加阿里云的Rubygems倉庫,默認(rèn)的源為外國源,訪問下載速度比較慢,在添加之前先移除原生的Ruby倉庫 [root@swag ~]# gem sources *** CURRENT SOURCES *** https://rubygems.org/ [root@swag ~]# gem sources --remove https://rubygems.org/ https://rubygems.org/ removed from sources # 添加阿里倉庫 [root@swag ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources [root@swag ~]# gem sources *** CURRENT SOURCES ***
http://mirrors.aliyun.com/rubygems/
fpm常用參數(shù)
-s:指定源類型
-t:指定目標(biāo)類型,即想要制作為什么包
-n:指定包的名字
-v:指定包的版本號
-C:指定打包的相對路徑
-d:指定依賴于哪些包
-f:第二次打包時目錄下如果有同名安裝包存在,則覆蓋它
-p:輸出的安裝包的目錄,不想放在當(dāng)前目錄下就需要指定
--post-install:軟件包安裝完成之后所要運行的腳本;同--offer-install
--pre-install:軟件包安裝完成之前所要運行的腳本;同--before-install
--post-uninstall:軟件包卸載完成之后所要運行的腳本;同--offer-remove
--pre-uninstall:軟件包卸載完成之前所要運行的腳本;同—before-remove
fpm支持的源類型包
dir:將目錄打包成所需要的類型,可以用于源碼編譯安裝的軟件包
rpm:對rpm進行轉(zhuǎn)換
gem:對rubygem包進行轉(zhuǎn)換
python:將Python模塊打包成相應(yīng)的類型
fpm支持的目標(biāo)類型包
rpm:轉(zhuǎn)換為rpm包
deb:轉(zhuǎn)換為deb包
solaris:轉(zhuǎn)換為solaris包
puppet:轉(zhuǎn)換為puppet包
4 將Nginx打包
[root@swag tools]# wget https://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swag tools]# tar -xf ruby-2.3.0.tar.gz [root@swag tools]# cd ruby-2.3.0 [root@swag ruby-2.3.0]# ./configure [root@swag ruby-2.3.0]# make && make install [root@swag ruby-2.3.0]# ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] [root@swag ~]# whereis gem gem: /usr/local/bin/gem [root@swag ~]# /usr/local/bin/gem install fpm [root@swag ~]# fpm -v 1.9.3 # 添加阿里云的Rubygems倉庫,默認(rèn)的源為外國源,訪問下載速度比較慢,在添加之前先移除原生的Ruby倉庫 [root@swag ~]# gem sources *** CURRENT SOURCES *** https://rubygems.org/ [root@swag ~]# gem sources --remove https://rubygems.org/ https://rubygems.org/ removed from sources # 添加阿里倉庫 [root@swag ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources [root@swag ~]# gem sources *** CURRENT SOURCES *** [root@swag tools]# wget https://ruby.taobao.org/mirrors/ruby/ruby-2.3.0.tar.gz [root@swag tools]# tar -xf ruby-2.3.0.tar.gz [root@swag tools]# cd ruby-2.3.0 [root@swag ruby-2.3.0]# ./configure [root@swag ruby-2.3.0]# make && make install [root@swag ruby-2.3.0]# ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] [root@swag ~]# whereis gem gem: /usr/local/bin/gem [root@swag ~]# /usr/local/bin/gem install fpm [root@swag ~]# fpm -v 1.9.3 # 添加阿里云的Rubygems倉庫,默認(rèn)的源為外國源,訪問下載速度比較慢,在添加之前先移除原生的Ruby倉庫 [root@swag ~]# gem sources *** CURRENT SOURCES *** https://rubygems.org/ [root@swag ~]# gem sources --remove https://rubygems.org/ https://rubygems.org/ removed from sources # 添加阿里倉庫 [root@swag ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources [root@swag ~]# gem sources *** CURRENT SOURCES ***
5 其它機器測試
# scp把rpm包傳送過去 [root@swag ~]# scp nginx-1.6.3-1.x86_64.rpm root@10.0.0.5:/home/oldboy/tools # 測試 [root@swag3 tools]# yum localinstall nginx-1.6.3-1.x86_64.rpm -y
6 yum倉庫搭建
安裝createrepo
[root@swag2 ~]# yum install createrepo -y
創(chuàng)建yum倉庫目錄并初始化repodata索引文件
[root@swag2 ~]# mkdir -p /application/yum/centos6.9/x86_64/ [root@swag2 ~]# cd /application/yum/centos6.9/x86_64/ # 拷貝定制的rpm包到此目錄下 [root@swag2 x86_64]# createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/
提供yum服務(wù)
# 這里用python來提供web服務(wù),也可用apache或nginx來提供web服務(wù) [root@swag2 x86_64]# python -m SimpleHTTPServer 80 &>/dev/null & # python的httpd模塊 [root@swag2 x86_64]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 24680 root 3u IPv4 32493 0t0 TCP *:http (LISTEN)
如果有新的rpm包放入必須更新
[root@swag2 x86_64]# createrepo --update /application/yum/centos6.9/x86_64/
客戶端修改yum源
cat >>/etc/yum.repo.d/<<EOF [only] name=Server baseurl=http://10.0.0.7 # baseurl指定yum倉庫IP,如果不是80端口需要加端口 enabled=1 gpgcheck=0 EOF # 客戶端以安裝nginx為例 # 清除本地緩存 [root@swag4 ~]# yum clean all # 顯示本地yum源列表 [root@swag4 ~]# yum --enablerepo=only --disablerepo=base,extras,updates,epel list # 這里需要注意--enablerepo為local.repo文件中定義的only # 安裝nginx為例# yum --enablerepo=local --disablerepo=base,extras,updates,epel install nginx -y
yum的一些用法
# 只下載包不安裝包
1、yumdownloader pcre-devel openssl-devel
2、yum --downloadonly pcre-devel openssl-devel
# yum本地安裝rpm包 yum localinstall pcre-devel openssl-devel # yum開啟某些個源,關(guān)閉某些源安裝軟件包 yum --enablerepo=local --disablerepo=base,extras,updates,epel install pcre-devel openssl-devel # yum安裝不做GPG-check yum install --nogpgcheck pcre-devel openssl-devel # 查看yum歷史記錄 yum history # 列出啟用的軟件庫 yum repolist yum repolist all # 列出所有的軟件庫,包括禁用的也列出
錯誤排查
# 若在客戶端安裝nginx的時候報以下錯誤是因為缺少依賴包的緣故,把其下載下來并更新yum倉庫即可。
yum倉庫:createrepo --update /application/yum/centos6.9/x86_64/
客戶端:yum clean allError: Package: nginx-1.6.3-1.x86_64 (only)
Requires: pcre-devel
Error: Package: nginx-1.6.3-1.x86_64 (only)
Requires: openssl-devel
# 需要注意配置文件書寫是否有誤
7 鏡像同步公網(wǎng)yum源
上面只是將自己制作的rpm包,放入yum源。但還有一種需求,平時安裝軟件都是從公網(wǎng)下載的,占用帶寬,因此可以直接使用公網(wǎng)yum源的repodata。
上游yum源必須要支持rsync協(xié)議,否則不能使用rsync進行同步。http://mirrors.ustc.edu.cn/status/
# CentOS官方標(biāo)準(zhǔn)源:rsync://mirrors.ustc.edu.cn/centos/ # epel源:rsync://mirrors.ustc.edu.cn/epel/ # 同步命令: # 使用rsync同步y(tǒng)um源,為了節(jié)省帶寬、磁盤和下載時間,這里只同步了CentOS6的rpm包,這樣所有的rpm包只占用了21G,全部同步需要300G左右。 # 同步base源,小技巧,我們安裝系統(tǒng)的光盤鏡像含有部分rpm包,大概3G,這些就不用重新下載。 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/ /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/ # epel源 /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/ # 使用內(nèi)網(wǎng)yum源方法 # 可以自建一個內(nèi)網(wǎng)dns,如果沒有,可使用hosts解析。 echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts # 結(jié)果展示 [root@swag5 data]# du -sh yum_data 21G yum_data [root@swag5 data]# tree -L 3 yum_data/ yum_data/ ├── centos │ ├── 6 │ │ ├── extras │ │ ├── os │ │ └── updates │ └── RPM-GPG-KEY-CentOS-6 ├── epel │ └── 6 │ └── x86_64
總結(jié)
以上所述是小編給大家介紹的Centos定制rpm包、搭建yum倉庫的教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
上一篇:Linux系統(tǒng)下如何運行.sh文件的實現(xiàn)
欄 目:Linux/apache
下一篇:在 Linux 終端中查找域名 IP 地址的命令(五種方法)
本文標(biāo)題:Centos定制rpm包、搭建yum倉庫的教程
本文地址:http://www.jygsgssxh.com/a1/Linux_apache/10642.html
您可能感興趣的文章
- 01-10centos7.x 部署主、從DNS服務(wù)器問題
- 01-10CentOS8 yum/dnf 配置國內(nèi)源的方法
- 01-10在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法
- 01-10CentOS6.5下搭建文件共享服務(wù)Samba的教程
- 01-10windows 用VMware創(chuàng)建linux虛擬機安裝CentOS7.2操作系統(tǒng)
- 01-10CentOS 8安裝ZABBIX4.4的指南
- 01-10淺析CentOS8虛擬機訪問Windows10主機文件夾方法
- 01-10CentOS7系統(tǒng)增加swap的操作方法實例
- 01-10Centos7 下安裝python3及卸載的教程
- 01-10CentOS 7.6 Telnet服務(wù)搭建過程(Openssh升級之戰(zhàn) 第一任務(wù)備用運輸線


閱讀排行
本欄相關(guān)
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux命令注入過濾 linux 代碼注入
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過程
- 04-02linux命令注銷vnc linux命令行注銷用戶
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議
- 04-02linux命令歷史記錄 linux查看歷史記錄的
- 04-02linux命令頁面 linux命令頁面中文
隨機閱讀
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10C#中split用法實例總結(jié)
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置


