linux rpm卸載參數(shù)
發(fā)布日期:2022-08-02 13:27 | 文章來(lái)源:源碼之家
rpm卸載參數(shù)--test : 卸載測(cè)試 --nodeps : 不檢查依賴 --noscripts : 不執(zhí)行腳本程序 --notriggers : 不執(zhí)行觸發(fā)程序 --justdb : 僅修改數(shù)據(jù)庫(kù) --force 強(qiáng)制
RPM卸載軟件包,并不是簡(jiǎn)單地將原來(lái)安裝的文件逐個(gè)刪除,那樣做的話,可能會(huì)出現(xiàn)這樣或那樣的問(wèn)題。如,A軟件包依靠B軟件包做某些工作,若B軟件包卸載了,則A軟件包就不能正常運(yùn)行了。RPM為用戶安全考慮,會(huì)做某些檢查,盡可能排除出錯(cuò)的情況。
RPM在卸載軟件包時(shí),分步驟進(jìn)行如下操作:
1. 檢查依賴(Denpendency)
檢查依賴的目的,在于確保當(dāng)前沒(méi)有任何軟件包依賴于當(dāng)前要卸載的軟件包。
2. 執(zhí)行卸載前觸發(fā)腳本程序(Triggerun)
3. 執(zhí)行卸載前腳本程序(Preuninstall)
本程序?yàn)檐浖谱髡咴O(shè)定,完成卸載前的一些工作,具體如,要卸載的軟件包中某個(gè)
程序當(dāng)前正在運(yùn)行時(shí),腳本程序必須殺掉它,否則無(wú)法正確卸載。
4. 檢查配置文件(Configfiles)
RPM卸載軟件包前會(huì)檢查包中的配置文件是否修改了,如果修改了,RPM要換個(gè)名字保存
該文件,文件名一般是“原文件名+.rpmsave”。(這是RPM軟件包管理的特色之一)
5. 真正卸載
即按照軟件包中的文件列表,將文件逐個(gè)刪除。要注意的是,如果其中有文件屬于別的
軟件包(即兩個(gè)軟件包擁有一個(gè)名字相同的文件),則RPM并不刪除。
6. 執(zhí)行卸載后腳本程序(Postuninstall)
本程序主要是完成卸載的善后工作,如將系統(tǒng)配置文件inetd.conf修改一下,去掉安裝
時(shí)添加的東西等等。
7. 更新RPM數(shù)據(jù)庫(kù)
卸載后,RPM刪除該軟件包在數(shù)據(jù)庫(kù)中的所有信息。
8. 執(zhí)行卸載后觸發(fā)腳本程序(Triggerpostun)
命令格式
rpm -e [卸載選項(xiàng)1 卸載選項(xiàng)2...] [軟件包標(biāo)識(shí)1 軟件包標(biāo)識(shí)2...]
注: 也可使用--erase代替-e,效果相同。
軟件包標(biāo)識(shí)
對(duì)于已安裝的軟件包,RPM使用如下格式來(lái)唯一標(biāo)識(shí)它:
Name[-Subname]-Version-Release
其中: Name: 指軟件名;
Subname : 本項(xiàng)可選,指軟件包子包的名字;
Version : 指軟件版本號(hào)。注意:其中不能含減號(hào)(-)字符;
Release : 指軟件釋出號(hào)。
例如: 包裹文件file-3.26-6.i386.rpm安裝后,其軟件包標(biāo)識(shí)為file-3.26-6。可以用此標(biāo)識(shí)卸載,查詢,校驗(yàn)該軟件包。在命令行上輸入軟件包標(biāo)識(shí)時(shí),可以寫全,也可以采用簡(jiǎn)寫的方式。如file-3.26-6,可僅輸入file,或file-3.26,或輸全。又如: 帶有子包的軟件包標(biāo)識(shí)XFree86-devel-3.3.6-6,可僅輸入XFree86-devel,或XFree86-devel-3.3.6,還可完全輸入。
注意: 軟件包標(biāo)識(shí)是大小寫敏感的,即大寫字母與小寫字母表示不同的涵義。如bash-2.03-10標(biāo)識(shí)不能輸作Bash-2.03-10,也不能輸作bAsh-2.03-10等等。
下面對(duì)指定用選項(xiàng)做些解釋:
1. --test : 卸載測(cè)試
RPM的卸載測(cè)試做些什么?主要是檢查依賴關(guān)系,確保系統(tǒng)中沒(méi)有軟件包依賴于要卸載的軟件包。如果還有軟件包依賴要卸載的軟件包,則RPM會(huì)提示依賴關(guān)系將中斷的錯(cuò)誤,例如:
# rpm -e --test mktemp
error: removing these packages would break dependencies:
mktemp is needed by autoconf-2.13-5
mktemp is needed by dev-2.7.7-4BP
mktemp is needed by groff-1.11a-10BP
mktemp is needed by gzip-1.2.4-15BP
mktemp is needed by initscripts-4.16-3BP
mktemp is needed by metamail-2.7-21BP
mktemp is needed by rpm-3.0.3-4BP
mktemp is needed by autofs-3.1.3-2
/bin/mktemp is needed by apache-1.3.12-5BP
/bin/mktemp is needed by linuxconf-1.16r1.3-4BP
#
當(dāng)然,我們通過(guò)瀏覽卸載測(cè)試時(shí)輸出的調(diào)試信息就知道得更清楚了。
# rpm -e --test -vv file | nl
1 D: opening database mode 0x0 in //var/lib/rpm/
2 D: getting list of mounted filesystems
3 + echo triggeruninstall
4 triggeruninstall
5 D: will remove files test = 1
6 D:file: /usr/share/magic action: remove
7 D:file: /usr/man/man4/magic.4 action: remove
8 D:file: /usr/man/man1/file.1 action: remove
9 D:file: /usr/bin/file action: remove
10 + echo triggerpostuninstall
11 triggerpostuninstall
12 D: removing database entry
注: 本例進(jìn)行file包的卸載測(cè)試,輸出信息送管道交nl列出行號(hào),現(xiàn)逐行解釋。(行號(hào)后以D:開(kāi)始的行輸出的為調(diào)試信息)
第1行: 打開(kāi)/var/lib/rpm目錄下的RPM數(shù)據(jù)庫(kù);
第2行: 取已安裝文件系統(tǒng)列表;
第3行: 執(zhí)行卸載前觸發(fā)腳本程序;
第4行: 這一行是卸載前觸發(fā)腳本程序的執(zhí)行結(jié)果;
第5行: RPM提示將要?jiǎng)h除文件,其中test=1表明為卸載測(cè)試,并非真正刪除;
第6-9行: 顯示各文件的執(zhí)行操作--刪除;
第10行: 執(zhí)行卸載后觸發(fā)腳本程序;
第11行: 本行是卸載后觸發(fā)腳本程序的執(zhí)行結(jié)果;
RPM卸載軟件包,并不是簡(jiǎn)單地將原來(lái)安裝的文件逐個(gè)刪除,那樣做的話,可能會(huì)出現(xiàn)這樣或那樣的問(wèn)題。如,A軟件包依靠B軟件包做某些工作,若B軟件包卸載了,則A軟件包就不能正常運(yùn)行了。RPM為用戶安全考慮,會(huì)做某些檢查,盡可能排除出錯(cuò)的情況。
RPM在卸載軟件包時(shí),分步驟進(jìn)行如下操作:
1. 檢查依賴(Denpendency)
檢查依賴的目的,在于確保當(dāng)前沒(méi)有任何軟件包依賴于當(dāng)前要卸載的軟件包。
2. 執(zhí)行卸載前觸發(fā)腳本程序(Triggerun)
3. 執(zhí)行卸載前腳本程序(Preuninstall)
本程序?yàn)檐浖谱髡咴O(shè)定,完成卸載前的一些工作,具體如,要卸載的軟件包中某個(gè)
程序當(dāng)前正在運(yùn)行時(shí),腳本程序必須殺掉它,否則無(wú)法正確卸載。
4. 檢查配置文件(Configfiles)
RPM卸載軟件包前會(huì)檢查包中的配置文件是否修改了,如果修改了,RPM要換個(gè)名字保存
該文件,文件名一般是“原文件名+.rpmsave”。(這是RPM軟件包管理的特色之一)
5. 真正卸載
即按照軟件包中的文件列表,將文件逐個(gè)刪除。要注意的是,如果其中有文件屬于別的
軟件包(即兩個(gè)軟件包擁有一個(gè)名字相同的文件),則RPM并不刪除。
6. 執(zhí)行卸載后腳本程序(Postuninstall)
本程序主要是完成卸載的善后工作,如將系統(tǒng)配置文件inetd.conf修改一下,去掉安裝
時(shí)添加的東西等等。
7. 更新RPM數(shù)據(jù)庫(kù)
卸載后,RPM刪除該軟件包在數(shù)據(jù)庫(kù)中的所有信息。
8. 執(zhí)行卸載后觸發(fā)腳本程序(Triggerpostun)
命令格式
rpm -e [卸載選項(xiàng)1 卸載選項(xiàng)2...] [軟件包標(biāo)識(shí)1 軟件包標(biāo)識(shí)2...]
注: 也可使用--erase代替-e,效果相同。
軟件包標(biāo)識(shí)
對(duì)于已安裝的軟件包,RPM使用如下格式來(lái)唯一標(biāo)識(shí)它:
Name[-Subname]-Version-Release
其中: Name: 指軟件名;
Subname : 本項(xiàng)可選,指軟件包子包的名字;
Version : 指軟件版本號(hào)。注意:其中不能含減號(hào)(-)字符;
Release : 指軟件釋出號(hào)。
例如: 包裹文件file-3.26-6.i386.rpm安裝后,其軟件包標(biāo)識(shí)為file-3.26-6。可以用此標(biāo)識(shí)卸載,查詢,校驗(yàn)該軟件包。在命令行上輸入軟件包標(biāo)識(shí)時(shí),可以寫全,也可以采用簡(jiǎn)寫的方式。如file-3.26-6,可僅輸入file,或file-3.26,或輸全。又如: 帶有子包的軟件包標(biāo)識(shí)XFree86-devel-3.3.6-6,可僅輸入XFree86-devel,或XFree86-devel-3.3.6,還可完全輸入。
注意: 軟件包標(biāo)識(shí)是大小寫敏感的,即大寫字母與小寫字母表示不同的涵義。如bash-2.03-10標(biāo)識(shí)不能輸作Bash-2.03-10,也不能輸作bAsh-2.03-10等等。
下面對(duì)指定用選項(xiàng)做些解釋:
1. --test : 卸載測(cè)試
RPM的卸載測(cè)試做些什么?主要是檢查依賴關(guān)系,確保系統(tǒng)中沒(méi)有軟件包依賴于要卸載的軟件包。如果還有軟件包依賴要卸載的軟件包,則RPM會(huì)提示依賴關(guān)系將中斷的錯(cuò)誤,例如:
# rpm -e --test mktemp
error: removing these packages would break dependencies:
mktemp is needed by autoconf-2.13-5
mktemp is needed by dev-2.7.7-4BP
mktemp is needed by groff-1.11a-10BP
mktemp is needed by gzip-1.2.4-15BP
mktemp is needed by initscripts-4.16-3BP
mktemp is needed by metamail-2.7-21BP
mktemp is needed by rpm-3.0.3-4BP
mktemp is needed by autofs-3.1.3-2
/bin/mktemp is needed by apache-1.3.12-5BP
/bin/mktemp is needed by linuxconf-1.16r1.3-4BP
#
當(dāng)然,我們通過(guò)瀏覽卸載測(cè)試時(shí)輸出的調(diào)試信息就知道得更清楚了。
# rpm -e --test -vv file | nl
1 D: opening database mode 0x0 in //var/lib/rpm/
2 D: getting list of mounted filesystems
3 + echo triggeruninstall
4 triggeruninstall
5 D: will remove files test = 1
6 D:file: /usr/share/magic action: remove
7 D:file: /usr/man/man4/magic.4 action: remove
8 D:file: /usr/man/man1/file.1 action: remove
9 D:file: /usr/bin/file action: remove
10 + echo triggerpostuninstall
11 triggerpostuninstall
12 D: removing database entry
注: 本例進(jìn)行file包的卸載測(cè)試,輸出信息送管道交nl列出行號(hào),現(xiàn)逐行解釋。(行號(hào)后以D:開(kāi)始的行輸出的為調(diào)試信息)
第1行: 打開(kāi)/var/lib/rpm目錄下的RPM數(shù)據(jù)庫(kù);
第2行: 取已安裝文件系統(tǒng)列表;
第3行: 執(zhí)行卸載前觸發(fā)腳本程序;
第4行: 這一行是卸載前觸發(fā)腳本程序的執(zhí)行結(jié)果;
第5行: RPM提示將要?jiǎng)h除文件,其中test=1表明為卸載測(cè)試,并非真正刪除;
第6-9行: 顯示各文件的執(zhí)行操作--刪除;
第10行: 執(zhí)行卸載后觸發(fā)腳本程序;
第11行: 本行是卸載后觸發(fā)腳本程序的執(zhí)行結(jié)果;
上一頁(yè)12 下一頁(yè) 閱讀全文
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章