1.1 yum緩存使用步驟... 1python
1.1.1 導言... 1nginx
1.1.2 修改配置文件... 1web
1.1.3 使用緩存... 1數據庫
2.1 倉庫簡介... 2json
2.1.1 導言... 2vim
2.1.2 使用說明:... 2centos
2.2 搭建YUM倉庫過程... 3瀏覽器
2.2.1 建立yum倉庫目錄... 3緩存
2.2.2 安裝createrepo軟件... 3ruby
2.2.3 初始化repodata索引文件... 3
2.2.4 提供yum服務(Python)... 4
2.2.5 在倉庫中添加新的rpm包... 4
2.3 客戶端配置及使用... 5
2.3.1 更改yum源... 5
2.3.2 清空以前的緩存... 5
2.3.3 指定使用yum庫... 5
2.3.4 直接yum安裝... 5
2.4 鏡像yum源... 6
2.4.1 鏡像同步公網yum源... 6
2.4.2 學生使用內網yum源方法... 6
2.4.3 結果展現... 6
3.1 FPM打包工具安裝... 7
3.1.1 安裝依賴包... 7
3.1.2 二、第二步曲:更改倉庫... 8
3.2 FRM參數:... 8
3.3 Nginx打包實例參考:... 9
3.3.1 第一步:建立腳本:... 9
3.3.2 第二步:製做fpm包... 9
3.3.3 第三步:當前路徑查看fpm包(ls). 9
3.4 打包好的rpm 安裝方法:... 9
3.5 注意事項:... 10
默認狀況下,當前版本的 yum 在成功下載和安裝軟件包後,會把下載的文件刪掉。這樣能夠減小 yum 佔用的磁盤空間。你能夠打開緩存(設置 /etc/yum.conf 中的 keepcache 選項爲 1:keepcache=1)這樣 yum 將在緩存目錄保留下載到的文件。
設置 /etc/yum.conf 中的 keepcache 選項爲 1:keepcache=1
會將下載的安裝包緩存到/var/cache/yum/x86_64/下目錄中的packages
l 下載並緩存
[root@CeShi 6]# yum install gd-devel libcurl-devel
2 本地使用緩存下載
[root@CeShi 6]# yum -C install gd-devel libcurl-devel
3 注意:
/var/cache/yum/ 目錄下的全部文件包過目錄. 複製到另外一臺機子下的相同目錄. 執行.
YUM主要用於自動安裝、升級rpm軟件包,它能自動查找並解決rpm包之間的依賴關係。要成功的使用YUM工具安裝更新軟件或系統,就須要有一個包含各類rpm軟件包的repository(軟件倉庫),這個軟件倉庫咱們習慣稱爲yum源。網絡上有大量的yum源,但因爲受到網絡環境的限制,致使軟件安裝耗時過長甚至失敗。特別是當有大量服務器大量軟件包須要安裝時,緩慢的進度條使人難以忍受。所以咱們在優化系統時,都會更換國內的源。
相比較而言,本地YUM源服務器最大優勢是局域網的快速網絡鏈接和穩定性。有了局域網中的YUM源服務器,即使在Internet鏈接中斷的狀況下,也不會影響其餘YUM客戶端的軟件安裝和升級。
使用內網倉庫安裝前提
一、客戶端:更改yum源
[root@B yum.repos.d]# vi xzy.repo
[xzy]
name=Server
baseurl=http://10.0.0.5
enable=1
gpgcheck=0
二、服務端:倉庫中須要有對應的rpm包(包括依賴包)
l 內網倉庫+定製rpm包
將定製的rpm包推送到到搭建的yum倉庫中 ,更新倉庫便可
l 使用內網倉庫
先在倉庫主機使用網上yum源: yum緩存到本機->複製到倉庫中->更新倉庫
部署命令禮包
mkdir -p /application/yum/centos6.6/x86_64/
cd /application/yum/centos6.6/x86_64/
yum -y install createrepo
createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &
mkdir -p /application/yum/centos6.6/x86_64/
cd /application/yum/centos6.6/x86_64/
rz # 上傳rpm包到此目錄,此目錄下面還能夠包括文件夾
yum -y install createrepo
createrepo -pdo /application/yum/centos6.6/x86_64/ /application/yum/centos6.6/x86_64/
此目錄下會生成 drwxr-xr-x 2 root root 4096 Nov 4 18:51 repodata文件
-p --pretty 以整潔的格式輸出xml文件。
-d --database 該選項指定使用SQLite來存儲生成的元數據,默認項。
-o --outputdir <url> 指定元數據的輸出位置
# 能夠用Apache或nginx提供web服務,但用Python的http模塊更簡單,適用於內網環境
cd /application/yum/centos6.6/x86_64/ python -m SimpleHTTPServer 80 &>/dev/null &
注意:
必須在倉庫目錄下(至關於設置站點目錄)
端口號能夠更改 (Python 默認的是8000)
能夠經過瀏覽器輸入本機IP查看。
#
python -m SimpleHTTPServer 80 &>/dev/null &
執行這一條命令,就能夠在瀏覽器中訪問此目錄
[root@CeShi ~]# python -m SimpleHTTPServer 80 &>/dev/null &
[1] 15294
本機使用網上yum源: yum緩存到本機->複製到倉庫中->更新倉庫
一、修改:vim cat /etc/yum.conf keepcache=1 #緩存到本機
二、複製:[root@CeShi x86_64]# find /var/cache/yum/x86_64/6/ -name "*.rpm"|xargs cp -t /application/yum/centos6.6/x86_64/ #此目錄下rpm包能夠在目錄下。
三、更新:createrepo --update /application/yum/centos6.6/x86_64/ #重要
cd /etc/yum.repos.d
[root@B yum.repos.d]# vi oldboy.repo
[XZY]
name=xzy
baseurl=http://10.0.0.5:80
enable=1
gpgcheck=0
yum clean all
yum --enablerepo=XZY --disablerepo=base,extras,updates,epel list
[root@backup yum.repos.d]# yum install mhash mcrypt
Loaded plugins: fastestmirror, security
* epel: mirrors.aliyun.com
epel/primary_db | 6.0 MB 00:06
XZY | 2.9 kB 00:00
XZY/primary_db | 35 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package mcrypt.x86_64 0:2.6.8-10.el6 will be installed
上面只是將本身製做的rpm包,放入yum源。但還有一種企業需求,說的更具體一點,平時學生上課yum安裝軟件都是從公網下載的,佔用帶寬,所以在學校裏搭建一個內網yum服務器,但又考慮到學生回家也要使用yum安裝軟件,若是yum軟件的數據庫文件repodata不同,就會有問題。所以我想到的解決方法就是直接使用公網yum源的repodata。
說明
上游yum源必需要支持rsync協議,不然不能使用rsync進行同步。
鏡像較大,全部的有300G左右。
# 同步base源,小技巧,咱們安裝系統的光盤鏡像含有部分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/
# 能夠自建一個內網dns,若是沒有,可以使用hosts解析。
echo '192.168.0.200 mirrors.aliyun.com' >>/etc/hosts
[root@KVM data]# du -sh yum_data
21G yum_data
[root@KVM data]# tree -L 3 yum_data/
yum_data/
├── centos
│ ├── 6
│ │ ├── extras
│ │ ├── os
│ │ └── updates
│ └── RPM-GPG-KEY-CentOS-6
├── epel
│ └── 6
│ └── x86_64
yum -y install ruby rubygems ruby-devel
查看當前倉庫源命令
gem sources list
更改ruby倉
gem source -a http://mirrors.aliyun.com/rubygems/ -r http://rubygems.org/
gem install json -v 1.8.3
gem install fpm -v 1.3.3
-s 指定源類型
-t 指定目標類型,即想要製做爲何包
-n 指定包的名字
-v 指定包的版本號
-C 指定打包的相對路徑 Change directory to here before searching forfiles
-d 指定依賴於哪些包
-f 第二次打包時目錄下若是有同名安裝包存在,則覆蓋它
-p 輸出的安裝包的目錄,不想放在當前目錄下就須要指定
--post-install 軟件包安裝完成以後所要運行的腳本;同--after-install
--pre-install 軟件包安裝完成以前所要運行的腳本;同--before-install
--post-uninstall 軟件包卸載完成以後所要運行的腳本;同--after-remove
--pre-uninstall 軟件包卸載完成以前所要運行的腳本;同--before-remove
#!/bin/bash
useradd www -M -s /bin/nologin
ln -s /application/nginx-1.10.2/ /application/nginx
fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.10.2/
注意: -f 後能夠指定多個目錄
一、推薦使用方法:yum localinstall 包名 ,(包在當前目錄下)
yum -y localinstall nginx-1.10.2-1.x86_64.rpm
[root@m01 application]# ll
total 4
lrwxrwxrwx 1 root root 26 Nov 1 23:26 nginx -> /application/nginx-1.10.2/
drwxr-xr-x 11 root root 4096 Nov 1 23:26 nginx-1.10.2
二、將定製好的rpm包傳到yum倉庫指定目錄下,進行yum安裝
一、打包的軟件要是絕對路徑
二、不能打包軟鏈接路徑
三、打包時軟件不能是運行狀態
推薦博客:http://blog.oldboyedu.com/category/automatic-operation/automatic-deployment/