定製化rpm包及本地yum倉庫搭建

来源:http://www.cnblogs.com/Star-Haitian/archive/2017/12/10/8017644.html
-Advertisement-
Play Games

為方便本地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/
 
 
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • You'll have to perform a number of steps that are normally taken of automatically when you use the toolbox. First and foremost, you have to run the Ax... ...
  • 網關的作用之一,就是有統一的數據出入口,基於這個功能,我們可以在網關上配置監控,從而把所有web服務的請求應答基本數據捕獲並展顯出來。 ...
  • 一篇,我們創建了OcelotGateway網關項目,DemoAAPI項目,DemoBAPI項目,為了驗證用戶並分發Token,現在還需要添加AuthenticationAPI項目,也是asp.net core web api項目,整體思路是,當用戶首次請求(Request)時web服務,網關會判斷本... ...
  • Ocelot是一個.net core框架下的網關的開源項目,下圖是官方給出的基礎實現圖,即把後臺的多個服務統一到網關處,前端應用:桌面端,web端,app端都只用訪問網關即可。 ...
  • 前幾天Insus.NET有寫過一篇《從字元串數組中把數字的元素找出來》http://www.cnblogs.com/insus/p/8001026.html 和它的延伸篇《C# yield關鍵詞使用》http://www.cnblogs.com/insus/p/8003809.html 那是寫一個類 ...
  • ASP.NET Core應用程式發佈linux在shell中運行是正常的。可一但shell關閉網站也就關閉了,所以要配置守護進程, 用的是Supervisor,本文主要記錄配置的過程和過程遇到的問題 安裝Supervisor 1 yum install python-setuptools 2 eas ...
  • 1.新建虛擬機時,自己下載的是centos64系統,選擇系統時,預設選擇centos,而未選擇centos64位,導致犯了一個低級錯誤,導致後面網卡安裝一直有問題 2.查看ip命令與centos5.x和centos6.x版本,皆不同,改為ip addr 3.配置網卡時,必須將網卡設為開機自動激活 希 ...
  • 在學習Elasticsearch的過程中,必不可少需要通過一些工具查看es的運行狀態以及數據。如果都是通過rest請求,未免太過麻煩,而且也不夠人性化。此時,head可以完美的幫助你快速學習和使用Elasticsearch。 基礎環境 Elasticsearch集群搭建請參考前一篇文章 http:/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...