Fedora 8 x86_64 安裝

Fedora 8 在 11/8 release 了,照慣例有新的 theme 和新的 feature,同時也像以往的 release 一樣給免費使用者出了些考題,這次內建了新的 pulseaudio 音效架構,但是一裝完就沒有聲音了,真是未蒙其利先受其害,對熟悉的用戶而言或許可以很快解決,但是確很可能讓許多想加入的新使用者打退堂鼓,想要吸引客戶的營利事業一定在這方面會更謹慎,不只是 Fedora,Ubuntu、Mandriva 也常這個問題,Linux 要更普及 user friendly 還有很多要努力的地方。

Fedora 8 和前一版安裝上的一些改變:

  • 安裝在 xfs、jfs、reiserfs 等 journal 檔案系統上
  • 在安裝的選單出現時按 [TAB] 鍵,在預設的參數後面加上 selinux=0 [xfs | jfs | reiserfs]

  • 在 64 bit Firefox 上使用 32bit plugin
  • 這一個版本已經內建 nspluginwrapper 套件,以 flash player 為例,只要把 .so 檔複製到 /usr/lib/mozilla/plugin 目錄,然後執行 ‘mozilla-plugin-config -i’ 重新啟動 firefox 就可以了

    * 2007/12/9 update 完畢後似乎只要 copy .so 檔就可以了

Fedora 8 安裝出現的問題:

  • 沒有聲音輸出
  • 網路上有不少人反應這個問題,也提供了不少偏方,主要是 pulseaudio 的 daemon 在 KDE 環境下沒有正常啟動,經過這幾天測試後得到以下的結論:

    依據 pulseaudio 官方網站的文件,avahi-daemon service 必須啟用,經過測試 ConsoleKit、haldaemon、messagebus 這幾個 service 也必須啟動 KDE 音效才會正常

    2007/12/10 update:

    pulseaudio 看起來的確不是很成熟,常常邊聽音樂然後再執行個應用程式就整個系統當掉了,要按機殼上的 reset。Linux 發展到這個階段,這樣的問題是不允許的。要拿掉 pulseaudio 只要移除 alsa-plugins-pulseaudio.x86_64 、kde-settings-pulseaudio.noarch 這兩個套件。移除後可能會有 audio device permission 的問題,請啟動 ConsoleKit 這個 service 管理,或者利用以下方式開放 audio device 權限

    音效相關的 device 如果 owner 是 root,其他 user 沒有寫入權限只要修改 /etc/security/console.perms.d/50-default.perms 加入2行
    <sound>=/dev/dsp /dev/mixer /dev/snd/*
    <console> 0666 <sound> 0666 root

  • 利用套件管程式安裝套件時會有 error
  • 可能是 mirror 站台上的檔案有問題,截至 11/13 為止,已經恢復正常了。

其他

  • SATA DVD burner 問題
  • 開機時出現 failed to set xfermode (err_mask=0x4) 而且抓不到光碟機,把 kernel 更新到 kernel-2.6.23.1-49.fc8 已經沒有這個問題了

[ratings]

getElementById().innerHTML 在 explorer 不能正常顯示

找了不少資料得到的結論是 innerHTML 是微軟訂出來的標準,但是 firefox 也支援了,當然用 W3C 的 DOM 也可以作到, 相容性也比較好,但是要寫的 code 也多了不少。

之前遇到的問題是,在動態產生內容時直覺的要把 data row 直接塞進 table,例如

<table>

<div id=”data”></div>

</table>

AJAX code 傳回 “<tr><td>name:</td><td>Vincent</td></tr>”,用 getElementById(‘data’).innerHTML 塞回傳值, firefox 可以正常顯示,explorer 不行,微軟的範例是用 W3C 的 DOM 一個個 cell,row 去動態產生 table。

最近發現一個作法在 firefox,explorer 都可以正常顯示,在 html 內一樣用 div 留下一個 container 位置

<div id=”data”></div>

AJAX code 如果回傳整個 table 的 html,例如 “<table><tr><td>name:</td><td>Vincent</td></tr></table>” 再用 getElementById(‘data’).innerHTML 塞回傳值,是 ok 的。

[ratings]

Propel Object-Relational Mapping (ORM) 解決方案

Java 平台整合 Hibernate 這個 ORM 套件進行開發相當的普遍,現在 PHP 也有 Propel 和其他類似的套件,由於 Propel 已經整合到 symfony 這個 PHP framework,相信技術和穩定方面都達到了一 定程度,最近試著整合的確是有一定的困難度,整理的心得如下:

一 、安裝

在 Fedora 7 上需要以下幾個套件

  1. php-5.2.4
  2. php-pear-1.5.0
  3. php-xml-5.2.4
  4. php-pear-log
  5. php-mysql-5.2.4 (看使用什麼資料安裝對應的套件)

上面的套件並不包含 Propel,不過 PHP 的套件管理的確已經相當成熟,安裝 Propel 相當方便,這裡介紹利用 Pear 安裝的程序:

首先安裝 phing 這個必需的套件

pear channel-discover pear.phing.info
pear install phing/phing

接著以下3個指令就可以裝好 Propel

pear channel-discover pear.phpdb.org
pear install phpdb/propel_generator
pear install phpdb/propel_runtime

請注意指令順序,在安裝過程中 pear 會自動安裝其他所需要的套件.

既然是 ORM 一定會有後端資料庫整合,如果用的是MySQL 請檢查 php5-mysql 套件是否已安裝

二 、應用

Propel 在自動產生 PHP ORM class 時必需有資料庫 schema 檔案,可以參考官方網站的文件來撰寫,檔案完成後 Propel 可以依據 schema 檔案自動建立相關 table,這裡介紹另一個比較常用的模式,資料庫 table 建好後,自動產生 schema 檔案。

先建立 build.properties,mysql 範例如下

propel.project = <project name>
propel.database = mysql
propel.database.url = mysql://<db user>:<db password>@<db host>/<database>

接下來用以下指令就可以自動依據 table 產生 schema.xml

phing -f /usr/share/pear/data/propel_generator/pear-build.xml -Dproject.dir=. creole

* 重點是 pear-build.xml 定義了建立 propel 相關檔案的資料,不同的 distribution 可能在不同位置

有了 build.properties、schema.xml 後請依照官方網站的說明建立 runtime-conf.xml,有了這3個檔案,以下指令就可以自動建立 php 的 class

phing -f /usr/share/pear/data/propel_generator/pear-build.xml -Dproject.dir=.

[ratings]

QEMU 一個完整的 Virtual Machine 解決方案

之前一直在注意是不是有一個比較完整的 open source VM 解決方案,大家比較熟悉的 XenOpenVZ 都只完整的支援 linux,對其他作業系統的支援比較有限。 VMware、VirtualBox 支援的作業系統比較廣泛,但是前一個是商業軟體,後面一個僅限個人使用,也都沒有 open source。最近發現 QEMU 這個解決方案,支援的作業系統、處理器架構、VM 檔案格式都相當完整,目前安裝了 FreeBSD 4.x、6.x 執行都很穩定,是一個非常有潛力,也值得大力推薦的軟體。

2008.3.4 加註

在 Fedora 8 x64 上用 qemu 跑 windows xp 效能不是很好,也不是很穩定,試過改用內建的 KVM 好用多了。

[ratings]