上期已經介紹過了,軟體安裝的過程頗有一點複雜,但大致會有下列步驟:

1. 將程式解壓縮到使用者的暫存資料夾裡面

2. 將程式本體(全部組成物)複製到使用者的儲存媒體上(通常是硬碟機上的「C:\Program Files」資料夾裡面)

3. 將DLL(或是其他分享的程式庫)放置到「某處」,像是「C:\Program Files\Common Files」裡面

4. 寫入註冊資訊和設定檔

5. 建立程式群組、捷徑

6. 把暫存檔案刪除

那麼,要移除軟體,需要的步驟大抵類似,只是所做的是相反的事情:

1. 刪除儲存媒體上的檔案

2. 把共享元件刪除

3. 把註冊資訊和設定檔刪除

4. 把程式群組、捷徑刪除

天啊!聽起來真是容易啊!那會有什麼好研究的呢?

程式正在執行時無法移除

在開始進行移除軟體之前,各位讀者要先知道一個重要觀念:「開著的檔案,就不能被刪除(至少不能用正常、一般的方式刪除)。」

何意?

是這樣的,作業系統為了維持檔案的「一致性」,將不會允許你對「正開著在讀寫的檔案」,用外力做其他更動。用例子說明就是,假設你正用Word編輯一份名為「重要工作」的文件,那編輯過程中,你將無法刪除這份文件,也不能將這份文件更名。要刪除要更名──可以,等你把Word關閉了,那就沒問題。

同樣的,如果一個軟體正在(記憶體裡)執行中,你也將無法刪掉它。就一樣以Word為例好了,當你開著Word,你就無法移除硬碟裡面的WINWORD.EXE(它的程式本體)。

這觀念聽起來很簡單對不對?

我可以保證,80%~90%的人不知道這事情,他們完全無法理解「為何我就是不能移除這個移除那個,系統一直會跑訊息出來。」其實問題很單純,因為你想要移除的東西還開在記憶體裡面,那你做的任何變動(修改、移除)就將不被允許。

所以,移除前,有的軟體會請你關閉程式(請你自己動手),有的軟體會自己幫你關閉。一般而言,正常的軟體都可以正常關閉並移除,但偶而會有例外。

例外一是:某些軟體的移除功能寫得不太好,所以有時會忘了要注意程式正執行中不能移除,於是移除到一半,又說移除出現錯誤,不上不下的卡住了,這就很麻煩。例外二是:某些病毒就根本打算常駐在你電腦,寄身在Windows系統裡面讓你永無寧日,這種東西你碰到了就該死了,因為無論你殺了幾次,它都還會再次重生──別忘了,電腦中毒後,它就一直常駐在記憶體,你殺死的只是硬碟上的分身,只要沒有除毒,病毒就一直會試著重新寫入副本,一直不斷地試圖復活並奪取電腦的控制權。碰到這種事情,就得用更專業的手法試著處理(或是聽天由命)了。

畢竟,病毒軟體是不會提供「反安裝」這個選項的。

共用元件到處散落

上期提到過,如果每個軟體都只用一個檔案就可以安裝管理,那Windows可能就不會這麼容易出問題了,但這不可能。實際的情況是,軟體在安裝時不只要寫入大量的檔案到C:磁碟的Program Files資料夾裡面,它們大多還會把所謂的共用元件放入硬碟機的「某處」,以便該公司旗下的軟體分享這些元件程式庫。

以「標準作法」而言,在「C:\Program Files」裡面,會有個「Common Files」資料夾讓廠商把共用元件都放這裡,這確實是提供了這類共用元件的管理規格,但是這麼做就萬無一失?

並沒有啊!

如果多個軟體共用某些元件,移除時的問題就會是:那共用元件還有沒有別人要用?「最後走的要關燈」,那最後一個被移除的軟體會不會跟著把共用元件移除?老實說,這問題我也不知道,所以Common Files裡面總是會有各種奇怪的殘骸,但這似乎也沒有一個很好的辦法,只能說「幸好硬碟現在很便宜」吧……

事實上,我個人的看法是:只要是散落,就會造成很多的問題,移除就會造成困難。某次我的友人想要把自己的英文版Adobe CS2移除(不過他是CS2 for Mac OS),然後要安裝中文版,結果「英文版不移除乾淨,不給安裝中文版」。但是當時的CS2 for Mac OS並沒有一個移除工具,所以得照著說明步驟,自己「去那裡刪除那檔案,然後這裡的這檔案也要刪除……」,而且,不知何故,說明文件還有簡易版和複雜版,簡易版文件的說明不足,照做了也還是無法乾淨移除。幸好有個有經驗的老手,才找到正確的文件照辦了才解決這問題。

偶而,真的沒辦法,你得只能用類似的方法來解決無法移除的問題,而我希望你永遠不會碰到這問題。

註冊資訊的問題

安裝軟體時,原廠會在你的Windows裡面寫入註冊資訊,這本是標準程序,問題在於:移除軟體時,當初寫入的註冊資訊會被移除乾淨嗎?

老實說,我覺得「應該可以」,但現實情況是「不會的,註冊資訊千瘡百孔」。這問題我在前面幾期已經先介紹過了,所以這裡我只是簡單說明一下移除軟體時,註冊檔沒有移乾淨會有什麼問題。

首先,若是移除軟體時註冊資訊沒有移除乾淨,你的Windows註冊檔就會產生很多無用資訊。無用資訊就會形成註冊檔裡面的「孔洞」,載入時會耗用系統資源(記憶體),會讓電腦變慢。另外,註冊檔是Windows據以運作的重要基礎服務,當它裡面的紀錄有問題時,你的Windows跑起來就跟著有問題。

同樣的,也稍微說說「病毒」這東西。如果你中了「劇毒」,最可惡的病毒會去亂改你的註冊資訊,讓Windows系統無論如何無法略過病毒的執行,也無法移除之。而且有的註冊資訊一旦被破壞,幾乎就無法復原或重建,這時,所謂的「重灌」就成了唯一的解決方案。

註冊資訊沒移除乾淨的另一個問題,就是也會造成新版軟體安裝的異常,或是根本無法進行。有時你得借助「其他軟體」解決這問題,有時你得手動自己解決(還未必有解),那就麻煩得要命了……

設定檔與軟體產生的文件

軟體安裝後,通常還會寫入一些文字設定檔,檔案大多就放在軟體主程式的所在處。不過有的軟體會把設定放在C:\Windows\System32資料夾底下,有的則會放在C:\ProgramData,或C:\Documents & Settings資料夾裡面。

這裡面最大的問題就是:如果你的電腦不是給單獨一個人用的,而是眾人輪流使用,且每個人都希望能保留自己的設定,那問題就比較大了。

有些軟體會把每個使用者的不同設定,寫在設定檔案裡面,然後再利用不同的文字區域分別紀錄之。C:\ProgramData裡面通常可以放各軟體的設定,但這算是從Vista時代才開始有的系統功能,目的就是讓應用軟體把設定檔集中放這。如果你的設定檔很重要,就算要移除軟體也想備份設定時,可以到這裡找找。

設定檔放C:\Documents & Settings(其實後來又改成「C:\Users」)的好處是,因為每個使用者都有自己的文件存放區,所以把設定也存這裡,就可以保證不會有「錯亂」的問題,但不是每個軟體都用這規範,所以不會錯亂是沒錯──但很多人是根本找不到「原來設定檔被藏在這裡」。

最後有個地方,就是C:\Program Files資料夾,很多軟體都直接把設定就和主程式放一起,不過這會造成「所有的程式設定無法一次備份」的問題,所以已經是不好的程式運作行為了(所謂不好,就意味著Microsoft不建議這樣做),但仍有不少較舊的軟體仍是如此。

也就是說,如果你怕你的軟體設定被移除,上面講的這幾個地方可以找找看。

移除不了的時候怎麼辦

基本上,雖然上面講了很多「關於軟體移除的原理」,但真要移除時,大家的作法其實還是打開控制台,開啟「新增/移除程式」功能,執行移除動作而已,就是這麼簡單啊!

聽來容易做來難啊!這動作會有非常多的「但書」,要是移除程式無法執行怎麼辦?要是移除程式做到一半才說「錯誤」怎麼辦?有些錯誤居然還無法回溯,所以移到一半出錯,只把Windows搞得「裝新的」也不行,「殺舊的」又已經出錯了,這就是所謂的騎虎難下吧!

我個人提供兩個建議:

● 使用反安裝軟體

有一種專門的反安裝軟體,可以更完備的把你想要移除的軟體移除乾淨。比方說,「Your Uninstaller!」就是一套這樣的軟體,其他類似的軟體也相當多,不過可能是因為還要花錢買,買來又只是為了要移除軟體這麼單純的能,似乎在國內並不流行,所有這類軟體(目前)也大多是英文介面。

要注意,這類軟體最好是「一開始就先裝好」,這樣它才可以幫你紀錄一切的安裝過程,以便它可以「完全移除」你未來可能想移除的軟體。但即便你沒有先裝,這類軟體也還是會試著做好移除工作。

● 使用Microsoft Windows Installer Clean Up

請注意,這工具是你的「最後一道防線」,完全無法移除軟體又非移除不可時,才去下載這個軟體來用(請用搜尋引擎找尋,印象中是Microsoft提供的免費服務小軟體)。

也就是說,如果你的軟體可以正常移除,那就不必找這個軟體出來攪和了。但若不行,這東西就可以試試看,說不定可以解決問題。
比方說,我的Windows 7 x64版,前陣子才發生過怪事,裝了舊版的Silverlight,但是新版裝不上去──一裝,就跟你要硬碟上的某個檔案,說該檔案不存在(後來我知道,它要的是舊版Silverlight的安裝檔,新版安裝時會移除舊版,但舊版安裝檔已經不見了),但是不更新,又會導致Windows 7 x64的功能不正常(用IE8上網,無法正常顯示國賓戲院訂票系統的座位,這系統應該是用Silverlight開發的)。

好的,我用Microsoft Windows Installer Clean Up這工具,移除原先的舊版(其實不是真的移除,是從Windows內的註冊資料庫中把相關設定都移掉),就可以安裝新版了。我必須再次強調,這是無解時的解決方案,但真的沒辦法了你就可以試試看──通常有效。

本期結論:移除工作學問大

如果上述方法都不行了,還有沒有「最後一招」?

有的,而且一點都不稀奇。

「去原廠網站,找吧!」

大多軟體都會在網站上提供,若是安裝或是移除不當時,可以「徹底從系統把軟體的檔案清乾淨」的小工具,就我印象所及,像是燒錄界的大腕「Nero」,或是設計界的巨人「Adobe」,網站上都有提供這類的「清除者」(cleaner)小程式。不知何故,我聯想到了盧貝松的「霹靂煞」這部電影……

 

除非有特殊狀況,否則解除安裝(移除)的標準動作就只要到控制台執行即可,相當容易。

熱門新聞

Advertisement