在過去的幾個(gè)星期,(幾乎)每次都有消息 Ubuntu 15.04在啟動(dòng)時(shí)檢測(cè)到系統(tǒng)程序錯(cuò)誤 跑出來“歡迎”我。那時(shí)我是直接忽略掉它的,但是這種情況到了某個(gè)時(shí)刻,它就讓人覺得非常煩人了!
檢測(cè)到系統(tǒng)程序錯(cuò)誤(System program problem detected)
你想立即報(bào)告這個(gè)問題嗎?
我肯定地知道如果你是一個(gè)Ubuntu用戶,你可能曾經(jīng)也遇到過這個(gè)惱人的彈窗。在本文中,我們將探討在Ubuntu 14.04和15.04中遇到"檢測(cè)到系統(tǒng)程序錯(cuò)誤(system program problem detected)"時(shí) 應(yīng)該怎么辦。
怎么解決Ubuntu中"檢測(cè)到系統(tǒng)程序錯(cuò)誤"的錯(cuò)誤
那么這個(gè)通知到底是關(guān)于什么的?
大體上講,它是在告知你,你的系統(tǒng)的一部分崩潰了??蓜e因?yàn)?ldquo;崩潰”這個(gè)詞而恐慌。這不是一個(gè)嚴(yán)重的問題,你的系統(tǒng)還是完完全全可用的。只是在之前的某個(gè)時(shí)刻某個(gè)程序崩潰了,而Ubuntu想讓你決定要不要把這個(gè)問題報(bào)告給開發(fā)者,這樣他們就能夠修復(fù)這個(gè)問題。
那么,我們點(diǎn)了“報(bào)告錯(cuò)誤”的按鈕后,它以后就不再顯示了?
不,不是的!即使你點(diǎn)了“報(bào)告錯(cuò)誤”按鈕,最后你還是會(huì)被一個(gè)如下的彈窗再次“歡迎”一下:
對(duì)不起,Ubuntu發(fā)生了一個(gè)內(nèi)部錯(cuò)誤是個(gè)Apport(LCTT 譯注:Apport是Ubuntu中錯(cuò)誤信息的收集報(bào)告系統(tǒng),詳見Ubuntu Wiki中的Apport篇),它將會(huì)進(jìn)一步的打開網(wǎng)頁瀏覽器,然后你可以通過登錄或創(chuàng)建Launchpad帳戶來填寫一份漏洞(Bug)報(bào)告文件。你看,這是一個(gè)復(fù)雜的過程,它要花整整四步來完成。
但是我想幫助開發(fā)者,讓他們知道這個(gè)漏洞啊 !
你這樣想的確非常地周到體貼,而且這樣做也是正確的。但是這樣做的話,存在兩個(gè)問題。第一,存在非常高的概率,這個(gè)漏洞已經(jīng)被報(bào)告過了;第二,即使你報(bào)告了個(gè)這次崩潰,也無法保證你不會(huì)再看到它。
那么,你的意思就是說別報(bào)告這次崩潰了?
對(duì),也不對(duì)。如果你想的話,在你第一次看到它的時(shí)候報(bào)告它。你可以在上面圖片顯示的“顯示細(xì)節(jié)(Show Details)”中,查看崩潰的程序。但是如果你總是看到它,或者你不想報(bào)告漏洞(Bug),那么我建議你還是一次性擺脫這個(gè)問題吧。
修復(fù)Ubuntu中“檢測(cè)到系統(tǒng)程序錯(cuò)誤”的錯(cuò)誤
這些錯(cuò)誤報(bào)告被存放在Ubuntu中目錄/var/crash中。如果你翻看這個(gè)目錄的話,應(yīng)該可以看到有一些以crash結(jié)尾的文件。
我的建議是刪除這些錯(cuò)誤報(bào)告。打開一個(gè)終端,執(zhí)行下面的命令:
sudo rm /var/crash/*
這個(gè)操作會(huì)刪除所有在/var/crash目錄下的所有內(nèi)容。這樣你就不會(huì)再被這些報(bào)告以前程序錯(cuò)誤的彈窗所擾。但是如果又有一個(gè)程序崩潰了,你就會(huì)再次看到“檢測(cè)到系統(tǒng)程序錯(cuò)誤”的錯(cuò)誤。你可以再次刪除這些報(bào)告文件,或者你可以禁用Apport來徹底地?cái)[脫這個(gè)錯(cuò)誤彈窗。
徹底地?cái)[脫Ubuntu中的系統(tǒng)錯(cuò)誤彈窗
如果你這樣做,系統(tǒng)中任何程序崩潰時(shí),系統(tǒng)都不會(huì)再通知你。如果你想問問我的看法的話,我會(huì)說,這不是一件壞事,除非你愿意填寫錯(cuò)誤報(bào)告。如果你不想填寫錯(cuò)誤報(bào)告,那么這些錯(cuò)誤通知存不存在都不會(huì)有什么區(qū)別。
要禁止Apport,并且徹底地?cái)[脫Ubuntu系統(tǒng)中的程序崩潰報(bào)告,打開一個(gè)終端,輸入以下命令:
gksu gedit /etc/default/apport
這個(gè)文件的內(nèi)容是:
# 設(shè)置0表示禁用Apportw,或者1開啟它。
# 你可以用下面的命令暫時(shí)關(guān)閉它:
# sudo service apport start force_start=1
enabled=1
把enabled=1改為enabled=0。保存并關(guān)閉文件。完成之后你就再也不會(huì)看到彈窗報(bào)告錯(cuò)誤了。很顯然,如果我們想重新開啟錯(cuò)誤報(bào)告功能,只要再打開這個(gè)文件,把enabled設(shè)置為1就可以了。