【Ubuntu 12.04】AppArmor 令 MySQL 不能啟動

上星期把 netbook 的 Ubuntu 升級到 12.04 後,發現不能啟動 MySQL server,然後在 /var/log/syslog 內發現以下一行 log。

Sep 11 16:01:36 potter kernel: [ 2463.153201] type=1400 audit(1347350496.093:36): apparmor=」DENIED」 operation=」mknod」 parent=6583 profile=」/usr/sbin/mysqld」 name=」/run/mysqld/mysqld.sock」 pid=6622 comm=」mysqld」 requested_mask=」c」 denied_mask=」c」 fsuid=114 ouid=114

在網上看過這篇文章後,只需在 /etc/apparmor.d/usr.sbin.mysqld 內,把以下 mysqld 相關兩行修改 (或直接加入),便能修正問題。

/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,

改為:

/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,

最後只需 sudo service mysql restart 重新啟動便可。如果不能,可以執行 sudo service apparmor restart 然後再試。

Ubuntu Precise 12.04 LTS 升級問題解決方法

沒想過在升級第二台 Ubuntu Oneiric 11.10 到 Precise 12.04 LTS 時,會遇上一些問題,所以寫了這篇 blog 來記述一下。

兩天前把第一台 (Lenovo ThinkPad T400s) Oneiric 11.10 升級時,只是使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便能順利升級了。

解決 Couldn’t configure pre-depend libtinfo5 for libncurses5 問題

今天便把第二台 (Core2Duo + Gigabyte Intel G33 底板的自組機) Oneiric 11.10 升級時,同樣使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,在下載新套件後,卻出現以下錯誤。

無法安裝升級,提交時發生錯誤
『E:Couldn’t configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.』
回復原有系統狀態

經過 google 後,至少有兩個方法可以嘗試解決。第一個方法是先升級 apt 套件後再升級 (Bug #924079),第二個方法是先升級 libtinfo5、libncurses5 及 libncursesw5 套件後再升級,我選擇了先升級 apt 的方法。

$ sed 『s/oneiric/precise/g』 -i /etc/apt/sources.list
$ apt-get update
$ apt-get install apt python-apt
$ sed 『s/precise/oneiric/g』 -i /etc/apt/sources.list

然後再使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便可解決上述問題。

解決 USB 鍵盤滑鼠不能用問題

在更新管理員完成升級後,指示我重新啟動電腦。在重新啟動電腦後,在出現 LightDM 用戶登入畫面後,便發現我的 USB 鍵盤 keybOneiric 11.10 的 3.0.0 舊版本 kerneloard 和 mouse 也不能用!!!因為尚未登入,Network Manager 沒有自動經 DHCP 拿取 IP 地址,所以也不能經由網絡以 SSH 登入。 orz

使用過另一個 Linux 系統 mount 了 Precise 的硬碟分區來看 log,發現 kernel 不能偵測到 USB keyboard 和 mouse。還找到 init: Failed to create pty – disabling logging for job 等問題。

經過 google 閱讀不同類似情況後 (Bug #990870) [1] [2] ,最後嘗試在啟動電腦後 grub 開機 boot loader,在「Ubuntu, with Linux 3.2.0-24-generic」 一行上按 e 編輯修改設定,來載入仍在系統上的 Oneiric 11.10 的 3.0.0 舊版本 kernel

linux    /boot/vmlinuz-3.2.0-24-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

把上述一行改為以下一行,然後接 F10 去啟動系統。USB Keyboard 和 Mouse 在舊 kernel 下仍能使用,在LightDM 用戶登入畫面 就能進入 Unity 或 GNOME。

linux    /boot/vmlinuz-3.0.0-17-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

登入後,啟動終端機 (terminal) 並執行以下 apt-get 指令。

$ sudo apt-get -f install

然後 apt-get 會繼續進行未完成的套件安裝和設定,終於能用 USB keyboard 和 mouse 了!!!

香港Linux軟件庫嚴重短缺

二十多年的自由軟件發展,隨著互聯網的發展下,打造出 Linux 和其他數之不盡的出色軟件。在 General Public License 等不同的 Open Source Licenses 授權下,Source Code 伴隨著自由軟件得以在世界各地自由使用和轉發。讓世界各地的開發者繼續改進軟件,並以相同 license 推出更好的軟件。

以 Linux 相關軟件為例,社群維護為主的 Linux distributions、自由軟件以至 Linux kernel 都在不同地方,主要是學術或非牟利機構自建伺服器作軟件庫 (software archives),並連接高速網絡分享給大眾。

香港已沒有 Linux 軟件庫了

在香港這個科技先進、網絡發達的城市,香港 Linux 軟件庫漸漸減少,到現在已經可以說沒有了。(沒錯! 事實是仍有一兩台的,但都是缺乏軟件更新、完整性和維護,教人如何使用呢 ???)

以往香港主要的 Linux 軟件庫,一直都是由兩三間商業公司 (主要是網頁寄存公司) 免費提供,有些網絡寬頻更達 1Gb 以上,可是在近兩三年已全部關閉或結業了。有一兩台是由幾位愛好者自費,購買電腦和租用 server co-location 服務來提供免費軟件庫服務,

現在只有一個慶幸,就是部份台灣以至日本學術機構的軟件庫,以光千網絡連接香港互聯網核心 – HKIX。 (香港人竟然要用到海外伺服器,你說可不可笑???)

說得更難聽,就是我們香港用戶現在要多佔別人的頻寬來下載和更新軟件。到底是海外頻寬仍有很多 ? 還是香港太過著重於利益 ? 所有機構內也沒有人會想到要提供本地免費Linux軟件庫 ?

早前 Launchpad 上,有用家回報 bug ticket – quite a few asian mirrors malfunctioning

最後的消息,香港以外的 Ubuntu 員工朋友跟我聯系過,我提供一些小建議和測試結果,希望先把 hk.archive.ubuntu.com 指往台灣某學術研究機構。 (目前因香港沒有 archive 而指往歐洲的。 orz) 但因為佔用別人伺服器和 (海外) 網絡資源,所以需要作一些口頭和書面的溝通和請求。 (請求後,香港會不會被海外的人看小呢 ? 香港連這些資源也沒有。)

所以,香港是有必要和急切,建立香港Linux軟件庫 (local archives)。

必需連接本地高速寬頻網絡

現今香港很多公司和家庭已安裝寬頻網絡,因此香港 Linux 軟件庫必需連接本地高速寬頻網絡,至少需要 1Gb 網絡速度才能負擔香港對 Linux 軟件的需要。

最完美的方案,當然是直接連接 HKIX。可是按目前 HKIX 政策, Linux 和自由軟件本身並不合乎成為 HKIX 成員。

而另一個接近完美方案,是直接連接中文大學網絡,差不多跟直接連接 HKIX 的速度沒有分別。最容易是跟電腦軟件相關的學系或電腦中心聯系,可是相關單位在十多年前,在活動場地上轉介城大後,並沒有人再跟香港 Linux 或 Open Source 社群接觸過。而我也曾因其他 Linux 和 Open Source 推廣交流事情上,曾電郵給其中一位中大講師,可是石沉大海,聽聞他「十分忙碌」。

退一步的方案是,聯系本地其他大學,只是網速上相比中大直連 HKIX,當然是慢一點了。如果這一步方案也不能,只可找商界、機構組織或個人了,可是資源很大機會比之前的方案更有限。如果低於 1Gb,那便會比較難吸引香港人,不用台灣伺服器而用香港了。

伺服器贊助或社群用家捐獻資金

在伺服器方面,是另一個問題,但相比起網速,這個問題比較細,也比較容易得到解決。單純社群用的網頁和電郵伺服器,十多年前,我擔任香港 Linux 用家協會創會會長期間,在得到委員和友好幫助下,HKLUG 得到當時 Compaq 贊助 AlphaServer 一台,今時今日,硬件 (主要是 harddisk) 已經壞了多年。到 7/8 年前,當時最活躍的 Linux 和 Open Source 協會 OAKA,單憑幾十名會員的一年會費,自購一台 PC 作伺服器,由一間公司提供公司網絡來連接互聯網,同樣,幾年前這台 PC 也宣告壞了。從這兩例子可見,相信香港 Linux 和 Open Source 社如能找到合適的網絡供應者,找商業公司 (例如各大 vendor) 或一眾用家捐錢,沒有 server 贊助,只少也能購買 PC 吧。

以下我列出一少部份國際知名自由軟件 (還有更多尚未列出),這些自由軟件急需在香港設立完整軟件庫,並以高速網絡連接本地互聯網。

希望透過本文能帶起大家以至大眾對此關注,以便我或各位社群朋友/用家跟進。