linux rpm卸載參數

來源:互聯網
上載者:User

rpm卸載參數--test : 卸載測試 --nodeps : 不檢查依賴 --noscripts : 不執行指令碼程式 --notriggers : 不執行觸發程式 --justdb : 僅修改資料庫 --force 強制 
RPM卸載軟體包,並不是簡單地將原來安裝的檔案逐個刪除,那樣做的話,可能會出現這樣或那樣的問題。如,A軟體包依靠B軟體包做某些工作,若B軟體包卸載了,則A軟體包就不能正常運行了。RPM為使用者安全考慮,會做某些檢查,儘可能排除出錯的情況。    
RPM在卸載軟體包時,分步驟進行如下操作:    
1. 檢查依賴(Denpendency)    
檢查依賴的目的,在於確保當前沒有任何軟體包依賴於當前要卸載的軟體包。    
2. 執行卸載前觸發指令碼程式(Triggerun)    
3. 執行卸載前指令碼程式(Preuninstall)    
本程式為軟體包製作者設定,完成卸載前的一些工作,具體如,要卸載的軟體包中某個    
程式當前正在運行時,指令碼程式必須殺掉它,否則無法正確卸載。    
4. 檢查設定檔(Configfiles)    
RPM卸載軟體包前會檢查包中的設定檔是否修改了,如果修改了,RPM要換個名字儲存    
該檔案,檔案名稱一般是“原檔案名稱+.rpmsave”。(這是RPM軟體包管理的特色之一)    
5. 真正卸載    
即按照軟體包中的檔案清單,將檔案逐個刪除。要注意的是,如果其中有檔案屬於別的    
軟體包(即兩個軟體包擁有一個名字相同的檔案),則RPM並不刪除。    
6. 執行卸載後指令碼程式(Postuninstall)    
本程式主要是完成卸載的善後工作,如將系統設定檔inetd.conf修改一下,去掉安裝    
時添加的東西等等。    
7. 更新RPM資料庫    
卸載後,RPM刪除該軟體包在資料庫中的所有資訊。    
8. 執行卸載後觸發指令碼程式(Triggerpostun)    
命令格式    
rpm -e [卸載選項1 卸載選項2...] [軟體包標識1 軟體包標識2...]   
注: 也可使用--erase代替-e,效果相同。    
軟體包標識   
對於已安裝的軟體包,RPM使用如下格式來唯一標識它:    
Name[-Subname]-Version-Release   
其中: Name: 指軟體名;   
Subname : 本項可選,指軟體包子包的名字;   
Version : 指軟體版本號碼。注意:其中不能含減號(-)字元;   
Release : 指軟體釋出號。   
例如: 包裹檔案file-3.26-6.i386.rpm安裝後,其軟體包標識為file-3.26-6。可以用此標識卸載,查詢,校正該軟體包。在命令列上輸 入軟體包標識時,可以寫全,也可以採用簡寫的方式。如file-3.26-6,可僅輸入file,或file-3.26,或輸全。又如: 帶有子包的軟體包標識XFree86-devel-3.3.6-6,可僅輸入XFree86-devel,或XFree86-devel-3.3.6,還 可完全輸入。    
注意: 軟體包標識是大小寫敏感的,即大寫字母與小寫字母表示不同的涵義。如bash-2.03-10標識不能輸作Bash-2.03-10,也不能輸作bAsh-2.03-10等等。    
下面對指定用選項做些解釋:    
1. --test : 卸載測試    
RPM的卸載測試做些什麼?主要是檢查依賴關係,確保系統中沒有軟體包依賴於要卸載的軟體包。如果還有軟體包依賴要卸載的軟體包,則RPM會提示依賴關係將中斷的錯誤,例如:    
# 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   
#   
當然,我們通過瀏覽卸載測試時輸出的調試資訊就知道得更清楚了。    
# 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   
注: 本例進行file包的卸載測試,輸出資訊送管道交nl列出行號,現逐行解釋。(行號後以D:開始的行輸出的為調試資訊)    
第1行: 開啟/var/lib/rpm目錄下的RPM資料庫;    
第2行: 取已安裝檔案系統列表;    
第3行: 執行卸載前觸發指令碼程式;    
第4行: 這一行是卸載前觸發指令碼程式的執行結果;    
第5行: RPM提示將要刪除檔案,其中test=1表明為卸載測試,並非真正刪除;    
第6-9行: 顯示各檔案的執行操作--刪除;    
第10行: 執行卸載後觸發指令碼程式;    
第11行: 本行是卸載後觸發指令碼程式的執行結果; 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.