1. 程式人生 > >軟體包及yum倉庫建設

軟體包及yum倉庫建設

軟體包管理

程式包的來源
獲取程式包的途徑:
(1) 系統發版的光碟或官方的伺服器
CentOS映象:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
(2) 專案官方站點
(3) 第三方組織:
Fedora-EPEL:
Extra Packages for Enterprise Linux
Rpmforge:RHEL推薦,包很全
搜尋引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net


https://sourceforge.net/
(4) 自己製作
注意:第三方包建議要檢查其合法性
來源合法性,程式包的完整性

[install-options]
--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關係
--replacepkgs| replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
--noscripts:不執行程式包指令碼
%pre: 安裝前指令碼--nopre
%post: 安裝後腳本--nopost
%preun: 解除安裝前指令碼--nopreun
%postun: 解除安裝後腳本--nopostun

救援模式進入

getent +命令或者檔案或者使用者 看是否存在
例子 getent f1.txt 看f1是否存在

rpm -qpi 查詢還未安裝的包內的檔案
rpm -qi  查詢包的說資訊
rpm -q +命令名字 查詢命令版本號    
rpm -ql +tree  查詢tree包裡有什麼檔案
rpm -q tree &> /dev/null ||rpm -ivh /cdrom/Package/tree-1.6.0-10.el7.x86_64.rpm  查詢tree軟體是否安裝,如果沒有安裝則安裝檔案 
rpm -e +軟體名  解除安裝該軟體
rpm -upgrade 升級,一般情況下不用升級,直接解除安裝老版本安裝新版本
rpm --oldpackage 降級
rpm -ivh +軟體 + --force  強制安裝 
rpm -qa |
wc -l 查詢有多少個包

包校驗

包來源合法性驗正及完整性驗證
完整性驗證:SHA256
來源合法性驗證:RSA
公鑰加密
對稱加密:加密、解密使用同一金鑰
非對稱加密:金鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
匯入所需要公鑰

rpm -K|checksigrpmfile檢查包的完整性和簽名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光碟提供:RPM-GPG-KEY-CentOS-7
rpm -qa“gpg-pubkey*”

查詢CentOS-7的完整性和簽名

cat /misc/cd/RPM-GPG-KEY-CentOS-7  獲取centos7公鑰
rpm --import /misc/cd/RPM-GPG-KEY-CentOS-7  匯入公鑰到系統
rpm -K +軟體包 顯示出pgp md5 ok 查詢完整性和簽名

YUM

常用命令

yum install remove list info search groupinstall grouplist groupremove  history 
yum clean all 

yum server
yum repo 倉庫
包含*.rpm 包和 matadata 源資料(.rpm包需要的資料)
安裝檔案 yum install +包的名字,不用補全

yum倉庫建設************基於httpd服務的客戶端倉庫

新建一臺虛擬機器作為倉庫
進入虛擬機器輸入

cd /etc/yum.repo.d/
df      #查詢光碟掛載位置
ls /misc/
ls /misc/cd  #觸發光碟掛載到/misc/cd(神奇目錄)
df 
mkdir bak   
mv *.repo bak/      備份原來的repo
ls      然後看資料夾repodata在哪個目錄,就將其所在的目錄作為repo的路徑
ls /misc/cd 看到repodata在這個路徑,就將/misc/cd作為repo的路徑
vim base.repo
寫入
[base]
name=aliyun  或者bendiyuan  名字隨便
baseurl=file:///misc/cd/  (http://  https://  ftp://  file://)網路源用http,(如阿里 https://mirrors.aliyun.com/centos/7/os/x86_64/)(6.7通用版本阿里源https://mirrors.aliyun.com/centos/$releasever/$basearch )本地源用file  (******$releasever/$basearch***********$代表系統版本和架構)
gpgcheck=0                     忽略完整性檢查
wq儲存
repo本地包

yum倉庫建設***********基於httpd服務的伺服器倉庫

yum install httpd
cd /var/www/html
yum -ql httpd|grep service
systemctl start httpd    #瀏覽器輸入虛擬機器IP地址測試伺服器是否執行 http://192.168.221.129/
pwd 查詢是否在/var/www/html
echo 浩哥在此! > index.html # http://192.168.221.129/ https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ #使用清華源映象
/var/www/html
/var/www/html/centos/7/os/x86_64/
/var/www/html/centos/6/os/x86_64/
mkdir -pv centos/{6,7}/os/x86_64/  #建立目錄
 #在瀏覽器輸入http://192.168.221.129/centos/  即可看到和清華源映象一樣的目錄結構
mount /dev/sr0 /var/www/html/centos/7/os/x86_64/
進入http://192.168.221.129/centos/7/os/x86_64/  #可看到光碟映象已上傳
vim /etc/yum.repos.d/base.repo
寫入
[base]
name=centos
baseurl=file:///misc/cd/
#baseurl=http://192.168.221.129/centos/7/os/x86_6    IP地址非固定
gpgcheck=0
[epel]
name=EPEL
baseurl=https://mirrors.aliyun.com/centos/$releasever/$basearchl
gpgcheck=0
enabled=0
輸入wq儲存
yum repolist
yum clean all
systemctl start httpd 啟動服務

yum remove + 安裝包的名稱 解除安裝包
yum repolist 列出倉庫列表
yum grouplist 查詢包組
常用包組Development tools
yum groupinstall "Development tools"安裝包組
解除安裝多餘網絡卡