一、select語句
select語句在腳本中用于創建菜單,按數字順序排列的菜單項顯示在標準輸出上,并用PS3提示符,等待用戶輸入。用戶輸入菜單中的某個數字,執行相應的命令,并被保存在內置變量REPLY中。
用法:
select NAME [in WORDS … ;] do COMMANDS; done
注意:
select默認無限循環,因此,要配合break或ctrl+c退出循環,或配合exit退出腳本。
select可以與case配合使用
二、rpm
rpm(RedHat Package Manager)類似于windows中的“添加/刪除程序功能”,rpm執行安裝包分為二進制包和源代碼包,其中二進制包可以直接安裝在程序中,,而源代碼包將會由rpm自動編譯、安裝。源代碼包一般以src.rpm作為后綴。
安裝:
rpm {-i|–install} [INSTALL-OPTIONS] PACKAGE_FILE…
-v 詳細顯示
-vv 更加詳細顯示
-h 用#顯示程序包執行進度
[install-options]
–test: 測試安裝,但不真正執行安裝;dry run模式
–nodeps:忽略依賴關系
–replacepkgs | replacefiles
–nosignature: 不檢查來源合法性
–nodigest:不檢查包完整性
–noscipts:不執行程序包腳本片斷
%pre: 安裝前腳本; –nopre
%post: 安裝后腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載后腳本; –nopostun
升級
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則“升級”如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級”如果不存在舊版程序包,則不執行升級操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級
–force: 強行升級
注意:
(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此 ,對直接安裝新版本內核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本 的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而 把新版本的文件重命名(FILENAME.rpmnew)后保留
包查詢
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作;
–whatprovides CAPABILITY:查詢指定的CAPABILITY 由哪個包所提供
–whatrequires CAPABILITY:查詢指定的CAPABILITY被 哪個包所依賴
rpm2cpio 包文件|cpio –itv 預覽包內文件
rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件
[query-options]
–changelog:查詢rpm包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
–scripts:程序包自帶的腳本片斷
-R: 查詢指定的程序包所依賴的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [-noscripts] [–notriggers] [–test] PACKAGE_NAME …
包校驗
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
包來源合法性驗正及完整性驗正:
完整性驗正:SHA256
來源合法性驗正:RSA
公鑰加密:
對稱加密:加密、解密使用同一密鑰;
非對稱加密:密鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
導入所需要公鑰:
rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7 rpm -qa gpg-pubkey*
rpm數據庫
數據庫重建
/var/lib/rpm
rpm {–initdb|–rebuilddb}
initdb: 初始化 如果事先不存在數據庫,則新建之 否則,不執行任何操作
rebuilddb:重建 無論當前存在與否,直接重新創建數據庫
三、yum的配置
yum(Yellow dog Updater,Modifid)是linux中shell前端的軟件包管理器,基于rpm包管理,能夠從指定的服務器自動下載rpm包并且安裝,可以自動處理依賴性關系,并且依次安裝所有以來的軟體包。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令。
yum客戶端配置文件
/etc/yum.conf:為所有倉庫提供公共配置
/etc/yun.repos.d/*.repo:為倉庫的指向提供配置
倉庫指向定義:
[repositoryID] 軟件源名稱
namee=Some name for this repository 倉庫名稱
baseurl=url://path/to/repository/ 源鏡像地址
enabled={1|0} 是否啟用源
gpgcheck={1|0} 是否進行gpg的校驗下載的rpm包
gpgkey=URL 用于定義gpg校驗的密鑰
enablegroups={1|0}
failovermethod={roundrobin|priority}
默認為:roundrobin,意為隨機挑選鏡像服務器中的地址;
priorty,表示順序選擇地址
cost= 默認為1000
原創文章,作者:zhanghuanyu,如若轉載,請注明出處:http://www.www58058.com/37984
文章對rpm工具的常見用法和選項總結的很精細,也很用心,對于rpm包管理工具而言,其最重要的是查詢選項,這也是最豐富的地方,需要多加練習熟練掌握。