為方便本地yum的管理,一般都是在公司區域網內搭建本地yum倉庫,實現公司內部快速安裝常用軟體。 步驟如下: 1、搭建要實現本地yum管理的軟體,測試該軟體搭建成功與否; 2、定製rpm包及其相關依賴; 3、搭建本地yum源 4、配置客戶端yum,實現區域網取包安裝。 首先聲明:該本地yum倉庫中的 ...
為方便本地yum的管理,一般都是在公司區域網內搭建本地yum倉庫,實現公司內部快速安裝常用軟體。 步驟如下: 1、搭建要實現本地yum管理的軟體,測試該軟體搭建成功與否; 2、定製rpm包及其相關依賴; 3、搭建本地yum源 4、配置客戶端yum,實現區域網取包安裝。 首先聲明:該本地yum倉庫中的包要儘量全,不然有些定製包可能安裝不上。原因很簡單,該包原本就需要一些其他的依賴包,而你的本地倉庫沒有。
安裝nginx,測試安裝是否成功 |
1. #先保留平常下載下來的rpm包 |
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf |
這樣當我們yum安裝軟體的時候,文件就是被保存下來: /var/cache/yum/ |
#部署nginx,提供80埠服務 #安裝依賴包 |
yum install -y pcre-devel openssl-devel ; rpm -qa pcre-devel openssl-devel |
#下載nginx-10.0.2 |
mkdir /tmp/tools cd /tmp/tools/ wget -q http://nginx.org/download/nginx-1.10.2.tar.gz tar xf nginx-1.10.2.tar.gz cd nginx-1.10.2 mkdir /application |
#配置 |
./configure --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module --with-http_ssl_module |
#編譯 |
make && make install |
#做軟連接 |
ln -s /application/nginx-1.10.2 /application/nginx |
添加www用戶: |
useradd -u 789 www -s /sbin/nologin -M |
#啟動nginx進行測試 |
/applicaton/nginx/sbin/nginx lsof -i:80 |
關閉nginx 為定製rpm包做準備: |
pkill nginx |
#定製rpm包 ####下載工具及配置 |
FPM安裝 #fpm是ruby寫的,因此系統環境需要ruby,且ruby版本號大於1.8.5 |
#安裝ruby模塊 |
yum -y install ruby rubygems ruby-devel |
檢查安裝成功與否 |
rpm -qa ruby rubygems ruby-devel |
#添加阿裡雲的rubygems倉庫,外國的源太慢 |
gem sources -ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources |
#移除原生的Ruby倉庫 |
gem sources --remove http://rubygems.org/ http://rubygems.org/ removed from sources |
#安裝fpm #指定安裝fpm1.3.3版本的軟體,fpm這個工具升級很頻繁,而且在每次升級後會出現各種各樣的問題。但是老版本的fpm工具能夠滿足我們的需求,因此就用這個版本了。 #這裡一定要指定fpm的版本,不然會報錯,報錯原因可追溯到版本頻繁升級的問題導致。 |
gem install fpm -v 1.3.3 |
開始定製nginx 的rpm包 |
#創建nginx的rpm包要執行的腳本 |
cat > /server/scripts/nginx_rpm.sh << eof #!/bin/bash useradd -u 789 www -M -s /sbin/nologin ln -s /application/nginx-1.10.2/ /application/nginx eof |
#通過fpm命令打包rpm |
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/ |
#fpm相關命令說明 # fpm -h #查看命令的幫助,下麵對常用的參數進行簡單的說明 # -s:指定源類型 # -t:指定目標類型 # -n:指定名字 # -v:指定版本號 # -C:指定打包的相對路徑 # -d:指定依賴於哪些包 # -f:第二次打包時目錄下如果有同名安裝包存在,則覆蓋它 # -p:輸出的安裝包的目錄,不想放在當前目錄下就需要指定 # --post-install 軟體包安裝完成之後所要運行的腳本;同--after-install # --pre-install 軟體包安裝完成之前所要運行的腳本;同--before-install # --post-uninstall 軟體包卸載完成之後所要運行的腳本;同--after-remove # --pre-uninstall 軟體包卸載完成之前所要運行的腳本;同--before-remove |
#查看rpm包信息 |
rpm -qpi nginx-1.10.2-1.x86_64.rpm |
#查看rpm包內容 |
rpm -qpl nginx-1.10.2-1.x86_64.rpm |
#查看rpm的包依賴 |
rpm -qpR nginx-1.10.2-1.x86_64.rpm |
#查看rpm自帶的執行腳本,執行腳本不是以文件的形式存在rpm包中 |
rpm -qp --scripts nginx-1.10.2-1.x86_64.rpm |
創建本地yum倉庫 |
創建倉庫目錄 |
mkdir /application/yum/centos6/x86_64 -p |
將生成的nginx rpm包放到該目錄 |
mv nginx-1.10.2-1.x86_64.rpm /application/yum/centos6/x86_64/ |
安裝createrepo |
yum -y install createrepo |
初始化repodata索引文件 |
createrepo -pdo /application/yum/centos6/x86_64/ /application/yum/centos6/x86_64/ |
#修改nginx配置文件,讓它預設訪問瀏覽器找到/application/yum/centos6/x86_64/目錄 |
cat >/application/nginx/conf/nginx.conf<<EOF worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /application/yum/centos6/x86_64/; autoindex on; ##開啟目錄 index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } EOF |
檢查nginx配置問,啟動nginx: |
/application/nginx/sbin/nginx -t /application/nginx/sbin/nginx |
使用yum下載nginx依賴包,拷貝到本地yum源目錄: |
yumdownloader pcre-devel openssl-devel mv openssl* pcre* /application/yum/centos6/x86_64/ |
#每加入一個rpm包就要執行一下如下命令,用來更新索引 |
createrepo --update /application/yum/centos6/x86_64 |
配置客戶端 |
創建腳本 |
cat > /etc/yum.repos.d/local.repo << eof [local] name=Server baseurl=http://172.16.1.61 enable=1 gpgcheck=0 eof |
yum操作、清除緩存、重新建立緩存; |
yum clean all |
指定指定使用local源,此命令重啟linux系統失效: |
yum --enablerepo=local --disablerepo=base,extras,updates,epel list |
# 這條命令中的local名稱一定要對應local.repo中的[local]! #註意最下麵白色的文件列表 |
永久生效法: |
vi CentOS-Base.repo #在每一個啟動的源加上 enabled=0 #改為1就啟用,沒有此參數也是啟用。 |
安裝nginx |
yum install nginx |
但還有一種企業需求,說的更具體一點,平時大家yum安裝軟體都是從公網下載的,占用帶寬,因此在公司里搭建一個內網yum伺服器,但又考慮到如果yum軟體的資料庫文件repodata不一樣,就會有問題。因此我想到的解決方法就是直接使用公網yum源的repodata。 鏡像同步公網yum源 上游yum源必須要支持rsync協議,否則不能使用rsync進行同步。 http://mirrors.ustc.edu.cn/status/ CentOS官方標準源:rsync://mirrors.ustc.edu.cn/centos/ epel源:rsync://mirrors.ustc.edu.cn/epel/ 同步命令: # 使用rsync同步yum源,為了節省帶寬、磁碟和下載時間,我只同步了CentOS6的rpm包,這樣所有的rpm包只占用了21G,全部同步需要300G左右。 # 同步base源,小技巧,我們安裝系統的光碟鏡像含有部分rpm包,大概3G,這些就不用重新下載。 #創建四個目錄,用於同步公網yum源 mkdir -p /application/yum/centos/6/os/x86_64/ mkdir -p /application/yum/centos/6/extras/x86_64/ mkdir -p /application/yum/centos/6/updates/x86_64/ mkdir -p /application/yum/epel/6/x86_64/ #下麵四條命令,同時複製執行,就會開始同步官網yum源到本地。 1 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /application/yum/centos/6/os/x86_64/ 2 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /application/yum/centos/6/extras/x86_64/ 3 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /application/yum/centos/6/updates/x86_64/ 4 /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /application/yum/epel/6/x86_64/ |