話說有天系統更新時,居然出錯導致更新失敗。
於時......乖乖開啟Console(也就是終端機),嘗試強制安裝更新失敗的套件「samba」,這一裝可不得了了!
終端機出現的錯誤訊息如下:
===============================================
root@samnote:~# apt-get -f install samba
讀取套件清單中... 完成
了解套件依存關係中... 完成
推薦(Recommended)的套件:
smbldap-tools
下列的套件都將更新:
samba
更新 1 個套件,新安裝 0 個套件,刪除 0 個套件,另不更新 0 個套件。
2 個套件沒有完全安裝或刪除完畢。
需要下載 2845kB 中 0B 的檔案。
解壓縮後將消耗 0B 的空間。
正在預先設定套件 ...
(正在讀取資料庫 ... 系統目前總共安裝有 106768 個檔案和目錄。)
正預備替換 samba 3.0.22-1ubuntu3.1 (使用 .../samba_3.0.22-1ubuntu3.2_i386.deb) ...
invoke-rc.d: dangling symlink: /etc/rc2.d/S91samba
dpkg:警告 - 原先的 pre-removal script 退出時返回了錯誤 102 狀態
dpkg - 轉而試用新套件所帶的script...
invoke-rc.d: dangling symlink: /etc/rc2.d/S91samba
dpkg:處理 /var/cache/apt/archives/samba_3.0.22-1ubuntu3.2_i386.deb (--unpack)時出錯:
子程序·新的 pre-removal script·返回了錯誤號·102
在處理時有錯誤發生:
/var/cache/apt/archives/samba_3.0.22-1ubuntu3.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
===============================================
好囉!大家知道問題在哪裡嗎?
會出現這種狀況,多半是原始套件安裝不完整或設定錯誤,導致更新失敗囉!
相對的,如果使用「apt-get」強制安裝已經出問題套件的「相依套件」,也會讓「apt-get」秀出「E: Sub-process /usr/bin/dpkg returned an error code (1)」的錯誤訊息囉!
嗯......Ubuntu已經偷偷告訴Sam毛病在哪囉(上方粗體紅字處,啟動scripts中關於samba 的部份link不到原始檔案)!於是......
===============================================
root@samnote:~# ls -l /etc/rc2.d/S91samba
lrwxrwxrwx 1 root root 6 2007-01-29 09:12 /etc/rc2.d/S91samba -> /samba
===============================================
嗯......果然有些詭異......
一般而言,這種地方的檔案都會link到/etc/init.d目錄的scripts下,也就是說,對於samba而言,應該要link到「/etc/init.d/samba」下喔!
所以,處理方法為......
===============================================
root@samnote:~# cd /etc/rc2.d/
root@samnote:/etc/rc2.d# rm -rf S91samba
root@samnote:/etc/rc2.d# ln -s /etc/init.d/samba S91samba
===============================================
將連結設定回來後,再嘗試安裝先前更新失敗的套件......
===============================================
root@samnote:/etc/rc2.d# apt-get -f install samba
讀取套件清單中... 完成
了解套件依存關係中... 完成
推薦(Recommended)的套件:
smbldap-tools
下列的套件都將更新:
samba
更新 1 個套件,新安裝 0 個套件,刪除 0 個套件,另不更新 0 個套件。
2 個套件沒有完全安裝或刪除完畢。
需要下載 2845kB 中 0B 的檔案。
解壓縮後將消耗 0B 的空間。
正在預先設定套件 ...
(正在讀取資料庫 ... 系統目前總共安裝有 106768 個檔案和目錄。)
正預備替換 samba 3.0.22-1ubuntu3.1 (使用 .../samba_3.0.22-1ubuntu3.2_i386.deb) ...
* Stopping Samba daemons... [ ok ]
正在解壓縮替換的套件檔 samba ...
正在設定 smbclient (3.0.22-1ubuntu3.2) ...
正在設定 smbfs (3.0.22-1ubuntu3.2) ...
正在設定 samba (3.0.22-1ubuntu3.2) ...
update-rc.d: warning: /etc/rc3.d/S91samba is not a link to ../init.d/samba or /etc/init.d/samba
* Starting Samba daemons... [ ok ]
root@samnote:/etc/rc2.d# apt-get dist-upgrade
讀取套件清單中... 完成
了解套件依存關係中... 完成
籌畫升級套件中...完成
更新 0 個套件,新安裝 0 個套件,刪除 0 個套件,另不更新 0 個套件。
===============================================
呼~好險解決囉!
由此可見,SAMBA套件在更新時,需要將其服務停止。所以,更新程序在呼叫「/etc/rc2.d/S91samba」時,會因為link異常(所link的檔案不正確)而更新失敗囉!
當然......不是每個更新失敗都會適用這個狀況。只是提供參考,讓大家發現,電腦喔......還是很「笨」喔! :p
總之,遇上了,要膽大心細,看看電腦提示的錯誤地方在哪裡,然後「人工判斷解決」,幫它排除狀況後,它才會乖乖聽話喔! >.^
沒有留言:
張貼留言