1. 程式人生 > 實用技巧 >rpm包管理

rpm包管理

CentOS系統上程式rpm包管理:

安裝、升級、解除安裝、查詢、檢驗


通過rpm命令完成


安裝:

rpm {-i|--install} [install-options] PACKAGE_FILE1...


-h: hash,以#來表示安裝進度;

-v, --verbose:顯示安裝過程中的詳細資訊;

-vv:

-vvv:


安裝時常用的組合: -ivh, -ivvh


--test:不執行真正的安裝過程,而僅報告依賴關係及衝突資訊等;


wKioL1UuUyuzIj-yAAHkdDVV1V8788.jpg


忽略依賴關係:

副作用:能安裝成功,但未必能成功執行;


--nodeps


覆蓋安裝:重新安裝並覆蓋原有的檔案

--replacepkgs


強制安裝:

--force


升級:


rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

-U: 升級或安裝


rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

-F:升級


組合:-Uvh, -Fvh


--test

--nodeps

--force

--oldpackage:降級到舊版本


移除已經安裝的程式包


rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...


簡單用法:rpm -e PACKAGE_NAME...


--nodeps:忽略依賴關係;

--test: 測試解除安裝;dry-run模式;

--allmatches: 如果一個程式包同時安裝多個版本,則此選項一次全部解除安裝之



rpm {-q|--query} [select-options] [query-options]


[select-options]:

1、查詢某包或某些包是否安裝:

rpm -q PACKAGE_NAME...

wKiom1UuW1XwuzO4AABm9VwkxLQ010.jpg

2、查詢已經安裝的所有包:

rpm -qa

wKiom1UuXEbSgToAAAMz02P_fgg809.jpg

3、查詢某檔案是由哪個包安裝生成:

rpm -qf /PATH/TO/SOMEFILE


4、查詢尚未安裝的包檔案的相關資訊

-p

# rpm -qpi PACKAGE_FILE

wKiom1UuWrfgiTjmAAJrGgdSpcY031.jpg



[query-options]:

1、查詢某包的簡要說明資訊:

rpm -qi PACKAGE_NAME

wKioL1UuXhOC9kTVAAILwv1VY1c730.jpg

2、查詢某包安裝生成的檔案列表:

rpm -ql PACKAGE_NAME

wKioL1UuXpPR9A1GAAHCxWhEC6U552.jpg

3、查詢某包安裝完成後生成的所有配置檔案:

rpm -qc PACKAGE_NAME

wKiom1UuXuPQaAJ3AAEvXFYQb70521.jpg

4、查詢某包安裝完成後生成的所有幫助檔案:

rpm -qd PACKAGE_NAME


5、檢視某包製作時隨版本變化的changelog資訊:

rpm -q --changelog PACKAGE_NAME

wKiom1UuYBai09wWAALR0v_osoM041.jpg

6、查詢某包提供的capabilities:

rpm -q --provides PACKAGE_NAME

wKioL1UuYjrjDii1AAClJqv-T98988.jpg

7、查詢某包所依賴的capabilities:

rpm -q --requires PACKAGE_NAME

wKioL1UuYrDTiD1MAAKrcU0GMz4123.jpg

8、查詢某包安裝或解除安裝時執行指令碼:

rpm -q --scripts PACKAGE_NAME

[[email protected]~]#rpm-q--scriptsnginx
preinstallscriptlet(using/bin/sh):
#Addthe"nginx"user
getentgroupnginx>/dev/null||groupadd-rnginx
getentpasswdnginx>/dev/null||\
useradd-r-gnginx-s/sbin/nologin\
-d/var/cache/nginx-c"nginxuser"nginx
exit0
postinstallscriptlet(using/bin/sh):
#Registerthenginxservice
if[$1-eq1];then
/sbin/chkconfig--addnginx
#printsiteinfo
cat<<BANNER
----------------------------------------------------------------------

Thanksforusingnginx!

Pleasefindtheofficialdocumentationfornginxhere:
*http://nginx.org/en/docs/

Commercialsubscriptionsfornginxareavailableon:
*http://nginx.com/products/

----------------------------------------------------------------------
BANNER

#Touchandsetpermisionsondefaultlogfilesoninstallation

if[-d/var/log/nginx];then
if[!-e/var/log/nginx/access.log];then
touch/var/log/nginx/access.log
/bin/chmod640/var/log/nginx/access.log
/bin/chownnginx:adm/var/log/nginx/access.log
fi

if[!-e/var/log/nginx/error.log];then
touch/var/log/nginx/error.log
/bin/chmod640/var/log/nginx/error.log
/bin/chownnginx:adm/var/log/nginx/error.log
fi
fi
fi
preuninstallscriptlet(using/bin/sh):
if[$1-eq0];then
/sbin/servicenginxstop>/dev/null2>&1
/sbin/chkconfig--delnginx
fi
postuninstallscriptlet(using/bin/sh):
if[$1-ge1];then
/sbin/servicenginxstatus>/dev/null2>&1||exit0
/sbin/servicenginxupgrade>/dev/null2>&1||echo\
"Binaryupgradefailed,pleasechecknginx'serror.log"
fi
[[email protected]~]#










轉載於:https://blog.51cto.com/987665432/1633102