
RPM包管理機制
常見的軟體封包類型
常見的軟體
nessus rpm 安裝_05:RPM軟體包管理、Yum軟體包倉庫、指令補充
RPM的含義
• RPM Package Manager
由紅帽公司提出,RedHat、SUSE等系列采用
建立集中資料庫,記錄軟體包安裝/解除安裝等變化資訊,分析軟體包依賴關系
• RPM封包件名特征
– 軟體名-版本資訊.作業系統.硬體架構.rpm
firefox-52.7.0-1.el7.centos.x86_64.rpm
常見安裝位置
- RPM包的一般安裝位置(分散)
檔案類别 | 預設安裝位置 |
---|---|
普通執行程式 | /usr/bin/ 、/bin/ |
伺服器程式、管理工具 | /usr/sbin/ 、/sbin/ |
配置檔案 | /etc/ 、/etc/軟體名/ |
日志檔案 | /var/log/、/var/log/軟體名/ |
程式文檔、man手冊頁 | /usr/share/doc/ 、/usr/share/man/ |
查詢軟體資訊
查詢已安裝的軟體
-
查詢已安裝的RPM軟體包的資訊
-格式:rpm -q[子選項] [軟體名稱]
- 常用的子選項
-a : 列出已安裝的所有軟體包
-i : 檢視指定軟體的詳細資訊
-l : 檢視指定軟體的檔案安裝清單
确認軟體包的安裝情況
]# rpm -qa #目前系統中所有已安裝的軟體包]# rpm -q firefox #檢視firefox是否安裝firefox-52.7.0-1.el7.centos.x86_64]# rpm -q httpd 未安裝軟體包 httpd]# rpm -q bashbash-4.2.46-30.el7.x86_64
了解軟體包在詳細安裝資訊
]# rpm -qi firefox #查詢軟體資訊]# rpm -ql firefox #查詢軟體安裝了哪些内容(安裝清單)]# rpm -ql firefox | less
查詢某個目錄/檔案是哪個RPM包帶來的– 格式:rpm -qf [檔案路徑]…– 即使目标檔案被删除,也可以查詢
[[email protected] ~]# which vim #查詢指令對應的程式檔案/usr/bin/vim[[email protected] ~]# rpm -qf /usr/bin/vimvim-enhanced-7.4.160-4.el7.x86_64[[email protected] ~]# rpm -q vim-enhancedvim-enhanced-7.4.160-4.el7.x86_64
查詢未安裝軟體包
格式:rpm -q [子選項] [RPM 封包件
常用的子選項
-pi: 檢視指定軟體的詳細資訊
-pl: 檢視指定軟體的檔案安裝清單
]# rpm -q vsftpd #查詢vsftpd軟體是否安裝未安裝軟體包 vsftpd]# ls /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
查詢軟體包的安裝清單:
]# rpm -qpl /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm查詢軟體包資訊]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
導入紅帽簽名資訊(了解)
]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7查詢軟體包資訊]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
安裝/解除安裝軟體包
安裝
-
安裝RPM軟體
-格式:rpm -i RPM封包件
-
輔助選項
– -v:顯示細節資訊
– -h:以#号顯示安裝進度
– --force:強制安裝、覆寫安裝
– --test:測試安裝,不做真實安裝動作
]# rpm -q vsftpd #查詢目前的系統是否安裝了該軟體未安裝軟體包 vsftpd]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm]# rpm -q vsftpd #查詢目前的系統是否安裝了該軟體vsftpd-3.0.2-22.el7.x86_64]# rpm -e vsftpd #解除安裝軟體]# rpm -q vsftpd #查詢目前的系統是否安裝了該軟體未安裝軟體包 vsftpd
--force:強制安裝、覆寫安裝
]# which hostname/usr/bin/hostname]# rm -rf /usr/bin/hostname ]# hostnamebash: hostname: 未找到指令...]# rpm -qf /usr/bin/hostname #檢視由哪個軟體包産生hostname-3.13-3.el7.x86_64]# rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm
解決依賴關系
– 先安裝/解除安裝要求的包
如果RPM包齊全但比較多,可以用通配符 *
• 忽略依賴關系(不推薦)
– 可能會導緻軟體運作異常
– 輔助選項 --nodeps
常見依賴關系的報錯:
[[email protected] ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-61.el7.x86_64.rpm錯誤:依賴檢測失敗:bind = 32:9.9.4-61.el7 被 bind-chroot-32:9.9.4-61.el7.x86_64 需要
解除安裝
-
解除安裝RPM軟體
-格式 :rpm -e 軟體名.. ..
]# rpm -e vsftpd]# rpm -q vsftpd未安裝軟體包 vsftpd
建構Yum軟體包倉庫
作用:自動解決依賴關系安裝軟體
服務:自動解決依賴關系安裝軟體
服務端(本機): 1.衆多的軟體 2.倉庫資料檔案(repodata)
3.FTP協定 或 http 協定
本地Yum倉庫:服務端需要有CD光牒内容即可
用戶端(本機):指定服務端位置
– 倉庫配置:/etc/yum.repos.d/*.repo
– 錯誤的檔案會影響正确的檔案
用戶端檔案配置内容:
– [源名稱] :自定義名稱,具有唯一性
– name:本軟體源的描述字串
– baseurl:指定YUM服務端的URL位址
– enabled:是否啟用此頻道
– gpgcheck:是否驗證待安裝的RPM包
– gpgkey:用于RPM軟體包驗證的密鑰檔案
完整示例:
]# vim /etc/yum.repos.d/mydvd.repo[nsd2008]name=hahaxixibaseurl=file:///mntenabled=1gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7]# ls /etc/yum.repos.d/]# mkdir /etc/yum.repos.d/bak]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak]# ls /etc/yum.repos.d/bak]# vim /etc/yum.repos.d/mydvd.repo[nsd2008] #倉庫的名稱name=hahaxixi #倉庫描述資訊baseurl=file:///mnt #指定服務端位置file://表示本地為服務端enabled=1 #本檔案啟用gpgcheck=0 #不檢測紅帽簽名]# yum repolist #列出倉庫資訊
總結:本地Yum倉庫建構方法
1.服務端:顯示CD光牒的内容,挂載光驅裝置
2.用戶端:書寫用戶端配置檔案,指定服務端位置
3.執行流程: yum指令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt
Yum的使用
安裝軟體
[[email protected] ~]# yum -y install httpd[[email protected] ~]# rpm -q httpd[[email protected] ~]# yum -y install bind-chroot[[email protected] ~]# rpm -q bind-chroot[[email protected] ~]# yum -y install sssd[[email protected] ~]# rpm -q sssd[[email protected] ~]# yum -y install gcc[[email protected] ~]# rpm -q gcc[[email protected] ~]# yum -y install xorg-x11-apps[[email protected] ~]# rpm -q xorg-x11-apps[[email protected] ~]# rpm -ql xorg-x11-apps | less[[email protected] ~]# xeyes
解除安裝軟體
[[email protected] ~]# yum remove gcc[[email protected] ~]# yum remove httpd
查詢
[[email protected] ~]# yum list ftp #查詢倉庫是否有ftp軟體可安裝的軟體包 #表示目前系統沒有安裝該軟體ftp.x86_64 0.17-67.el7 nsd2008[[email protected] ~]# yum list httpd[[email protected] ~]# yum search ftp #包含ftp就比對]# yum provides /usr/bin/xeyes ]# yum provides /etc/passwd #倉庫中那個軟體包産生該檔案
清空緩存
[[email protected] ~]# yum clean all[[email protected] ~]# yum repolist
指令補充
擷取指令幫助
方式一:指令 --help
[[email protected] ~]# cat --help
方式二:man 指令
[[email protected] ~]# man cat #按q退出[[email protected] ~]# man passwd #顯示passwd指令幫助[[email protected] ~]# man 5 passwd
曆史指令
管理/調用曾經執行過的指令
– history:檢視曆史指令清單
– history -c:清空曆史指令
– !n:執行指令曆史中的第n條指令
– !str:執行最近一次以str開頭的曆史指令
[[email protected] ~]# vim /etc/profileHISTSIZE=1000 #預設記錄1000條[[email protected] ~]# history #顯示曆史指令清單[[email protected] ~]# history -c #清空曆史指令[[email protected] ~]# history [[email protected] ~]# cat /etc/redhat-release[[email protected] ~]# ls /root[[email protected] ~]# history[[email protected] ~]# !cat #指定最近一條以cat開頭的曆史指令[[email protected] ~]# !ls #指定最近一條以ls開頭的曆史指令
du, 統計檔案的占用空間
– du [選項]... [目錄或檔案]...
– -s:隻統計每個參數所占用的總空間大小
– -h:提供易讀容量機關(K、M等)
[[email protected] ~]# du -sh /root[[email protected] ~]# du -sh /etc[[email protected] ~]# du -sh /
date,檢視/調整系統日期時間
– date +%F、date +%R
– date +"%Y-%m-%d %H:%M:%S"
– date -s "yyyy-mm-dd HH:MM:SS"
]# date]# date -s "2008-9-6 11:11:11" #修改系統時間]# date]# date -s "2020-9-5 15:37:11" ]# date[[email protected] ~]# date +%Y #顯示年[[email protected] ~]# date +%m #顯示月[[email protected] ~]# date +%d #顯示日期[[email protected] ~]# date +%H #顯示時[[email protected] ~]# date +%M #顯示分[[email protected] ~]# date +%S #顯示秒[[email protected] ~]# date +%F #顯示年-月-日[[email protected] ~]# date +%R #顯示時:分
制作連接配接(連結)檔案(制作快捷方式)
格式:ln -s /路徑/源資料 /路徑/快捷方式的名稱 #軟連接配接
]# ln -s /etc/sysconfig/network-scripts/ /ns]# ls /]# ls -l /ns #檢視快捷方式的資訊]# touch /ns/haha.txt]# touch /ns/maohehaozi.txt]# touch /ns/shukehebeita.txt]# ls /etc/sysconfig/network-scripts/
軟連接配接優勢:可以針對目錄與檔案制作快捷方式,支援跨分區
軟連接配接缺點:源資料消失,快捷方式失效
格式:ln /路徑/源資料 /路徑/快捷方式的名稱 #硬連結
硬連結優勢:源資料消失,快捷方式仍然有效
硬連結缺點:隻能針對檔案制作快捷方式,不支援支援跨分區
[[email protected] ~]# rm -rf /opt/*[[email protected] ~]# echo 123 > /opt/A.txt[[email protected] ~]# ln -s /opt/A.txt /opt/B.txt #軟連接配接[[email protected] ~]# ls /opt/[[email protected] ~]# ln /opt/A.txt /opt/C.txt #硬連結[[email protected] ~]# ls /opt/[[email protected] ~]# cat /opt/B.txt[[email protected] ~]# cat /opt/C.txt[[email protected] ~]# rm -rf /opt/A.txt[[email protected] ~]# ls /opt/[[email protected] ~]# cat /opt/B.txt #軟連接配接失效cat: /opt/B.txt: 沒有那個檔案或目錄[[email protected] ~]# cat /opt/C.txt #硬連結仍然有效
zip歸檔工具,跨平台
• 歸檔+壓縮操作: zip [-r] 備份檔案.zip 被歸檔的文檔...
[-r] 被歸檔的資料有目錄,必須加上此選項 ]# zip -r /opt/abc.zip /etc/passwd /home]# ls /opt/
• 釋放歸檔+解壓操作: unzip 備份檔案.zip [-d 目标檔案夾]
]# mkdir /nsd20]# unzip /opt/abc.zip -d /nsd20]# ls /nsd20]# ls /nsd20/etc/]# ls /nsd20/home/