google code-beautifer

星期六, 2月 02, 2008

Mandriva 套件管理

建議

  • 先用DVD 或CD 安裝絕大部分的套件
  • 到 MCC 裡 用媒體管理員把 DVD 或 CD 媒體 的"啟用"取消
  • 用 easy urmpi 把媒體加入(參照下文),這樣就可以從http/ftp 站裡抓DVD 上缺的RPM/及作檔案更新
    * 有需要時(如網路斷線) 要安裝DVD 上的RPM還是可以把用媒體管理員把網路媒體 的"啟用"取消, 再打開 DVD 或 CD 媒體 的"啟用"
  • 有必要時去個別網站下載檔案

個別檔案網路下載


發行的CD/DVD 多多少少會缺套件,建議先用DVD 或CD 安裝絕大部分的套件,再按下面順序去找

  1. http://easyurpmi.zarb.org/ (Easy urpmi 詳見Easy urpmi一節)
  2. http://sophie.zarb.org/ 提供了Mandriva 的RPM索引,找不到的話再去
  3. http://fr2.rpmfind.net/ 找各大發行版本(不限Mandriva)的RPM索引


sophie 連 cooker 的套件也會顯示出來。如 multiget-1.2.0-2mdv2008.1.x86_64.rpm
但好像沒有提供實體的RPM,rpmfind 可以找到實體的RPM跟查詢個別套件的檔案及相依的套件

Easy urpmi: 加入更多套件來源


Mandrake 的控制中心 (Mandrake Control Center,以下簡稱 MCC)裡可以用媒體管理員管理不同媒體來源,有時 Mandriva DVD缺套件,會導致某些軟體不能安裝。要解決這個問題,可以在MCC 加入更多套件來源,比如說PLF (http://plf.zarb.org/~nanardon/)。PLF 全名是 Penguin Liberation Front,它收藏了很多因為種種問題而無法令 Mandrake 無法直接包括在內的軟體,例如各種P2P軟體、freeware (免費但不是開放原碼/或加發佈上的限制,例如不許加入 Linux發行版本出售)、含有有專利的東西 (mp3, 跟許多多媒體編碼都是例子)。

要指定加入套件來源的地址,用指令會比用進入MCC圖形介面更加容易。PLF的網站有一個介面叫 Easy urpmi,可以把你準備加入的站台的程序指令以文字形式顯示出來,只要以 root 身份把它給你的一行行指令用老鼠剪貼到到終端機去執行就可以了。

以 MDV2008 比方來說,通常先把 DVD 或 CD 媒體 的"啟用"取消(MCC 下執行,或終端機下執行urpmi.removemedia -a) 後,用喜歡的瀏覽器 (如mozilla-firefox)開啟 easyurpmi.zarb.org 網址 ,它會問你一些問題,然後會給你要用到的指令

1.在網頁第一個步驟 (Select your system) 中指定使用版本,機種,跟管理機制,比如Mandriva 2008.0 ,x86_64 (表示AMD 的 64 bit,跟Intel 的 64bit, i586 都不一樣),跟 urpmi,及要不要 Select the mirror separately for every source 。然後按 "proceed to step 2"。

2. 指定站台地址: main、contrib 和 update 的 mirror 站台地址。Main 是正式支援的自由軟體套件,有些非自由軟體會放到 non-free下,contrib 是其它人協助包裝但沒有正式支援的,對這三者而言: XXX_update 是發行後更新套件,XXX_backport 是半官方版本更新套件(有相容風險)。有裝 YYY 來源的話,YYY_update 最好也加入。以新增Main媒體為例,就把mirror 站下拉選成喜歡的(如twaren.net ),然後打勾。PLF 這是 PLF 自己的套件的 mirror 站台地址。

最後按 proceed to step 3。

3.以 root 用老鼠剪貼它顯示的指令到到終端機去執行,以新增Main媒體為例,如下:

urpmi.addmedia --update main_updates http://ftp.twaren.net/Linux/Mandrake/official/2008.0/x86_64/media/main/updates with media_info/hdlist.cz

要是 64 bit 環境要混用 i586套件,只要回到步驟一把架構換成 i586,重複加入更多的套件來源即可。這樣就可以在圖形介面 (rpmdrake) 或文字模式介面 (urpmi) 中選取安裝喜歡的軟件了。

使用管理


裝好後後可以用

  • urpmq 套件名稱

  • 查詢是否已安裝某個套件。
    -p 查詢還沒安裝套件檔案的資訊
    -i 顯示套件的功用資訊
    -l 列出包含了那些檔案
    -a 列出系統內所有的套件
    分頁輸出用rpm -qa | less
  • urpmi 套件名稱

  • 來安裝你想要的套件,
  • urpmf 檔案名稱

  • 可以查詢某個檔案是在那個套件裡面。
  • urpme 檔案名稱

  • 移除某個套件


即使在文字模式介面下,只要套件來源設好,要是需要安裝相依套件,urpmi也 會警告套件相依,在使用者同意後自行滿足安裝相依,十分方便。

安裝更新管理


新版在軟體有更新時,在gnome 工具列上也會提醒安裝更新。可以自行參考 /etc/urpmi/urpmi.cfg 的格式修改設定自動更新安裝。往後定期跑 urpmi.update -a 更新所有媒體資訊,文字模式介面下,每天也只要執行
urpmi --auto-select --media updates
就可以很簡單完成重大更新安裝。

不過有時候mirror 站會出問題卡住(其他如Ubuntu 也會),還是不建議完全倚賴用自動更新。

相依(dependency)問題


想把其他家的 RPM 套件裝到 Mandriva 上經常可能會遇到相依問題, 特別是出現 "找不到某某 .so 檔" ( shared objects: 動態聯結程式庫,) 之類的錯誤訊息。可能要到sophie/rpmfind 網上搜尋那個套件裡面提供欠缺的 .so程式庫,。 找不到同樣版本的話,有時到 /lib 或 /lib64 下建立 symbolic link 欺騙系統也許能成功。如
ln -s 某某.so.現有版 某某.so.需要版
不過32 位元 跟 64 位元程式庫通常是無法互用的。

此外 alien 可以將 .deb 與 .rpm 檔案互相轉換; 不過可能也會遭遇相依性問題。

星期二, 1月 22, 2008

Blosxom 外掛 (Plugins)

下載後若有.txt副檔名則要把.txt副檔名去掉,丟進 plugin 目錄下,除了 "writeback" 以外,一般都是直接修改 plugin 檔裡的設定(多半是些路徑名稱而己)就好了。
目前試驗成功的Blosxom Plugin 計有

星期一, 1月 21, 2008

blosxom writeback plugin

writeback plugin提供回應與(張貼)回溯(TrackBack 有人翻"搥背")功能。

讀者回應資料預設會放在變數$writeback_dir
也就是 blosxom::plugin_state_dir/writeback下依分類階層展開。
所以移動網誌檔案時,相關的回應資料 .wb檔也要跟著移動。

星期六, 1月 19, 2008

Eamcs文字模式熱鍵對應說明

一般所謂的Emacs 命令其實是縮寫了的熱鍵. 指令的字母按鍵沒有大小寫分別,有些鍵(如Meta-a) 在不同模式(如文字模式跟HTML模式)下,移動的方式會不同。

"Ctrl" 表 Ctrl 鍵
"Meta" 表 Meta 鍵,一般應該就是你電腦上的左"Alt"鍵,但如果"Alt"沒作用,
被其他程式佔用,則可以 ESC 鍵來取代之。請先按"ESC",再按"某鍵",這樣就
等於Meta-"某鍵"
"RET" 表 RETURN 或 ENTER 鍵
"ESC" 表 ESC鍵
"BS" 表 Backspace鍵
"DEL" 表 Delete 鍵
"SPC" 表 空白鍵
"F1" - "F12" 對應F1 到 F12功能鍵

兩鍵中有空白鍵表示要分開按,"某鍵1"-"某鍵2" 表示"某鍵1"跟"某鍵2"一起按。例如Ctrl-S-_ 功能如同 Ctrl-x u ,兩者都是回手之前命令,但是 Ctrl-S-_ 要3鍵一起按,Ctrl-x u要先按 Ctrl跟x 再按u。

對於自行定義文字或滑鼠模式熱鍵,參見
Emacs / X window 鍵盤滑鼠定義
每次改完.emacs 需要從新啟動emacs 。要是不確定,想要先試試,可以用
1. M-x global-set-key RET 交互式的綁定某鍵到某命令。
2. C-x Esc Esc 重複顯示上一條"複雜(complex)命令"。會在 minibuffer 裡看到應該寫在 .emacs 的東西。 確定了再改 .emacs

按鍵可以綁定到很複雜的命令,基本上容許執行非常複雜的程式。關於寫elisp 程式可參考
http://cl-cookbook.sourceforge.net/index.html

熱鍵對應列表



檔案


Ctrl-x Ctrl-f 開啟檔案(不給檔名直接"enter"鍵可以在mini buffer中用選的)
Ctrl-x i 插入檔案到目前游標位置
Ctrl-x d 開啟目錄
Ctrl-x Ctrl-s 存檔
Ctrl-x Ctrl-w 另存新檔

游標移動


Meta-m 移到本列第一個(非空白)字元
Ctrl-a 移到列首 (等同於 "Home")
Ctrl-e 移到列尾 (等同於 "End")
Meta-a 移到句首 (emacs 似乎不能辨別中文句號,而變成跳到下一段)
Meta-e 移到句尾 (emacs 似乎不能辨別中文句號,而變成跳到下一段)
Ctrl-f 往前移動一個字元 (等同於 "向左")
Ctrl-b 往後移動一個字元 (等同於 "向右")
Meta-f 往前移一個字 (等同於 Ctrl-"向左" 或 Meta-"向左")
Meta-b 往後移一個字 (等同於 Ctrl-"向右" 或 Meta-"向右" )
Meta-[ 往前移一段

Ctrl-"Home" 移到檔頭
Ctrl-"End" 移到檔尾
Meta-< 移到檔頭 (只限於在 Xemacs 下,emacs下似乎被gcin的 Alt-Shift 片語輸入用法搶掉了)
Meta-> 移到檔尾 (只限於在 Xemacs 下,emacs下似乎被gcin的 Alt-Shift 片語輸入用法搶掉了)
Ctrl-n 向下移動一行 (等同於 "向下")
Ctrl-p 向上移動一行 (等同於 "向上")
Meta-r 移到左中行 Move point to left margin, vertically centered in the window (move-to-window-line). Text does not move on the screen.
Ctrl-v 翻下一頁
Meta-v 翻上一頁
Ctrl-l 重畫螢幕,游標連文字移到中間列

關於命令本身的命令


Meta-x 輸入命令(例如按Meta-x後輸入goto-line就可以跳行)
Ctrl-g 中斷命令(有時按錯了hot key,要退出來)
ESC ESC ESC 取消執行指令
Ctrl-_ 復原最近一次指令(等同於 Ctrl-x u 但 Ctrl-x u 會衝到xcin的內碼輸入啟動鍵)
Ctrl-u Ctrl-x u Undo one batch of changes in the region
Meta-n 執行n遍剛剛的按鍵 (n 為一個自然數) 如 Meta-10 Meta-b 會往後移十個字

離開


Ctrl-z 文字作業環境:暫停emacs ,回到shell 命令列,或在X視窗裡,最小化窗框(frame)
Ctrl-x Ctrl-c 離開 Emacs (save-buffers-kill-emacs)

區塊(region)


emacs的區塊 Active時會反白你所選的範圍,有兩種形式,此時可以用Ctrl-w砍掉反白區Ctrl-x TAB indent反白區...等下命令的方式。另外就是像pe2一樣,標選區塊頭尾後來 copy ....

一般說來在X 視窗下,用滑鼠就可以標示文字了,只要用滑鼠左鍵標好然後移動游標到區域的末端,然後用就可以用
滑鼠中鍵 貼上
滑鼠右鍵連按兩下 剪下 (或按 "Del")

Ctrl-@ 開始區塊標示 (等同於Ctrl-"SPC" )
Ctrl-x h 標示整個編輯區(等同於整個檔案)
Ctrl-w 剪下標記的區塊
Ctrl-y 把剛剛砍掉的或在區塊中的文字貼回
Ctrl-x Ctrl-x 標示區域的末端

檔案緩衝區(buffer)與多重視窗(window)/窗框(frame)


Ctrl-x 0 關掉目前視窗
Ctrl-x 1 砍掉其他所有視窗(只剩一個視窗)
Ctrl-x 2 在窗框裡創造水平分割視視窗
Ctrl-x 3 在原本的窗框裡創造垂直新視窗 (等同於 "F2" 2)
Ctrl-x o 跳到別(other 的o)的視窗去
Ctrl-x 5 2 開新的窗框
Ctrl-x 5 0 關閉目前的窗框
Ctrl-x Ctrl-b 列出目前所有編輯中的檔案緩衝區清單
Ctrl-x b 切換到別的檔案緩衝區去
Ctrl-x k 關閉目前檔案緩衝區
F2 分割成左右兩視窗

所有編輯中的檔案會用到一個緩衝區

巨集


Ctrl-x ( 開始巨集(紀錄你所按的鍵)
Ctrl-x ) 結束巨集
Ctrl-x e 執行剛剛紀錄的巨集

說明


Ctrl-h 啟動說明 (等同於 "F1" )
Ctrl-h t 使用教學Emacs Tutotial (help-with-tutorial)
Ctrl-h b 看熱鍵對應功能
Ctrl-h k 看command對應的key
ESC ESC ESC 取消執行指令
F10 功能表(Menu Bar)
Meta-` 顯示Menu Bar 功能表(在文字視窗內)


刪除


BS 刪除游標前面的一個字元
DEL 刪除游標目前指的字元
Ctrl-d 刪除游標目前指的字元
Ctrl-k 刪除游標後至行尾整行所有字元
Meta-DEL 砍掉游標前一整個字
Meta-d 砍掉游標後一整個字
Ctrl-x Ctrl-o 刪除空行 Delete all but one of many consecutive blank lines (delete-blank-lines)

搜尋/取代


Ctrl-s 搜尋字串(一直按就一直往前尋找)
Ctrl-r 往後搜尋字串(reverse)
Meta-Ctrl-s 正規表示式(Regular express)搜尋
Meta-% 搜尋取代(按!可以全部換掉,要不然會一個一個問按y/n回答)

其他


Meta-t 與前一字兩字互換
Ctrl-x Ctrl-t 與前一行兩行互換
Ctrl-o 插入空白行
Ctrl-x TAB (等同於 Meta-Ctrl-\)indent 區塊
TAB 對齊indent

只適用Emacs 的命令


F10 功能表 (Menu Bar)
Ctrl-x z 重復最近指令
Ctrl-x zz 再次重復z(每一個z 重復一次)下次的命令

Blosxom moreentries 外掛程式安裝

把一頁塞不下網誌目錄的用加上Prev/Next 按鍵呈現出來
把 $moreentries::links 加到 目錄頁 如 foot.html, head.html即可


在某些blog 系統上(如樂多跟丁丁大站),這個功能叫作"繼續閱讀"