Cisco - Network Operating System
點對點 - 專綫介面卡 - 介面卡櫃
2010/11/10
2010/09/25
COSCUP 2010 札記
COSCUP 2010 + GNOME.Asia 2010
這是我第一次參加 COSCUP,今年還與 GNOME.Asia 合辦,實在是非常豐富。
而且 COSCUP 團隊竟然還搞到中央研究院這種場地,it's freaking COOL!
*2010/08/14
開場演講是 HTML5 – More Web for More people,
講者是 Opera 的 CSO(Chief Standards Officer,首席網路標準長)Charles McCathieNevile。
其實我聽不是很懂,坐後排聲音很小,加上我英文也不是那麼好。
他曾在 W3C 制定網路標準,如 HTML、CSS 等,我想正是他在 Opera 擔任 CSO 的原因。
對於網頁設計師、網路程式師來說,他簡直就是衆神之一,因爲都得照他們訂的規則來玩。
當他談到 HTML5 在無障礙方面的設計時,我死命地用力聽。
我吃了不少無障礙的苦頭。
但對於他能從身障者的角度出發,設計能照顧到所有人的網頁規則,我真的很佩服。
這是真正的大愛。
無障礙設計對網頁設計師來說可能有點綁手綁腳,
可是如果有天我手腳或眼不便,而又需要上網時,我將會非常感謝製作無障礙網頁的人。
(延伸閱讀:http://www.ifanr.com/18070)
下一個 session 我其實很猶豫,我在想要不要去 Sahana Taiwan Development 那場,
因爲它可能會和我以後在氣象局的服役工作有關。
不過最後還是在國際會議廳坐滿了 HTML5 for Programmers 與 HTML5: Building the Next Generation Web Applications 這兩場。
當然,也因此錯過了 CSS3 新功能大補帖那場。
這兩場的講者分別是 Mike Smith 與 Eric Bidelman,
前者在 W3C 與 WHATWG(http://www.whatwg.org)負責 HTML5,
後者是 Google 工程師,Google Docs 是他幹的。
當然,我還是有聽沒有懂,不過他們介紹了兩個自己爲 HTML5 做的 demo 網站,都非常酷!
Slide 那個我之前有看過,另一個很適合做 HTML5 入門教程。
http://slides.html5rocks.com/
http://www.html5rocks.com/
中午免費的魚翅(魚排雞翅)便當後,是此次贊助商之一的 Nokia 來講 Meego。
其實 Qt 做出來的介面我還蠻喜歡的,有質感,場外也有 Nokia N900 給大家試用。
只是主講的 Nokia 技術經理張弛先生,有點貴氣逼人的味道。
他這個人讓我覺得很有距離感,而且商業氣息很濃厚。
我在猜,中國大陸現階段企業內管理階級的人是不是都這個態勢?
下午我選的場次是 Doxygen 程式說明文件產生器與 Gettext 網站多國語系製作。
講者分別是 Thinker(http://www.codemud.net/~thinker)與 Tsung(http://plog.longwin.com.tw)。
Thinker 使用他的一個專案 MadButterfly 當作例子,示範 Doxygen 怎麼運作。
附帶一提,MadButterfly 是一個非常酷的 SVG 專案(http://www.assembla.com/wiki/show/MadButterfly)。
簡單說,Doxygen 是一個輔助產生程式說明文件的工具。
使用前,先將 Doxygen 配置好,設定文字編碼(例如:utf-8)等參數。
在程式碼中進行註解時,只要引入 Doxygen 看得懂的區隔符號(例如:/*! 註解 */),
執行 doxygen 指令時,Doxygen 就會抓取這些內容產生有條不紊的 html 檔或 pdf 檔。
這種東西需要親手做過一次,就會馬上懂了。
詳細操作需要翻一下手冊(http://www.stack.nl/~dimitri/doxygen/manual.html)。
Gettext(http://zh.wikipedia.org/wiki/Gettext)是 GNU 一套常用的多語系製作工具。
會產生 .po 與 .mo 檔,前者是人類看得懂要翻譯內容的檔案,後者是編譯後的二進位檔。
其實我是今天聽講才知道 .po .mo 檔,因爲從沒參與過 Open Source 的翻譯工作 ...
簡單說,就是把需要翻譯的字詞抽取出來放到 .po ,人們編輯 .po 檔,把翻譯寫進去。
.po 檔完成後,再編譯成二進位的 .mo 檔,程式執行時照 Gettext 的規矩就可以取用了。
最後,Tsung 提了一個三分鐘就可以完成全網站多語系製作的方法:Google Translator。
我當下真是嚇一跳,是真的嚇一跳!一語驚醒夢中人!
雖然講者可能是半開玩笑,可是我真的覺得取用 Google 的輪子就好了!
The Big Picture 就把它用得很好。
之後我前往了 Processing – 專為設計師、建築師、藝術家設計的簡易又強大的數位藝術工具,以及自由軟體於互動技術。講者分別是沈聖博(http://arrowkey.net)與甘泰瑋(http://www.twkan.com)。
Processing 是一套底層爲 Java 的設計工具,它強調是數位藝術工具,
它使用起來有點像在寫 OpenGL,又像是寫 SVG,可是並不會那麼複雜,
且使用對像包括藝術家,不會有程式門檻,只要會英文,基本上就可以寫了。
它很明顯是一套玩弄數位影像的工具,一張很普通的圖片丟進去,可以有很藝術的變化。
聽起來有點像 photoshop 的濾鏡,只是它可以是動畫的。
另外講者自己設計的 slide 也很有趣,tag 在上面漂啊漂的,也是用 Processing 做的,
他有提供 code 出來(http://arrowkey.net/openCode/tagSlides/)。
互動技術談到擴增實境(Augmented Reality, AR),那是我研究所其他幾位同學的題目,
講者在做的是用 QR Codes 當作 AR 的辨識標記,自己寫了掃描讀取的工具。
他的作品還上過 SIGGRAPH,非常屌!
講者有許多筆記在他的部落格(http://jwill.pixnet.net/blog)。
接下來我跳了兩個 session,分別是以中文的名义融入开源世界與 Jetpack SDK。
講者是黃鵬(https://launchpad.net/~shawn-p-huang)與尤孝庭(http://blog.littleb.tc)。
黃鵬是個很了不起的傢伙!
Linux 底下許多許多許多許多許多的中文化都是他幹的。
我現在正在用來打字產生這篇文章的 ibus 輸入法平臺也是他寫。
(雖然在 KDE 與 Chrome 底下還有點毛病啦,哈。)
他在這場演講談了許多開源中文字型的故事,不過我聽過就忘啦!
現在中文字型我都是選用文泉微正黑體,Google Droid 在簡體中文的方面並不是很好。
我注意到他講話很溫吞、優雅,感覺像是老北京衚衕裡,住在三合院內的生活大師。
不知道他是不是北京人?
尤孝庭是臺灣的 Mozilla 親善大師,他做了些很有趣的 Firefox 套件(https://addons.mozilla.org/en-US/firefox/user/2627913)。
爲了玩 Voyage 那個套件,我還特地打開許久沒用的 Firefox,瀏覽一堆網站製作記錄。
他介紹的 Jetpack 是一套開發 Firefox 套件的 SDK,雖然我不大懂,不過這東西很酷!
你只要使用 HTML、CSS、Javascript 就可以瞬間爲自己寫一個 Firefox 外掛。
未來 Firefox 4 的外掛應該是以這個爲平臺,安裝或卸載外掛也不需重啓 Firefox。
晚餐大會提供了一大堆半徑爲 z,高爲 a 的圓柱體食物(pi*z*z*a),還有可樂。
當然,全部都是免費的。爽!free software,free food。
吃飽後在 Ubuntu 的 BOF(Birds Of a Feather)玩。
下午的我是 Programmer 我也想當 Musician 那場的講師張正一,他是 Ubuntu Studio 玩家。
他介紹了一套 drum machine 軟體:Hydrogen(http://www.hydrogen-music.org)。
他還現場表演打擊了一段,實在是非常的 rock!
Ubuntu Studio 真的很「工作室」,玩起來跟在做 3D 動畫沒兩樣(它也真的可以做 3D)。
會後我跑去問他些問題,因爲我也曾夢想有一套自己的爵士鼓,沒錢買鼓,敲電腦總行吧?
他拉我到場外從樂理開始聊起,哈哈!oh,my!
我說有一把吉他,可是不會彈。
他隨身竟然拿出一把烏克麗麗!開始從最基本的和弦爲我講起。
我真的很不好意思,他講得很認真,我這音痴只好努力地聽。
晚上回去的路上,同車除了我的音樂老師張正一,(笑)
還有 CrBoy(http://blog.crboy.net)與一位 COSCUP 工作人員。
我記得火車上,張魔法設計師正一還拿出烏克麗麗來彈小曲,真是太愜意了!
我一定得學好吉他。
我幾乎每次參加自由社群的活動都是扮演吃白食的角色。
沒啥貢獻,沒有能力,沒有東西可以分享 :-(
所以在 Ubuntu BOF 上,我只能掏錢買些貼紙,
小小些錢,希望社群能有些小小補,這是我目前力所能及了 ...
不過最近對宇宙、黑洞、大爆炸倒有些心得,不知道這種能不能分享,哈。
*2010/08/15
第二天的開場演講是 Road to GNOME 3,講者是 Brian Cameron。
Brian 是 GNOME 基金會的指導董事,現任職於 Oracle。
他 demo 了新一代 GNOME 的樣子(http://www.youtube.com/watch?v=oYOe9INyy88)。
好吧,我得老實說:我嚇到了。where is my application menu !? where is task bar !?
GNOME 3 應該算是 UI 上的大革命,真的很眩目。
但是我想,很多人應該跟我一樣,對於習慣新的革命性的東西,多少都會有點恐懼。
畢竟革命是需要破壞的,破壞原有的習慣、原有的流程。
其實看到 demo 畫面的當下,我馬上決定回家後要裝 KDE 起來用看看了。
我想先習慣一下,以後 GNOME 3 真的變這樣的時候,至少我還多一個選擇。
我後來發現,GNOME 3 的多個桌面其實就是 KDE 裡面 Activities 的概念。
說不定之後會很快習慣 GNOME 3,說不定習慣後會很有效率?who know.
Tea Break 後,我還是去了 GNOME 的 session。
Building and Using a Memory Profiler,講者 Holger Hans Peter Freyther。
完。全。聽。不。懂!
感覺是記憶體效能調校的事情,好像在教一些技巧,還是在做一些 hacks?
好像是講解怎麼去優化 GNOME 底下程式對記憶體的存取(?)
接着是 xPad – Building Simple Tablet OS with Gtk/WebKit,講者 Penk,陳品勳。
Penk 來頭可不小,他是 xPUD 的老爹(http://www.xpud.org)。
這場人突然爆多的,像是熱門院線片。
Penk 也沒有讓大家失望,除了預告新東西外,他整場真是活力滿滿。
雖然技術細節我還是聽不懂,可是這場真的很 party,damn happy!
The Culture of Sharing,講者 Sascha Pallenberg。
在談 Open Source 文化、心態、思想的事情。
App Engine 大爆料,講者葉平,是位物理學家,待過 NASA,目前在 Google 服務。
主要在分享這次 COSCUP 報名系統使用 Google App Engine 處理的小故事。
提醒大家,程式務必要記得做 exception 處理。
之後我聽了 The NoSQL Movement 與 Implementation of websocket server program。
講者分別是周立瑋與彭兆蔚。
NoSQL 那場講者講話也很優雅、緩慢,所以我差點睡着了。
他本來要介紹 Couch Database,可是前面鋪陳太久了,剛要開始提就結束了。
NoSQL 有點像在談雲計算時代的資料庫應該是怎麼樣的。
有篇文章可以參考一下:http://oss-tw.blogspot.com/2010/04/nosql.html
NoSQL 現在被解釋爲 Not Only SQL。
websocket 這場的彭兆蔚他很酷,他本來是臺大心理系的,自修考上了臺大資工所。
他擅長 Java,目前在資策會服務,開講前他好像酸了一下當前的瀏覽器大戰,哈。
我對這場的印象就是,websocket 像是 AJAX 的正式化了,就是文件中有它了。
從舊有的 Client 跟 Server 要哪些東西,Server 才給 Client 哪些東西;
變成只要 Client 告訴 Server 哪些是需要的, Server 主動推這些資訊給 Client。
但 websocket 的內容還是草案,講者也強調他現在都是根據 draft 在寫 websocket 程式。
我覺得它非常麻煩,head 裡面個很怪的密碼規則,而且還得 coder 自行處理加解密!
因爲一定有安全性問題,總不能隨便接收一個不知道是不是真的 Server 推來的檔案吧?
coder 得根據 websocket 的草案自行寫程式在 Server 端處理加解密問題。
我在想,這之後一定會 API 或人家弄好的標準工具,Apache 可能也會有大改版支援。
但講者直接點出,國外有草案就馬上在做新的東西了,我們不能總是等工具出來才創新!
真是有骨氣、有志氣、有才幹 ...
真羨慕。
之後回到國際會議廳,是一連串的 Cloud 相關技術與工具。
說起來我應該覺得熟悉才是,可我知道的跟議題相比,真是小巫見大巫了。
Building a Cloud Computing Platform by Using Open Source Software - Michael Pan
快速佈署叢集式的搜尋引擎(CrawlZilla) - 郭文傑
Yahoo Traffic Server, a Powerful Cloud Gatekeeper - Shih-Yong Wang
Solr on Cassandra - Gasol
這些都得多聽幾次才會有概念。
當然,我還有一些遺珠之憾:
Sahana Taiwan Development - 胡崇偉 Marr (中研院, 研究助理)
網頁設計師必備: CSS3 新功能大補帖 - 謝子斌 (Web Evangelist, Opera)
由馬鈴薯小子看軟體在地化 - 黃佑仁 Rock (台大資工)
Cloud Experience — from Google to Delta - 翟本喬 (台達電子, 資深處長)
Javascript in Linux Desktop - yurenju
好在每次 COSCUP 都有錄影和投影片備份:
http://plog.longwin.com.tw/my_note/2010/09/23/coscup-note-ppt-2010
*
這種活動真的是好康到極點!
但好康的東西背後總是會有一堆不求好康的人在默默付出。
每次 COSCUP 的籌備到舉辦是由一羣志工拚出來的,
這羣人到頭來可能還沒辦法好好聽完一場演講。
他們給我的感覺,很像學校社團在出服務隊的那種樣子。
我懂那種團隊間創造革命情感的過程。
敬你們一杯!
這是我第一次參加 COSCUP,今年還與 GNOME.Asia 合辦,實在是非常豐富。
而且 COSCUP 團隊竟然還搞到中央研究院這種場地,it's freaking COOL!
*2010/08/14
開場演講是 HTML5 – More Web for More people,
講者是 Opera 的 CSO(Chief Standards Officer,首席網路標準長)Charles McCathieNevile。
其實我聽不是很懂,坐後排聲音很小,加上我英文也不是那麼好。
他曾在 W3C 制定網路標準,如 HTML、CSS 等,我想正是他在 Opera 擔任 CSO 的原因。
對於網頁設計師、網路程式師來說,他簡直就是衆神之一,因爲都得照他們訂的規則來玩。
當他談到 HTML5 在無障礙方面的設計時,我死命地用力聽。
我吃了不少無障礙的苦頭。
但對於他能從身障者的角度出發,設計能照顧到所有人的網頁規則,我真的很佩服。
這是真正的大愛。
無障礙設計對網頁設計師來說可能有點綁手綁腳,
可是如果有天我手腳或眼不便,而又需要上網時,我將會非常感謝製作無障礙網頁的人。
(延伸閱讀:http://www.ifanr.com/18070)
下一個 session 我其實很猶豫,我在想要不要去 Sahana Taiwan Development 那場,
因爲它可能會和我以後在氣象局的服役工作有關。
不過最後還是在國際會議廳坐滿了 HTML5 for Programmers 與 HTML5: Building the Next Generation Web Applications 這兩場。
當然,也因此錯過了 CSS3 新功能大補帖那場。
這兩場的講者分別是 Mike Smith 與 Eric Bidelman,
前者在 W3C 與 WHATWG(http://www.whatwg.org)負責 HTML5,
後者是 Google 工程師,Google Docs 是他幹的。
當然,我還是有聽沒有懂,不過他們介紹了兩個自己爲 HTML5 做的 demo 網站,都非常酷!
Slide 那個我之前有看過,另一個很適合做 HTML5 入門教程。
http://slides.html5rocks.com/
http://www.html5rocks.com/
中午免費的魚翅(魚排雞翅)便當後,是此次贊助商之一的 Nokia 來講 Meego。
其實 Qt 做出來的介面我還蠻喜歡的,有質感,場外也有 Nokia N900 給大家試用。
只是主講的 Nokia 技術經理張弛先生,有點貴氣逼人的味道。
他這個人讓我覺得很有距離感,而且商業氣息很濃厚。
我在猜,中國大陸現階段企業內管理階級的人是不是都這個態勢?
下午我選的場次是 Doxygen 程式說明文件產生器與 Gettext 網站多國語系製作。
講者分別是 Thinker(http://www.codemud.net/~thinker)與 Tsung(http://plog.longwin.com.tw)。
Thinker 使用他的一個專案 MadButterfly 當作例子,示範 Doxygen 怎麼運作。
附帶一提,MadButterfly 是一個非常酷的 SVG 專案(http://www.assembla.com/wiki/show/MadButterfly)。
簡單說,Doxygen 是一個輔助產生程式說明文件的工具。
使用前,先將 Doxygen 配置好,設定文字編碼(例如:utf-8)等參數。
在程式碼中進行註解時,只要引入 Doxygen 看得懂的區隔符號(例如:/*! 註解 */),
執行 doxygen 指令時,Doxygen 就會抓取這些內容產生有條不紊的 html 檔或 pdf 檔。
這種東西需要親手做過一次,就會馬上懂了。
詳細操作需要翻一下手冊(http://www.stack.nl/~dimitri/doxygen/manual.html)。
Gettext(http://zh.wikipedia.org/wiki/Gettext)是 GNU 一套常用的多語系製作工具。
會產生 .po 與 .mo 檔,前者是人類看得懂要翻譯內容的檔案,後者是編譯後的二進位檔。
其實我是今天聽講才知道 .po .mo 檔,因爲從沒參與過 Open Source 的翻譯工作 ...
簡單說,就是把需要翻譯的字詞抽取出來放到 .po ,人們編輯 .po 檔,把翻譯寫進去。
.po 檔完成後,再編譯成二進位的 .mo 檔,程式執行時照 Gettext 的規矩就可以取用了。
最後,Tsung 提了一個三分鐘就可以完成全網站多語系製作的方法:Google Translator。
我當下真是嚇一跳,是真的嚇一跳!一語驚醒夢中人!
雖然講者可能是半開玩笑,可是我真的覺得取用 Google 的輪子就好了!
The Big Picture 就把它用得很好。
之後我前往了 Processing – 專為設計師、建築師、藝術家設計的簡易又強大的數位藝術工具,以及自由軟體於互動技術。講者分別是沈聖博(http://arrowkey.net)與甘泰瑋(http://www.twkan.com)。
Processing 是一套底層爲 Java 的設計工具,它強調是數位藝術工具,
它使用起來有點像在寫 OpenGL,又像是寫 SVG,可是並不會那麼複雜,
且使用對像包括藝術家,不會有程式門檻,只要會英文,基本上就可以寫了。
它很明顯是一套玩弄數位影像的工具,一張很普通的圖片丟進去,可以有很藝術的變化。
聽起來有點像 photoshop 的濾鏡,只是它可以是動畫的。
另外講者自己設計的 slide 也很有趣,tag 在上面漂啊漂的,也是用 Processing 做的,
他有提供 code 出來(http://arrowkey.net/openCode/tagSlides/)。
互動技術談到擴增實境(Augmented Reality, AR),那是我研究所其他幾位同學的題目,
講者在做的是用 QR Codes 當作 AR 的辨識標記,自己寫了掃描讀取的工具。
他的作品還上過 SIGGRAPH,非常屌!
講者有許多筆記在他的部落格(http://jwill.pixnet.net/blog)。
接下來我跳了兩個 session,分別是以中文的名义融入开源世界與 Jetpack SDK。
講者是黃鵬(https://launchpad.net/~shawn-p-huang)與尤孝庭(http://blog.littleb.tc)。
黃鵬是個很了不起的傢伙!
Linux 底下許多許多許多許多許多的中文化都是他幹的。
我現在正在用來打字產生這篇文章的 ibus 輸入法平臺也是他寫。
(雖然在 KDE 與 Chrome 底下還有點毛病啦,哈。)
他在這場演講談了許多開源中文字型的故事,不過我聽過就忘啦!
現在中文字型我都是選用文泉微正黑體,Google Droid 在簡體中文的方面並不是很好。
我注意到他講話很溫吞、優雅,感覺像是老北京衚衕裡,住在三合院內的生活大師。
不知道他是不是北京人?
尤孝庭是臺灣的 Mozilla 親善大師,他做了些很有趣的 Firefox 套件(https://addons.mozilla.org/en-US/firefox/user/2627913)。
爲了玩 Voyage 那個套件,我還特地打開許久沒用的 Firefox,瀏覽一堆網站製作記錄。
他介紹的 Jetpack 是一套開發 Firefox 套件的 SDK,雖然我不大懂,不過這東西很酷!
你只要使用 HTML、CSS、Javascript 就可以瞬間爲自己寫一個 Firefox 外掛。
未來 Firefox 4 的外掛應該是以這個爲平臺,安裝或卸載外掛也不需重啓 Firefox。
晚餐大會提供了一大堆半徑爲 z,高爲 a 的圓柱體食物(pi*z*z*a),還有可樂。
當然,全部都是免費的。爽!free software,free food。
吃飽後在 Ubuntu 的 BOF(Birds Of a Feather)玩。
下午的我是 Programmer 我也想當 Musician 那場的講師張正一,他是 Ubuntu Studio 玩家。
他介紹了一套 drum machine 軟體:Hydrogen(http://www.hydrogen-music.org)。
他還現場表演打擊了一段,實在是非常的 rock!
Ubuntu Studio 真的很「工作室」,玩起來跟在做 3D 動畫沒兩樣(它也真的可以做 3D)。
會後我跑去問他些問題,因爲我也曾夢想有一套自己的爵士鼓,沒錢買鼓,敲電腦總行吧?
他拉我到場外從樂理開始聊起,哈哈!oh,my!
我說有一把吉他,可是不會彈。
他隨身竟然拿出一把烏克麗麗!開始從最基本的和弦爲我講起。
我真的很不好意思,他講得很認真,我這音痴只好努力地聽。
晚上回去的路上,同車除了我的音樂老師張正一,(笑)
還有 CrBoy(http://blog.crboy.net)與一位 COSCUP 工作人員。
我記得火車上,張魔法設計師正一還拿出烏克麗麗來彈小曲,真是太愜意了!
我一定得學好吉他。
我幾乎每次參加自由社群的活動都是扮演吃白食的角色。
沒啥貢獻,沒有能力,沒有東西可以分享 :-(
所以在 Ubuntu BOF 上,我只能掏錢買些貼紙,
小小些錢,希望社群能有些小小補,這是我目前力所能及了 ...
不過最近對宇宙、黑洞、大爆炸倒有些心得,不知道這種能不能分享,哈。
*2010/08/15
第二天的開場演講是 Road to GNOME 3,講者是 Brian Cameron。
Brian 是 GNOME 基金會的指導董事,現任職於 Oracle。
他 demo 了新一代 GNOME 的樣子(http://www.youtube.com/watch?v=oYOe9INyy88)。
好吧,我得老實說:我嚇到了。where is my application menu !? where is task bar !?
GNOME 3 應該算是 UI 上的大革命,真的很眩目。
但是我想,很多人應該跟我一樣,對於習慣新的革命性的東西,多少都會有點恐懼。
畢竟革命是需要破壞的,破壞原有的習慣、原有的流程。
其實看到 demo 畫面的當下,我馬上決定回家後要裝 KDE 起來用看看了。
我想先習慣一下,以後 GNOME 3 真的變這樣的時候,至少我還多一個選擇。
我後來發現,GNOME 3 的多個桌面其實就是 KDE 裡面 Activities 的概念。
說不定之後會很快習慣 GNOME 3,說不定習慣後會很有效率?who know.
Tea Break 後,我還是去了 GNOME 的 session。
Building and Using a Memory Profiler,講者 Holger Hans Peter Freyther。
完。全。聽。不。懂!
感覺是記憶體效能調校的事情,好像在教一些技巧,還是在做一些 hacks?
好像是講解怎麼去優化 GNOME 底下程式對記憶體的存取(?)
接着是 xPad – Building Simple Tablet OS with Gtk/WebKit,講者 Penk,陳品勳。
Penk 來頭可不小,他是 xPUD 的老爹(http://www.xpud.org)。
這場人突然爆多的,像是熱門院線片。
Penk 也沒有讓大家失望,除了預告新東西外,他整場真是活力滿滿。
雖然技術細節我還是聽不懂,可是這場真的很 party,damn happy!
The Culture of Sharing,講者 Sascha Pallenberg。
在談 Open Source 文化、心態、思想的事情。
App Engine 大爆料,講者葉平,是位物理學家,待過 NASA,目前在 Google 服務。
主要在分享這次 COSCUP 報名系統使用 Google App Engine 處理的小故事。
提醒大家,程式務必要記得做 exception 處理。
之後我聽了 The NoSQL Movement 與 Implementation of websocket server program。
講者分別是周立瑋與彭兆蔚。
NoSQL 那場講者講話也很優雅、緩慢,所以我差點睡着了。
他本來要介紹 Couch Database,可是前面鋪陳太久了,剛要開始提就結束了。
NoSQL 有點像在談雲計算時代的資料庫應該是怎麼樣的。
有篇文章可以參考一下:http://oss-tw.blogspot.com/2010/04/nosql.html
NoSQL 現在被解釋爲 Not Only SQL。
websocket 這場的彭兆蔚他很酷,他本來是臺大心理系的,自修考上了臺大資工所。
他擅長 Java,目前在資策會服務,開講前他好像酸了一下當前的瀏覽器大戰,哈。
我對這場的印象就是,websocket 像是 AJAX 的正式化了,就是文件中有它了。
從舊有的 Client 跟 Server 要哪些東西,Server 才給 Client 哪些東西;
變成只要 Client 告訴 Server 哪些是需要的, Server 主動推這些資訊給 Client。
但 websocket 的內容還是草案,講者也強調他現在都是根據 draft 在寫 websocket 程式。
我覺得它非常麻煩,head 裡面個很怪的密碼規則,而且還得 coder 自行處理加解密!
因爲一定有安全性問題,總不能隨便接收一個不知道是不是真的 Server 推來的檔案吧?
coder 得根據 websocket 的草案自行寫程式在 Server 端處理加解密問題。
我在想,這之後一定會 API 或人家弄好的標準工具,Apache 可能也會有大改版支援。
但講者直接點出,國外有草案就馬上在做新的東西了,我們不能總是等工具出來才創新!
真是有骨氣、有志氣、有才幹 ...
真羨慕。
之後回到國際會議廳,是一連串的 Cloud 相關技術與工具。
說起來我應該覺得熟悉才是,可我知道的跟議題相比,真是小巫見大巫了。
Building a Cloud Computing Platform by Using Open Source Software - Michael Pan
快速佈署叢集式的搜尋引擎(CrawlZilla) - 郭文傑
Yahoo Traffic Server, a Powerful Cloud Gatekeeper - Shih-Yong Wang
Solr on Cassandra - Gasol
這些都得多聽幾次才會有概念。
當然,我還有一些遺珠之憾:
Sahana Taiwan Development - 胡崇偉 Marr (中研院, 研究助理)
網頁設計師必備: CSS3 新功能大補帖 - 謝子斌 (Web Evangelist, Opera)
由馬鈴薯小子看軟體在地化 - 黃佑仁 Rock (台大資工)
Cloud Experience — from Google to Delta - 翟本喬 (台達電子, 資深處長)
Javascript in Linux Desktop - yurenju
好在每次 COSCUP 都有錄影和投影片備份:
http://plog.longwin.com.tw/my_note/2010/09/23/coscup-note-ppt-2010
*
這種活動真的是好康到極點!
但好康的東西背後總是會有一堆不求好康的人在默默付出。
每次 COSCUP 的籌備到舉辦是由一羣志工拚出來的,
這羣人到頭來可能還沒辦法好好聽完一場演講。
他們給我的感覺,很像學校社團在出服務隊的那種樣子。
我懂那種團隊間創造革命情感的過程。
敬你們一杯!
2010/09/24
Ubuntu LAMP 環境架設
#Ubuntu 架設 Apache、MySQL、PHP
#LAMP:Linux + Apache + MySQL + PHP
Apache 設定檔:
/etc/apache2/apache2.conf
/etc/apache2/ports.conf
/etc/apache2/*
PHP 設定檔:
/etc/php5/apache2/php.ini
MySQL 設定檔:
/etc/mysql/my.cnf
MySQL shell login:
mysql -h 127.0.0.1 -u root -p
mysql>?
mysql>SHOW DATABASES;
mysql>CREATE DATABASE 資料庫名稱;
mysql>DROP DATABASE 資料庫名稱;
mysql>SHOW VARIABLES LIKE 'char%' ;
mysql>SHOW COLLATION LIKE 'utf8%';
mysql>SHOW CHARACTER SET;
utf-8 is utf8 in MySQL.
Reference:
01. http://www.phpwact.org/php/i18n/utf-8/mysql
02. http://islandlinux.org/howto/migrating-mysql-utf-8-encoding
#LAMP:Linux + Apache + MySQL + PHP
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5 sudo service apache2 restart
sudo apt-get install mysql-server sudo apt-get install libapache2-mod-auth-mysql php5-mysql
Apache 設定檔:
/etc/apache2/apache2.conf
/etc/apache2/ports.conf
/etc/apache2/*
PHP 設定檔:
/etc/php5/apache2/php.ini
MySQL 設定檔:
/etc/mysql/my.cnf
MySQL shell login:
mysql -h 127.0.0.1 -u root -p
mysql>?
mysql>SHOW DATABASES;
mysql>CREATE DATABASE 資料庫名稱;
mysql>DROP DATABASE 資料庫名稱;
mysql>SHOW VARIABLES LIKE 'char%' ;
mysql>SHOW COLLATION LIKE 'utf8%';
mysql>SHOW CHARACTER SET;
utf-8 is utf8 in MySQL.
Reference:
01. http://www.phpwact.org/php/i18n/utf-8/mysql
02. http://islandlinux.org/howto/migrating-mysql-utf-8-encoding
2010/09/05
Ubuntu 美化與調校
僅適用於 Ubuntu 10.10 以下的系列!
註:「Super 鍵」即「Windows 鍵」。
*
【Macbuntu】
到 http://sourceforge.net/projects/macbuntu/ 下載原始檔,解壓縮。
切換到該資料夾,以一般使用者身份執行 ./install.sh。
安裝過程中會有許多調教、配置的問項,都是很簡單的英文,可以看一下再選擇。
如果一路 enter 到底使用預設的選項,也沒有差。
最後會跳出推薦的 Chrome 跟 Firefox 佈景套件,可以不用裝。
登出 Gnome 桌面,再登入,就完成了。
登入後,畫面底下那條工具列是 Docky。
不喜歡的 Docklet(程式圖示)可以直接拖拉出來,讓它消失。
如果不習慣它一直固定在那裡,點一下最左邊那個 Docklet 進行設定。
把 Hiding 選項選到 Autohide 就可以了。
畫面最上方 Panel 的左端是 Macbuntu 預設的 Main Menu,可以通通按右鍵刪掉。
再右鍵 > Add to Panel,選擇新增 Menu Bar。右鍵 > Move 可以調整位置。
*
【My Fonts Setting】
系統的字型調整,可以到桌面上點右鍵 > Change Desktop Background > Fonts
推薦使用 WenQuanYi Zen Hei(文泉驛正黑體),或 WenQuanYi Micro Hei。
字體大小依個人喜好調整。
修改 ~/.fonts.conf 變成以下內容:
*
【The Chrome Style Firefox】
我一直很喜歡這款簡潔美觀的 Firefox theme:
https://addons.mozilla.org/en-US/firefox/addon/chromifox-basic/
打開 Firefox,連過去,安裝,重新啓動 Firefox,that's it!
披着 Chrom 大衣的 Firefox。
*
【Faenza】
方正又圓融的圖示集:
http://gnome-look.org/content/show.php/Faenza?content=128143
安裝:
sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install faenza-icon-theme
啓用:
桌面右鍵 > Change Desktop Background > Theme > Customize > Icons > Faenza
*
【Gnome Do】
快捷鍵啓動的新體驗:
http://do.davebsd.com
安裝:
sudo add-apt-repository ppa:do-core/ppa
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install gnome-do
預設啓動鍵:
Super + Space(Windows 鍵 + 空白鍵)
叫出 Gnome Do 的視窗後,直接輸入要啓動的程式名稱或關鍵字,
Gnome Do 會找出相對應的程式,壓 enter 之後就會啓動,不用動到滑鼠。
Gnome Do 視窗右上角的箭頭 > Preferences > Appearance
在 Selected Theme 選擇喜歡的佈景樣式,把 Always show result window 打勾。
Gnome Do 視窗右上角的箭頭 > Preferences > General
可以把 Start Gnome Do at Login 取消掉。
*
【Gnome Startup】
隨着 Gnome 桌面一起啓動的還有使用者安裝的常駐程式。
這些常駐程式有時會拖慢 Gnome 桌面的登入速度,可以到這查看有哪些:
System > Preferences > Startup Applications
逐一檢查,並把不需要的勾掉,例如:Bluetooth Manager、Update Notifier
Gnome Do 或 Dropdox 的自動啓動也可以取消掉,記得程式本身的自動啓動也要設成取消!
可以自己寫一個啓動的腳本替代。
以 Gnome Do 爲例:
1」System > Preferences > Startup Applications > Gnome Do
2」取消它,然後點一下 Edit,複製 Command 欄位的內容
3」編輯一個腳本檔:~/my_startup.sh
4」內容:
6」新增一個啓動名稱,Command 欄位填上:~/my_starup.sh
7」登出再登入,測試腳本
*
【Gnome Shortcuts】
Gnomo 預設的快捷鍵很好用,可以到這裡查看或修改:
System > Preferences > Keyboard Shortcuts
Alt + F1:應用程式選單
Alt + F2:快速執行指令
Alt + F3:啓動 Terminal(我個人的手動設定)
Alt + F8:調整視窗大小
Alt + F9:最小化視窗
Alt + F10:最大化視窗
Ctrl + Alt + s:隱藏視窗
Ctrl + Alt + d:顯示桌面
Ctrl + Alt + 右箭頭:旋轉到右邊的 Workspace
Ctrl + Alt + 左箭頭:旋轉到右邊的 Workspace
Shift + Ctrl + Alt + 右箭頭:將當前視窗移到右邊的 Workspace
Shift + Ctrl + Alt + 左箭頭:將當前視窗移到左邊的 Workspace
*
【Compiz】
Ubuntu 預設就有安裝了 Compiz,不過需要手動啓用:
桌面右鍵 > Change Desktop Background > Visual Effects > Extra
Ubuntu 會自動連上 Internet 安裝對應的顯示卡驅動,弄好後,檢查視窗是否有果凍效果。
(如果已經安裝了 Macbuntu,它應該幫忙處理好了。)
Compiz 非常強大,而且難以駕馭。
以致於有了一套 CompizConfig Settings Manager 輔助設定軟體還不夠,
還需要另一套簡單版的 Simple CompizConfig Settings Manager 輔助設定軟體。
安裝:
sudo apt-get install compizconfig-settings-manager
sudo apt-get install simple-ccsm
啓動:
System > Preferences > CompizConfig Settings Manager
System > Preferences > Simple CompizConfig Settings Manager
設定:
[ Simple CompizConfig Settings Manager ]
Reference:
01. http://zx-1986.blogspot.com/2010/08/my-ubuntu-setup.html
02. http://playubuntu.blogspot.com/2010/09/ubuntugdm.html
註:「Super 鍵」即「Windows 鍵」。
*
【Macbuntu】
到 http://sourceforge.net/projects/macbuntu/ 下載原始檔,解壓縮。
切換到該資料夾,以一般使用者身份執行 ./install.sh。
安裝過程中會有許多調教、配置的問項,都是很簡單的英文,可以看一下再選擇。
如果一路 enter 到底使用預設的選項,也沒有差。
最後會跳出推薦的 Chrome 跟 Firefox 佈景套件,可以不用裝。
登出 Gnome 桌面,再登入,就完成了。
登入後,畫面底下那條工具列是 Docky。
不喜歡的 Docklet(程式圖示)可以直接拖拉出來,讓它消失。
如果不習慣它一直固定在那裡,點一下最左邊那個 Docklet 進行設定。
把 Hiding 選項選到 Autohide 就可以了。
畫面最上方 Panel 的左端是 Macbuntu 預設的 Main Menu,可以通通按右鍵刪掉。
再右鍵 > Add to Panel,選擇新增 Menu Bar。右鍵 > Move 可以調整位置。
*
【My Fonts Setting】
系統的字型調整,可以到桌面上點右鍵 > Change Desktop Background > Fonts
推薦使用 WenQuanYi Zen Hei(文泉驛正黑體),或 WenQuanYi Micro Hei。
字體大小依個人喜好調整。
修改 ~/.fonts.conf 變成以下內容:
true none false hintnone true serif WenQuanYi Zen Hei LiHei Pro Bitstream Vera Serif DejaVu Serif AR PL UMing TW AR PL UMing TW MBE AR PL UMing HK AR PL UMing CN sans-serif WenQuanYi Zen Hei LiHei Pro Bitstream Vera Sans DejaVu Sans AR PL UMing TW AR PL ShanHeiSun Uni AR PL UKai TW AR PL ZenKai Uni monospace WenQuanYi Zen Hei LiHei Pro AR PL UMing TW AR PL UMing TW MBE AR PL UMing HK AR PL UMing CN
*
【The Chrome Style Firefox】
我一直很喜歡這款簡潔美觀的 Firefox theme:
https://addons.mozilla.org/en-US/firefox/addon/chromifox-basic/
打開 Firefox,連過去,安裝,重新啓動 Firefox,that's it!
披着 Chrom 大衣的 Firefox。
*
【Faenza】
方正又圓融的圖示集:
http://gnome-look.org/content/show.php/Faenza?content=128143
安裝:
sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update && sudo apt-get install faenza-icon-theme
啓用:
桌面右鍵 > Change Desktop Background > Theme > Customize > Icons > Faenza
*
【Gnome Do】
快捷鍵啓動的新體驗:
http://do.davebsd.com
安裝:
sudo add-apt-repository ppa:do-core/ppa
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install gnome-do
預設啓動鍵:
Super + Space(Windows 鍵 + 空白鍵)
叫出 Gnome Do 的視窗後,直接輸入要啓動的程式名稱或關鍵字,
Gnome Do 會找出相對應的程式,壓 enter 之後就會啓動,不用動到滑鼠。
Gnome Do 視窗右上角的箭頭 > Preferences > Appearance
在 Selected Theme 選擇喜歡的佈景樣式,把 Always show result window 打勾。
Gnome Do 視窗右上角的箭頭 > Preferences > General
可以把 Start Gnome Do at Login 取消掉。
*
【Gnome Startup】
隨着 Gnome 桌面一起啓動的還有使用者安裝的常駐程式。
這些常駐程式有時會拖慢 Gnome 桌面的登入速度,可以到這查看有哪些:
System > Preferences > Startup Applications
逐一檢查,並把不需要的勾掉,例如:Bluetooth Manager、Update Notifier
Gnome Do 或 Dropdox 的自動啓動也可以取消掉,記得程式本身的自動啓動也要設成取消!
可以自己寫一個啓動的腳本替代。
以 Gnome Do 爲例:
1」System > Preferences > Startup Applications > Gnome Do
2」取消它,然後點一下 Edit,複製 Command 欄位的內容
3」編輯一個腳本檔:~/my_startup.sh
4」內容:
#!/bin/bash sleep 10 ; gnome-do & sleep 15 ; 其他程式的啓動命令 &5」System > Preferences > Startup Applications > Add
6」新增一個啓動名稱,Command 欄位填上:~/my_starup.sh
7」登出再登入,測試腳本
*
【Gnome Shortcuts】
Gnomo 預設的快捷鍵很好用,可以到這裡查看或修改:
System > Preferences > Keyboard Shortcuts
Alt + F1:應用程式選單
Alt + F2:快速執行指令
Alt + F3:啓動 Terminal(我個人的手動設定)
Alt + F8:調整視窗大小
Alt + F9:最小化視窗
Alt + F10:最大化視窗
Ctrl + Alt + s:隱藏視窗
Ctrl + Alt + d:顯示桌面
Ctrl + Alt + 右箭頭:旋轉到右邊的 Workspace
Ctrl + Alt + 左箭頭:旋轉到右邊的 Workspace
Shift + Ctrl + Alt + 右箭頭:將當前視窗移到右邊的 Workspace
Shift + Ctrl + Alt + 左箭頭:將當前視窗移到左邊的 Workspace
*
【Compiz】
Ubuntu 預設就有安裝了 Compiz,不過需要手動啓用:
桌面右鍵 > Change Desktop Background > Visual Effects > Extra
Ubuntu 會自動連上 Internet 安裝對應的顯示卡驅動,弄好後,檢查視窗是否有果凍效果。
(如果已經安裝了 Macbuntu,它應該幫忙處理好了。)
Compiz 非常強大,而且難以駕馭。
以致於有了一套 CompizConfig Settings Manager 輔助設定軟體還不夠,
還需要另一套簡單版的 Simple CompizConfig Settings Manager 輔助設定軟體。
安裝:
sudo apt-get install compizconfig-settings-manager
sudo apt-get install simple-ccsm
啓動:
System > Preferences > CompizConfig Settings Manager
System > Preferences > Simple CompizConfig Settings Manager
設定:
[ Simple CompizConfig Settings Manager ]
Effects > Switcher > Shift Switcher (Cover)[ CompizConfig Settings Manager ]
Accessibility > Show mouse:[ Super + k] Desktop > Expo > Expo Key:[ Super + e] Desktop > Desktop Cube > Unfold:[ Control + Alt + Down] Effects > Paint fire on the screen > Initiate (button):[ Shift + Super + 左鍵 ] Effects > Paint fire on the screen > Clear (key):[ Shift + Super + c ] Extra > Window Preview Utility > Crash handle Utility > Resize info Window Management > Shift Switcher > Next Window:[ Alt + Tab ] Window Management > Shift Switcher > Next Window (All Workspace):[ Super + Tab ] Window Management > Resize Window > Initiate Rectangle Window Resize:[ Alt + F8 ]
Reference:
01. http://zx-1986.blogspot.com/2010/08/my-ubuntu-setup.html
02. http://playubuntu.blogspot.com/2010/09/ubuntugdm.html
2010/08/22
X11, GTK, QT
X11:X Window System Protocol Version 11。
X server 與 X client 間的通訊協定。
X server 是在 xfree86/xorg 驅動下顯示:滑鼠、鍵盤、設備等的通稱。
X client 通过 X11 協定與 xfree86/xorg 實做的 X server 通訊。
例如 X client 告訴 X server 畫一個左上角坐標(x,y),寬 w,高 h 的視窗,
xfree86 就把螢幕上的小燈(像素)打亮,然後你就看到了一個要求的視窗。
為了方便開發人員編寫 X clients,就有了 Xlib 來封裝 X11 協定;
Xlib 不够方便,又有了 QT(Q Toolkit)與 GTK(GIMP ToolKit),提供了很多視窗元件(widgets)。
為了方便使用者,於是出现了 GNOME 和 KDE 等『桌面管理系统』。
GNOME 使用的是 GTK 函式庫。
KDE 使用的是 QT 函式庫。
Reference:
01. http://blog.chinaunix.net/u2/78601/showart_1918209.html
X server 與 X client 間的通訊協定。
X server 是在 xfree86/xorg 驅動下顯示:滑鼠、鍵盤、設備等的通稱。
X client 通过 X11 協定與 xfree86/xorg 實做的 X server 通訊。
例如 X client 告訴 X server 畫一個左上角坐標(x,y),寬 w,高 h 的視窗,
xfree86 就把螢幕上的小燈(像素)打亮,然後你就看到了一個要求的視窗。
為了方便開發人員編寫 X clients,就有了 Xlib 來封裝 X11 協定;
Xlib 不够方便,又有了 QT(Q Toolkit)與 GTK(GIMP ToolKit),提供了很多視窗元件(widgets)。
為了方便使用者,於是出现了 GNOME 和 KDE 等『桌面管理系统』。
GNOME 使用的是 GTK 函式庫。
KDE 使用的是 QT 函式庫。
Reference:
01. http://blog.chinaunix.net/u2/78601/showart_1918209.html
tag:
linux
2010/08/21
我的 Plurk 設定
body, html
{
font-family:LiHeiPro !important; 微軟正黑體;
font-size:13px !important;
}
.text_holder
{
font-family:LiHeiPro !important; 微軟正黑體;
font-size:13px !important;
line-height:16px;
}
#author
{
/* http://www.plurk.com/medicalwei */
}
#timeline_holder div.plurk
{
-webkit-transition: top 0.5s ease,-webkit-transform 0.5s ease;
-webkit-transform: rotate(5deg);
-webkit-transform-origin: 0 0;
}
#timeline_holder div.plurk .dots
{
position: absolute;
left: -1000em;
}
#timeline_holder div.plurk .td_img
{
opacity: 0;
-webkit-transition: opacity 0.5s ease;
}
#timeline_holder div.link_extend,
#timeline_holder div.plurk_box
{
-webkit-transition: -webkit-transform 0.5s ease;
-webkit-transform-origin: 0 0;
-webkit-transform: rotate(0deg);
}
#timeline_holder div.link_extend .td_img,
#timeline_holder div.plurk_box .td_img
{
opacity: 1;
-webkit-transition: opacity 0.5s ease;
}
::-webkit-scrollbar
{
background: #ccc;
width: 10px;
}
::-webkit-scrollbar-thumb
{
background: #999;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover
{
background: #666;
border-radius: 10px;
}
.response_time
{
-webkit-transform:rotate(5deg);
-webkit-transform-origin: 0 0;
margin-left:-10px;
-webkit-box-shadow: 0.1px 2px 5px rgba(0,0,0,0.5);
border-radius: 5px;
border: none;
opacity: 0.5;
-webkit-transition: opacity 0.2s ease;
}
.response_time:hover
{
opacity: 1;
-webkit-transition: opacity 0.2s ease;
}
#timeline_holder .plurk_cnt
{
-webkit-box-shadow: 0.2px 4px 8px rgba(0,0,0,0.4);
border-radius: 5px;
-webkit-transition: -webkit-box-shadow 0.5s ease, background 0.5s ease;
border: none;
background: rgba(255,255,255,0.5) !important;
}
#timeline_holder div.link_extend .plurk_cnt,
#timeline_holder div.plurk_box .plurk_cnt
{
-webkit-box-shadow: 0 4px 24px rgba(0,0,0,0.2);
-webkit-transition: -webkit-box-shadow 0.2s ease, background 0.5s ease;
background: rgba(255,255,255,0.8) !important;
}
#timeline_holder div.plurk_box .plurk_cnt
{
border-radius: 5px 5px 0 0;
-webkit-transition: background 0.5s ease;
background: rgba(255,255,255,1) !important;
}
#form_holder div.list
{
-webkit-transition: height 0.5s ease;
}
{
font-family:LiHeiPro !important; 微軟正黑體;
font-size:13px !important;
}
.text_holder
{
font-family:LiHeiPro !important; 微軟正黑體;
font-size:13px !important;
line-height:16px;
}
#author
{
/* http://www.plurk.com/medicalwei */
}
#timeline_holder div.plurk
{
-webkit-transition: top 0.5s ease,-webkit-transform 0.5s ease;
-webkit-transform: rotate(5deg);
-webkit-transform-origin: 0 0;
}
#timeline_holder div.plurk .dots
{
position: absolute;
left: -1000em;
}
#timeline_holder div.plurk .td_img
{
opacity: 0;
-webkit-transition: opacity 0.5s ease;
}
#timeline_holder div.link_extend,
#timeline_holder div.plurk_box
{
-webkit-transition: -webkit-transform 0.5s ease;
-webkit-transform-origin: 0 0;
-webkit-transform: rotate(0deg);
}
#timeline_holder div.link_extend .td_img,
#timeline_holder div.plurk_box .td_img
{
opacity: 1;
-webkit-transition: opacity 0.5s ease;
}
::-webkit-scrollbar
{
background: #ccc;
width: 10px;
}
::-webkit-scrollbar-thumb
{
background: #999;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover
{
background: #666;
border-radius: 10px;
}
.response_time
{
-webkit-transform:rotate(5deg);
-webkit-transform-origin: 0 0;
margin-left:-10px;
-webkit-box-shadow: 0.1px 2px 5px rgba(0,0,0,0.5);
border-radius: 5px;
border: none;
opacity: 0.5;
-webkit-transition: opacity 0.2s ease;
}
.response_time:hover
{
opacity: 1;
-webkit-transition: opacity 0.2s ease;
}
#timeline_holder .plurk_cnt
{
-webkit-box-shadow: 0.2px 4px 8px rgba(0,0,0,0.4);
border-radius: 5px;
-webkit-transition: -webkit-box-shadow 0.5s ease, background 0.5s ease;
border: none;
background: rgba(255,255,255,0.5) !important;
}
#timeline_holder div.link_extend .plurk_cnt,
#timeline_holder div.plurk_box .plurk_cnt
{
-webkit-box-shadow: 0 4px 24px rgba(0,0,0,0.2);
-webkit-transition: -webkit-box-shadow 0.2s ease, background 0.5s ease;
background: rgba(255,255,255,0.8) !important;
}
#timeline_holder div.plurk_box .plurk_cnt
{
border-radius: 5px 5px 0 0;
-webkit-transition: background 0.5s ease;
background: rgba(255,255,255,1) !important;
}
#form_holder div.list
{
-webkit-transition: height 0.5s ease;
}
tag:
web
2010/08/19
我的 Chrome 必備套件
Essential Extensions for Chrome
Cooliris
https://chrome.google.com/extensions/detail/noocneohefmdhonidldnlhaainpiomkp
Feedly
https://chrome.google.com/extensions/detail/ndhinffkekpekljifjkkkkkhopnjodja
Last.fm Free Music Player
https://chrome.google.com/extensions/detail/bbncpldmanoknoahidbgmkgobgmhnafh
Awesome Screenshot
https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce
Image Zoom
https://chrome.google.com/extensions/detail/nonjdcjchghhkdoolnlbekcfllmednbl
Chrmoe Sniffer
https://chrome.google.com/extensions/detail/homgcnaoacgigpkkljjjekpignblkeae
CSSViewer
https://chrome.google.com/extensions/detail/ggfgijbpiheegefliciemofobhmofgce
Regular Expression Checker
https://chrome.google.com/extensions/detail/pgnkpcgniljiolidjmodgfljeomjjiha
XML Tree
https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb
JSON Tree
https://chrome.google.com/extensions/detail/chklaanhfefbnpoihckbnefhakgolnmc
Resolution Test
https://chrome.google.com/extensions/detail/idhfcdbheobinplaamokffboaccidbal
Google Calendar Checker
https://chrome.google.com/extensions/detail/ookhcbgokankfmjafalglpofmolfopek
Google Mail Checker Plus
https://chrome.google.com/extensions/detail/gffjhibehnempbkeheiccaincokdjbfe
Google Dictionary
https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja
Google URL Shortener
https://chrome.google.com/extensions/detail/iblijlcdoidgdpfknkckljiocdbnlagk
renren.com Modifier
https://chrome.google.com/extensions/detail/bafellppfmjodafekndapfceggodmkfc
Chromed Bird
https://chrome.google.com/extensions/detail/encaiiljifbdbjlphpgpiimidegddhic
Sexy Undo Close Tab
https://chrome.google.com/extensions/detail/bcennaiejdjpomgmmohhpgnjlmpcjmbg
Clearlook Scrollbar Theme
https://chrome.google.com/extensions/detail/ppfdcmehpgiojcjgpclmfnbnpdmcmbgo
Stylebot
https://chrome.google.com/extensions/detail/oiaejidbmkiecgbjeifoejpgmdaleoha
---
The Best:
https://chrome.google.com/extensions/detail/mabenbhpjlchigbbpafligkdnlhjbmel
Cooliris
https://chrome.google.com/extensions/detail/noocneohefmdhonidldnlhaainpiomkp
Feedly
https://chrome.google.com/extensions/detail/ndhinffkekpekljifjkkkkkhopnjodja
Last.fm Free Music Player
https://chrome.google.com/extensions/detail/bbncpldmanoknoahidbgmkgobgmhnafh
Awesome Screenshot
https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce
Image Zoom
https://chrome.google.com/extensions/detail/nonjdcjchghhkdoolnlbekcfllmednbl
Chrmoe Sniffer
https://chrome.google.com/extensions/detail/homgcnaoacgigpkkljjjekpignblkeae
CSSViewer
https://chrome.google.com/extensions/detail/ggfgijbpiheegefliciemofobhmofgce
Regular Expression Checker
https://chrome.google.com/extensions/detail/pgnkpcgniljiolidjmodgfljeomjjiha
XML Tree
https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb
JSON Tree
https://chrome.google.com/extensions/detail/chklaanhfefbnpoihckbnefhakgolnmc
Resolution Test
https://chrome.google.com/extensions/detail/idhfcdbheobinplaamokffboaccidbal
Google Calendar Checker
https://chrome.google.com/extensions/detail/ookhcbgokankfmjafalglpofmolfopek
Google Mail Checker Plus
https://chrome.google.com/extensions/detail/gffjhibehnempbkeheiccaincokdjbfe
Google Dictionary
https://chrome.google.com/extensions/detail/mgijmajocgfcbeboacabfgobmjgjcoja
Google URL Shortener
https://chrome.google.com/extensions/detail/iblijlcdoidgdpfknkckljiocdbnlagk
renren.com Modifier
https://chrome.google.com/extensions/detail/bafellppfmjodafekndapfceggodmkfc
Chromed Bird
https://chrome.google.com/extensions/detail/encaiiljifbdbjlphpgpiimidegddhic
Sexy Undo Close Tab
https://chrome.google.com/extensions/detail/bcennaiejdjpomgmmohhpgnjlmpcjmbg
Clearlook Scrollbar Theme
https://chrome.google.com/extensions/detail/ppfdcmehpgiojcjgpclmfnbnpdmcmbgo
Stylebot
https://chrome.google.com/extensions/detail/oiaejidbmkiecgbjeifoejpgmdaleoha
---
The Best:
https://chrome.google.com/extensions/detail/mabenbhpjlchigbbpafligkdnlhjbmel
2010/08/18
我的 Ubuntu 手冊
My Ubuntu Desktop Manual
#Ubuntu Desktop 預設的桌面環境是 Gnome
安裝前建議先考慮好硬碟的分割配置。
Linux 作業系統至少需要 / 與 swap 兩個分割區。
可以將 /home 也獨立切割成一個分割區。
Ubuntu 預設會將程式配置檔、環境設定檔等存在使用者的家目錄。
獨立的 /home 分割區等於獨立備份使用者的設定與配置。
可以的話,建議裝 Ubuntu 與 Windows XP 雙作業系統。
有些很難避免的情況,還是需要回到 Windows 環境。
先安裝 Windows 再安裝 Ubuntu,Ubuntu 會偵測其他系統並安排到開機選單。
以我到桌上型主機為例,160 GB 硬碟。
使用 20 GB 先安裝了 Windows XP 作業系統;
扣除 Ubuntu 會使用到的容量,剩餘的硬碟空間全部切割成 NTFS;
Ubuntu 作業系統則作如下配置:
/home,4 GB 對我而言有點嫌多,因爲多數資料我會儲存在 NTFS 檔案系統。
swap,一般而言是設定成記憶體大小的兩倍。
規劃好硬碟配置後,就可以開始安裝了。
放入 Ubuntu 光碟,BIOS 選擇從光碟機開機。
可以選擇中文安裝,不過最好先接上網路。
Ubuntu 會自動偵測網路,中文安裝可能需要下載一些語言套件包。
沒有網路也無所謂,裝好後設定完網路,再更新即可。
安裝的過程非常簡單,安裝指引是漂亮的圖形介面,照着指示做就可以了。
安裝完成會退出光碟片,把光碟片取下,壓一下 enter 就會重新啓動了。
*
【sudo apt-get update && sudo apt-get upgrade】
第一次啓動後,請先設定好網路:
系統 > 偏好設定 > 網路連線
如果是 DHCP 自動取得 IP 就不用特別設定了。
確定網路 ok 後,前往:
系統 > 管理 > 軟體來源
把第一個分頁以及第三個分頁(更新)裡面的來源全部勾選,然後關閉。
系統會重載來源清單並進行更新。
喝杯咖啡,靜待更新完成。
*
【Compiz】
不管是 ATi、NVIDIA 或其他品牌顯示晶片,Ubuntu 都會自動偵測硬體驅動。
可以照以下步驟自行來啓用最新的驅動:
系統 > 管理 > 硬體驅動
點選最新的驅動啓用即可。
完成後可能需要重新開機
顯示驅動更新後,可以在桌面上:
點右鍵 > 更換桌面背景 > 視覺效果
最下面那個終極選項壓下去就對了!
Ubuntu 會啓用預設安裝的 Compiz 的多項視覺特效,非常酷!
Compiz 的各項效果可以透過 CCSM 與 Simple CCSM 兩個套件進行微調。
可以使用以下指令進行安裝:
託自由軟體工作者的福,它們的中文化已經做得很好了,請盡情嘗試各項效果。
*
【程式開發編譯必備元件】
*
【Non-Free】
多媒體影音方面,可能得用到部分非開源的編碼系統。
執行以下指令安裝:
安裝應付 Windows 的壓縮與解壓縮套件,執行:
*
【Plymouth】
從 Ubuntu 10.04 起開機動畫改用 Plymouth 取代了舊有的 Xsplash,可參考 Reference 04。
簡單說一下怎麼裝一些新的開機動畫、怎麼選擇新的開機動畫。
執行:
有時候,非開放性的顯示驅動會導致開機動畫的解析度變差,或沒有動畫。
可以照以下步驟修改:
*
【Ubuntu Tweak】
Ubuntu Tweak 是一套圖形介面的 Ubuntu 設定、調教軟體。
可以把它想成類似 Windows XP 的控制臺。
請前往它的官方網站下載 deb 套件進行安裝:
http://ubuntu-tweak.com/
*
【More Zooty!】
安裝 Gnome-Do,請執行:
安裝 Conky,請執行:
*
【Gnome Themes】
[ Equinox GTK Engine ]
[ Faenza ]
另外還有個不錯的主題套件庫(Reference 07),執行以下指令安裝:
*
【Gedit Themes】
http://live.gnome.org/GtkSourceView/StyleSchemes
http://github.com/mig/gedit-themes
*
sudo update-alternatives --config editor
在終端機執行:
[ Ubuntu 常用軟體 ]
[ Ubuntu 桌面技巧 ]
*
Reference:
01. http://www.omgubuntu.co.uk/2010/04/10-things-to-do-after-installing-ubuntu.html
02. https://launchpad.net/~shawn-p-huang/+archive/ppa
03. http://www.kdenlive.org/
04. http://blog.roodo.com/rocksaying/archives/12306099.html
05. https://help.ubuntu.com/10.04/basic-commands/C/
06. https://help.ubuntu.com/10.04/serverguide/C/index.html
07. http://www.ubuntugeek.com/nice-themes-for-ubuntu-10-04-lucid-lynx-users.html
#Ubuntu Desktop 預設的桌面環境是 Gnome
安裝前建議先考慮好硬碟的分割配置。
Linux 作業系統至少需要 / 與 swap 兩個分割區。
可以將 /home 也獨立切割成一個分割區。
Ubuntu 預設會將程式配置檔、環境設定檔等存在使用者的家目錄。
獨立的 /home 分割區等於獨立備份使用者的設定與配置。
可以的話,建議裝 Ubuntu 與 Windows XP 雙作業系統。
有些很難避免的情況,還是需要回到 Windows 環境。
先安裝 Windows 再安裝 Ubuntu,Ubuntu 會偵測其他系統並安排到開機選單。
以我到桌上型主機為例,160 GB 硬碟。
使用 20 GB 先安裝了 Windows XP 作業系統;
扣除 Ubuntu 會使用到的容量,剩餘的硬碟空間全部切割成 NTFS;
Ubuntu 作業系統則作如下配置:
30 GB:/ 4 GB:/home 4 GB:swap/,根目錄(root)給 30 GB 已經很夠了,甚至再塞 KDE 桌面環境進去還是很空。
/home,4 GB 對我而言有點嫌多,因爲多數資料我會儲存在 NTFS 檔案系統。
swap,一般而言是設定成記憶體大小的兩倍。
規劃好硬碟配置後,就可以開始安裝了。
放入 Ubuntu 光碟,BIOS 選擇從光碟機開機。
可以選擇中文安裝,不過最好先接上網路。
Ubuntu 會自動偵測網路,中文安裝可能需要下載一些語言套件包。
沒有網路也無所謂,裝好後設定完網路,再更新即可。
安裝的過程非常簡單,安裝指引是漂亮的圖形介面,照着指示做就可以了。
安裝完成會退出光碟片,把光碟片取下,壓一下 enter 就會重新啓動了。
*
【sudo apt-get update && sudo apt-get upgrade】
第一次啓動後,請先設定好網路:
系統 > 偏好設定 > 網路連線
如果是 DHCP 自動取得 IP 就不用特別設定了。
確定網路 ok 後,前往:
系統 > 管理 > 軟體來源
把第一個分頁以及第三個分頁(更新)裡面的來源全部勾選,然後關閉。
系統會重載來源清單並進行更新。
喝杯咖啡,靜待更新完成。
*
【Compiz】
不管是 ATi、NVIDIA 或其他品牌顯示晶片,Ubuntu 都會自動偵測硬體驅動。
可以照以下步驟自行來啓用最新的驅動:
系統 > 管理 > 硬體驅動
點選最新的驅動啓用即可。
完成後可能需要重新開機
顯示驅動更新後,可以在桌面上:
點右鍵 > 更換桌面背景 > 視覺效果
最下面那個終極選項壓下去就對了!
Ubuntu 會啓用預設安裝的 Compiz 的多項視覺特效,非常酷!
Compiz 的各項效果可以透過 CCSM 與 Simple CCSM 兩個套件進行微調。
可以使用以下指令進行安裝:
sudo apt-get install compizconfig-settings-manager sudo apt-get install simple-ccsm安裝完成後,在「系統 > 偏好設定」裡面可以找到。
託自由軟體工作者的福,它們的中文化已經做得很好了,請盡情嘗試各項效果。
*
【程式開發編譯必備元件】
sudo apt-get install build-essential
*
【Non-Free】
多媒體影音方面,可能得用到部分非開源的編碼系統。
執行以下指令安裝:
sudo apt-get install ubuntu-restricted-extras
安裝應付 Windows 的壓縮與解壓縮套件,執行:
sudo apt-get install p7zip-full unrar cabextract p7zip-rar
*
【Plymouth】
從 Ubuntu 10.04 起開機動畫改用 Plymouth 取代了舊有的 Xsplash,可參考 Reference 04。
簡單說一下怎麼裝一些新的開機動畫、怎麼選擇新的開機動畫。
執行:
sudo apt-get install plymouth-theme-* sudo update-alternatives --config default.plymouth # 輸入編號選擇開機動畫,可以用名稱到 YouTube 搜尋預覽。 sudo update-initramfs -u
有時候,非開放性的顯示驅動會導致開機動畫的解析度變差,或沒有動畫。
可以照以下步驟修改:
a] 執行 sudo apt-get install v86d b] 執行 gksu gedit /etc/default/grub,修改 grub 檔 c] 修改 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 成為 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x1024-24,mtrr=3,scroll=ywrap" d] 修改#GRUB_GFXMODE=640x480 成為 GRUB_GFXMODE=1280x1024 e] 注意!1280x1024 不一定是正確的解析度,通常筆電寬螢幕會是 1280x800,請自行確認。 f] 修改完成請儲存關閉 grub 檔 g] 執行 gksu gedit /etc/initramfs-tools/modules,修改 modules 檔 h] 在檔案最末加上 uvesafb mode_option=1280x1024-24 mtrr=3 scroll=ywrap i] 注意!1280x1024 不一定是正確的解析度,請自行確認。 j] 修改完成請儲存關閉 modules 檔 k] 執行 echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash l] 執行 sudo update-grub m] 執行 sudo update-initramfs -u n] 重新啟動檢查開機動畫
*
【Ubuntu Tweak】
Ubuntu Tweak 是一套圖形介面的 Ubuntu 設定、調教軟體。
可以把它想成類似 Windows XP 的控制臺。
請前往它的官方網站下載 deb 套件進行安裝:
http://ubuntu-tweak.com/
*
【More Zooty!】
安裝 Gnome-Do,請執行:
sudo add-apt-repository ppa:do-core/ppa sudo aptitude update sudo aptitude install gnome-do
安裝 Conky,請執行:
sudo apt-get install conky
*
【Gnome Themes】
[ Equinox GTK Engine ]
[ Faenza ]
另外還有個不錯的主題套件庫(Reference 07),執行以下指令安裝:
sudo add-apt-repository ppa:bisigi sudo aptitude update sudo aptitude install bisigi-themes要移除請執行:
sudo aptitude remove bisigi-themes
*
【Gedit Themes】
http://live.gnome.org/GtkSourceView/StyleSchemes
http://github.com/mig/gedit-themes
*
sudo update-alternatives --config editor
在終端機執行:
gconf-editor進入 Ubuntu 微調設定,可以參考 [ 手把手玩 Ubuntu ]
[ Ubuntu 常用軟體 ]
[ Ubuntu 桌面技巧 ]
*
Reference:
01. http://www.omgubuntu.co.uk/2010/04/10-things-to-do-after-installing-ubuntu.html
02. https://launchpad.net/~shawn-p-huang/+archive/ppa
03. http://www.kdenlive.org/
04. http://blog.roodo.com/rocksaying/archives/12306099.html
05. https://help.ubuntu.com/10.04/basic-commands/C/
06. https://help.ubuntu.com/10.04/serverguide/C/index.html
07. http://www.ubuntugeek.com/nice-themes-for-ubuntu-10-04-lucid-lynx-users.html
我的 Kubuntu 手冊
My Kubuntu Manual
#預設環境是英文介面,所以會以英文標示選單步驟,請自行轉換對應的語言。
*
Kubuntu 底下,對任何一個應用程式 icon 壓右鍵,都可以針對其進行獨立的特別設定。
Kubuntu 底下,很多時候對 icon 只壓一下左鍵,就會進行開啟或執行的動作了。
如果不習慣的話,可以到這邊修改:
Settings > System Settings > Keyboard & Mouse > Mouse > General
Kubuntu 的應用程式選單稱為『Application Launcher』,預設是 Kickoff 樣式。
不習慣的話可以在左下角的 KDE icon 上壓右鍵,選擇『Switch to Classic Menu Style』。
如果還是不滿意,可以安裝 Lancelot:
*
要新增系統語言,執行:
Settings > System Settings > Regional & Language > install NEW Language
要改變系統預設語言,執行:
Settings > System Settings > Regional & Language > Select System Language
*
安裝 ibus 與中文拼音輸入法,執行:
設定 ibus 開機自行啟動:
Settings > System Settings > Advanced > Autostart > Add Program
填入『ibus-daemon -x -r -d』,然後重新登入。
*
Kubuntu 的桌面效果設定可以到:
Settings > System Settings > General > Desktop
Desktop > Desktop Effects > General:
調整視窗切換動畫、桌面切換動畫,還有所有動畫的播放速度。
Desktop > Desktop Effects > All Effects:
Wobbly Windows = 果凍視窗效果
Magic Lamp = 視窗收縮效果
...
Desktop > Multiple Desktops:
多重桌面設定,可以設定桌面數量與切換動畫。
Desktop > Screen Edges:
設定滑鼠移動到各個桌面角落時的動作,以及視窗移動到桌面各邊緣的動作。
Desktop > Screen Saver:
設定螢幕保護程式
*
Kubuntu 的主題樣式、系統字型、視窗樣式、開機畫面等可以到這裡調整:
Settings > System Settings > Appearance
*
Kubuntu 的桌面是一個稱為『Plasma Workspaces』的環境。
Kubuntu 的工作列(Taskbar)稱做 Panel。
[ 注:請參考 Reference 03 與 04 ]
初次接觸可能會不大習慣,多壓右鍵,會發現可以設定的地方很多。
畫面的右上角一個小扇型,是預設的 Plasma 主控選單。
畫面的右下角一個小扇型,點一下可以對 Plane 進行各種調整。
Plasma 底下有一個『活動』(Activity)的概念。
『活動』(Activity)與『虛擬桌面』(Virtual Desktops)很像,可是不大一樣。
『活動』類似於可以自訂一個新的工作桌面環境。
例如可以自訂一個專門處理美工事務時的桌面、一個專門處理程式設計時的桌面等。
如果不小心刪除工作列收放程式的區域(程式縮小時顯示的地方),可以這樣叫回:
Panel 上壓右鍵 > Panel Options > Add Widgets > Task Manager
*
Kubuntu 的套件管理程式稱為『KPackageKit』:
System > Software Management
安裝完建議先來這邊設定軟體來源:
system > Software Management > Settings > Edit Software Source
建議把 Kubuntu Software,Other Software,Updates 底下的來源都打勾,然後執行更新。
要安裝任何新的軟體套件,都可以先來這邊搜尋,類似 Ubuntu 的 Software Center。
例如安裝一個叫『Kinfo Center』的套件,可以搜尋 kinfo,選取,然後 Apply。
如果不習慣 KPackageKit,可以另外安裝 Synaptic:
*
安裝應付 Windows 的壓縮與解壓縮套件,執行:
*
*
*
Kubuntu 的 KDE Wallet 類似於 Ubuntu 的 GNOME Keyring。
*
Reference:
01. http://wiki.ubuntu.org.cn/index.php?title=Qref/Lucid/Kubuntu
02. http://en.wikipedia.org/wiki/Taskbar
03. http://en.wikipedia.org/wiki/Plasma_(KDE)
04. http://userbase.kde.org/Plasma/zh-tw
05. http://wiki.ubuntu.org.cn/Kubuntu
#預設環境是英文介面,所以會以英文標示選單步驟,請自行轉換對應的語言。
*
Kubuntu 底下,對任何一個應用程式 icon 壓右鍵,都可以針對其進行獨立的特別設定。
Kubuntu 底下,很多時候對 icon 只壓一下左鍵,就會進行開啟或執行的動作了。
如果不習慣的話,可以到這邊修改:
Settings > System Settings > Keyboard & Mouse > Mouse > General
Kubuntu 的應用程式選單稱為『Application Launcher』,預設是 Kickoff 樣式。
不習慣的話可以在左下角的 KDE icon 上壓右鍵,選擇『Switch to Classic Menu Style』。
如果還是不滿意,可以安裝 Lancelot:
sudo apt-get install plasma-widget-lancelot
*
要新增系統語言,執行:
Settings > System Settings > Regional & Language > install NEW Language
要改變系統預設語言,執行:
Settings > System Settings > Regional & Language > Select System Language
*
安裝 ibus 與中文拼音輸入法,執行:
sudo apt-get install ibus ibus-pinyin ibus-qt4 ibus-gtk啟動 ibus,執行:
ibus-daemon -x -r -d在右下角找到 ibus 的圖示,壓右鍵選擇『Preferences』,新增自己喜歡的輸入法。
設定 ibus 開機自行啟動:
Settings > System Settings > Advanced > Autostart > Add Program
填入『ibus-daemon -x -r -d』,然後重新登入。
*
Kubuntu 的桌面效果設定可以到:
Settings > System Settings > General > Desktop
Desktop > Desktop Effects > General:
調整視窗切換動畫、桌面切換動畫,還有所有動畫的播放速度。
Desktop > Desktop Effects > All Effects:
Wobbly Windows = 果凍視窗效果
Magic Lamp = 視窗收縮效果
...
Desktop > Multiple Desktops:
多重桌面設定,可以設定桌面數量與切換動畫。
Desktop > Screen Edges:
設定滑鼠移動到各個桌面角落時的動作,以及視窗移動到桌面各邊緣的動作。
Desktop > Screen Saver:
設定螢幕保護程式
*
Kubuntu 的主題樣式、系統字型、視窗樣式、開機畫面等可以到這裡調整:
Settings > System Settings > Appearance
*
Kubuntu 的桌面是一個稱為『Plasma Workspaces』的環境。
Kubuntu 的工作列(Taskbar)稱做 Panel。
[ 注:請參考 Reference 03 與 04 ]
初次接觸可能會不大習慣,多壓右鍵,會發現可以設定的地方很多。
畫面的右上角一個小扇型,是預設的 Plasma 主控選單。
畫面的右下角一個小扇型,點一下可以對 Plane 進行各種調整。
Plasma 底下有一個『活動』(Activity)的概念。
『活動』(Activity)與『虛擬桌面』(Virtual Desktops)很像,可是不大一樣。
『活動』類似於可以自訂一個新的工作桌面環境。
例如可以自訂一個專門處理美工事務時的桌面、一個專門處理程式設計時的桌面等。
如果不小心刪除工作列收放程式的區域(程式縮小時顯示的地方),可以這樣叫回:
Panel 上壓右鍵 > Panel Options > Add Widgets > Task Manager
*
Kubuntu 的套件管理程式稱為『KPackageKit』:
System > Software Management
安裝完建議先來這邊設定軟體來源:
system > Software Management > Settings > Edit Software Source
建議把 Kubuntu Software,Other Software,Updates 底下的來源都打勾,然後執行更新。
要安裝任何新的軟體套件,都可以先來這邊搜尋,類似 Ubuntu 的 Software Center。
例如安裝一個叫『Kinfo Center』的套件,可以搜尋 kinfo,選取,然後 Apply。
如果不習慣 KPackageKit,可以另外安裝 Synaptic:
sudo apt-get install synaptic
*
安裝應付 Windows 的壓縮與解壓縮套件,執行:
sudo apt-get install p7zip-full unrar cabextract p7zip-rar
*
sudo apt-get install kubuntu-restricted-extras
*
sudo apt-add-repository ppa:kubuntu-ppa/ppa
*
Kubuntu 的 KDE Wallet 類似於 Ubuntu 的 GNOME Keyring。
*
Reference:
01. http://wiki.ubuntu.org.cn/index.php?title=Qref/Lucid/Kubuntu
02. http://en.wikipedia.org/wiki/Taskbar
03. http://en.wikipedia.org/wiki/Plasma_(KDE)
04. http://userbase.kde.org/Plasma/zh-tw
05. http://wiki.ubuntu.org.cn/Kubuntu
2010/08/17
我的 Windows XP 必備軟體
Essential Softwares for Windows XP
Notepad++
http://notepad-plus-plus.org/
PPStream
http://dl.pps.tv/
PuTTY
http://www.chiark.greenend.org.uk/~sgtatham/putty
CCleaner
http://www.piriform.com/ccleaner
Defraggler
http://www.piriform.com/defraggler
Speccy
http://www.piriform.com/speccy
FastStone Capture
http://www.faststone.org/
Fences
http://www.stardock.com/products/fences
FreeCommander
http://www.freecommander.com/
GOM Player
http://www.gomlab.com/
AppLocale
http://www.chweng.idv.tw/swintro/apploc.php
EFix
http://reinfors.blogspot.com/
Notepad++
http://notepad-plus-plus.org/
PPStream
http://dl.pps.tv/
PuTTY
http://www.chiark.greenend.org.uk/~sgtatham/putty
CCleaner
http://www.piriform.com/ccleaner
Defraggler
http://www.piriform.com/defraggler
Speccy
http://www.piriform.com/speccy
FastStone Capture
http://www.faststone.org/
Fences
http://www.stardock.com/products/fences
FreeCommander
http://www.freecommander.com/
GOM Player
http://www.gomlab.com/
AppLocale
http://www.chweng.idv.tw/swintro/apploc.php
EFix
http://reinfors.blogspot.com/
2010/08/13
Fedora 開機模式與自動啟動設定
將想要開機執行的命令可以新增在此檔案中:
/etc/rc.d/rc.local
例如:
# 啟動 tarball 安裝的 Apache
/your_tarball_path_of_apache2/bin/apachectl start
# 啟動 tarball 安裝的 MySQL
/your_tarball_path_of_mysql5/share/mysql/mysql.server start
# 啟動 rpm 安裝的 VSFTP
/etc/rc.d/init.d/vsftpd start
# 啟動 rpm 安裝的 Samba
/etc/rc.d/init.d/smb start
/etc/rc.d/init.d/nmb start
或使用 chkconfig 工具管理哪些服務該在哪個 run level 開機啓動。
例如:
chkconfig httpd on
chkconfig vsftpd on
---
Fedora 圖形介面或文字介面開機模式設定檔:
/etc/inittab
# 文字模式啟動
id:3:initdefault:
# 圖形介面啟動
id:5:initdefault:
/etc/rc.d/rc.local
例如:
# 啟動 tarball 安裝的 Apache
/your_tarball_path_of_apache2/bin/apachectl start
# 啟動 tarball 安裝的 MySQL
/your_tarball_path_of_mysql5/share/mysql/mysql.server start
# 啟動 rpm 安裝的 VSFTP
/etc/rc.d/init.d/vsftpd start
# 啟動 rpm 安裝的 Samba
/etc/rc.d/init.d/smb start
/etc/rc.d/init.d/nmb start
或使用 chkconfig 工具管理哪些服務該在哪個 run level 開機啓動。
例如:
chkconfig httpd on
chkconfig vsftpd on
---
Fedora 圖形介面或文字介面開機模式設定檔:
/etc/inittab
# 文字模式啟動
id:3:initdefault:
# 圖形介面啟動
id:5:initdefault:
MediaWiki 備份與遷移
*基本原理:
把舊有的 MySQL 資料庫備份起來。
新安裝一個資料庫,名稱和之前一模一樣,然後把新裝的資料庫砍掉,匯入舊的資料庫內容。
讓新安裝的 MediaWiki 去存取該資料庫。
備份資料庫:
使用 mysqldump 或第三方管理軟體(ex: phpMyAdmin)備份整個 MediaWiki 資料庫。
所有資料表和內容存成一個 *.sql 檔案,設定成 utf8 的儲存格式。
備份資料夾:
images
skins
extensions
備份檔案:
LocalSettings.php
---
edit: LocalSetting.php
#不同的主機 ProxyKey 值會不一樣!
$wgProxyKey =
#設定 mediawiki 資料庫內資料表的前置名稱
$wgDBprefix = "prefix_";
#設定首頁 Logo 圖片的位址
$wgLogo="URL://somewhere";
#編寫和瀏覽權限設定
$wgGroupPermissions['*']['createaccount'] = true;
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
#圖片上傳設定
$WGAllowExternalImages = true;
#時間區域和計算設定
$wgLocaltimezone = "Asia/Taipei";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z")/60;
putenv("TZ=$oldtz");
*注意:安裝完成後如果修改 MediaWiki 目錄的名稱會導致無法正常連線。
把舊有的 MySQL 資料庫備份起來。
新安裝一個資料庫,名稱和之前一模一樣,然後把新裝的資料庫砍掉,匯入舊的資料庫內容。
讓新安裝的 MediaWiki 去存取該資料庫。
備份資料庫:
使用 mysqldump 或第三方管理軟體(ex: phpMyAdmin)備份整個 MediaWiki 資料庫。
所有資料表和內容存成一個 *.sql 檔案,設定成 utf8 的儲存格式。
備份資料夾:
images
skins
extensions
備份檔案:
LocalSettings.php
---
edit: LocalSetting.php
#不同的主機 ProxyKey 值會不一樣!
$wgProxyKey =
#設定 mediawiki 資料庫內資料表的前置名稱
$wgDBprefix = "prefix_";
#設定首頁 Logo 圖片的位址
$wgLogo="URL://somewhere";
#編寫和瀏覽權限設定
$wgGroupPermissions['*']['createaccount'] = true;
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;
#圖片上傳設定
$WGAllowExternalImages = true;
#時間區域和計算設定
$wgLocaltimezone = "Asia/Taipei";
$oldtz = getenv("TZ");
putenv("TZ=$wgLocaltimezone");
$wgLocalTZoffset = date("Z")/60;
putenv("TZ=$oldtz");
*注意:安裝完成後如果修改 MediaWiki 目錄的名稱會導致無法正常連線。
tag:
web
使用 SQL 指令建新資料庫
使用 SQL 文字命令架設資料庫及新增帳號。
1. 利用 MySQL 的 root 身份建立資料庫與帳號:
shell> mysql -u root -p
Enter password:
# 輸入你的 MySQL 的 root 密碼
mysql> create database DBNAME;
# 建立一個新的資料庫名稱為「DBNAME」,注意每個指令後面要加上「;」
mysql> grant all privileges on DBNAME.* to DBID@localhost identified by 'your.password' ;
# 將剛剛建立的「DBNAME」這個資料庫的權限指定給「DBID」這個帳號!
# 如果「DBID」這個不存在,系統會自動新建這個帳號,
# 並讓它擁有「DBNAME」這個資料庫的權限。
# 在 'your.password' 中填上自己要設定給「DBID」這個帳號的密碼!
mysql> exit
2. 測試剛剛建立的資料庫與帳號是否可以使用:
[root@test root]# mysql -u 資料庫帳號 -p
Enter password:
mysql> connect 資料庫名稱;
mysql> exit
1. 利用 MySQL 的 root 身份建立資料庫與帳號:
shell> mysql -u root -p
Enter password:
# 輸入你的 MySQL 的 root 密碼
mysql> create database DBNAME;
# 建立一個新的資料庫名稱為「DBNAME」,注意每個指令後面要加上「;」
mysql> grant all privileges on DBNAME.* to DBID@localhost identified by 'your.password' ;
# 將剛剛建立的「DBNAME」這個資料庫的權限指定給「DBID」這個帳號!
# 如果「DBID」這個不存在,系統會自動新建這個帳號,
# 並讓它擁有「DBNAME」這個資料庫的權限。
# 在 'your.password' 中填上自己要設定給「DBID」這個帳號的密碼!
mysql> exit
2. 測試剛剛建立的資料庫與帳號是否可以使用:
[root@test root]# mysql -u 資料庫帳號 -p
Enter password:
mysql> connect 資料庫名稱;
mysql> exit
tag:
mysql
使用 PHP 動態產生 XML
直接看一個靜態的例子:
底下是一個從資料庫撈資料動態產生 RSS 檔的例子:
<?php ob_start(); header('Content-Type: text/xml'); $dom = new DOMDocument('1.0'); $dom->encoding = 'UTF-8'; // 建立母節點 $root $root = $dom->createElement('root'); $dom->appendChild($root); // 設定屬性 $root->setAttribute('name', 'xxx'); // 建立 $root 的子節點 $child $child = $dom->createElement('child'); $root->appendChild($child); // 建立文字節點 $text $text = $dom->createTextNode('文字'); // $text 加到 $child 節點底下 $child->appendChild($text); $xmlStr = $dom->saveXML(); echo $xmlStr; ?>
底下是一個從資料庫撈資料動態產生 RSS 檔的例子:
<?php ob_start(); header('Content-Type: text/xml'); $dom = new DOMDocument('1.0'); $dom->encoding = 'UTF-8'; // 建立母節點 $rss $rss = $dom->createElement('rss'); $dom->appendChild($rss); $rss->setAttribute('version', '2.0'); // 建立第一子節點 $channel $channel = $dom->createElement('channel'); $rss->appendChild($channel); // $channel 底下的節點及其文字內容 $title = $dom->createElement('title'); $titleText = $dom->createTextNode('您的 RSS 標題'); $title->appendChild($titleText); $channel->appendChild($title); $link = $dom->createElement('link'); $linkText = $dom->createTextNode('http://您的網站連結/'); $link->appendChild($linkText); $channel->appendChild($link); $description = $dom->createElement('description'); $descriptionText = $dom->createTextNode('您的描述'); $description->appendChild($descriptionText); $channel->appendChild($description); // 查詢資料庫,撈資料來建立 item 節點 require_once("您的資料庫連結檔,包括資料庫名稱,帳號,密碼,連結等.php"); $query = "您的 SQL 子句"; $result = mysql_query($query, 連結); while($row = @mysql_fetch_assoc($result)) { $item = $dom->createElement('item'); $channel->appendChild($item); $title = $dom->createElement('title'); $titleText = $dom->createTextNode($row['文章標題']); $title->appendChild($titleText); $item->appendChild($title); $pubDate = $dom->createElement('pubDate'); $pubDateText = $dom->createTextNode($row['文章日期']); $pubDate->appendChild($pubDateText); $item->appendChild($pubDate); $description = $dom->createElement('description'); $descriptionText = $dom->createTextNode($row['文章描述']); $description->appendChild($descriptionText); $item->appendChild($description); $link = $dom->createElement('link'); $linkText = $dom->createTextNode('您的連結'); $link->appendChild($linkText); $item->appendChild($link); } $xmlStr = $dom->saveXML(); echo $xmlStr; mysql_close($link); ?>
Blogger 安裝 SyntaxHighlighter
Syntax Highlight - 語法高亮度顯示
Blogger 安裝 SyntaxHighlighter 3 教學
進入你的 blogger 設計頁面,選擇編輯 html。
找到 <head> 標籤,在標籤後空一行,貼入以下語法:
其他主題樣式與程式語言筆刷可以到以下網址參考:
http://alexgorbatchev.com/SyntaxHighlighter/hosting.html
在編輯文章時,將要 highlight 的片段用以下標籤包裹:
Reference:
01. http://alexgorbatchev.com/SyntaxHighlighter/
02. http://shiouhhc.blogspot.com/2007/08/blogger_27.html
Blogger 安裝 SyntaxHighlighter 3 教學
進入你的 blogger 設計頁面,選擇編輯 html。
找到 <head> 標籤,在標籤後空一行,貼入以下語法:
其他主題樣式與程式語言筆刷可以到以下網址參考:
http://alexgorbatchev.com/SyntaxHighlighter/hosting.html
在編輯文章時,將要 highlight 的片段用以下標籤包裹:
<pre class="brush: 程式語言種類">
// 您的程式碼
</pre>
Reference:
01. http://alexgorbatchev.com/SyntaxHighlighter/
02. http://shiouhhc.blogspot.com/2007/08/blogger_27.html
使用 MRTG 監控系統效能
軟體:Multi Router Traffic Grapher
環境:Ubuntu 9.10 Server
#請先切換到 root 身份。
首先,要先裝好 Apache 與 PHP:
apt-get install apache2
apt-get install php5 libapache2-mod-php5
接著安裝 SNMP:
apt-get install snmpd
修改 SNMP 設定檔:
vim /etc/snmp/snmpd.conf
把 snmpd.conf 的 sec.name source community 部份修改如下:
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private
重新啟動 SNMP 服務:
/etc/init.d/snmpd restart
安裝 MRTG:
apt-get install mrtg
建立 MRTG 的網頁資料夾:
mkdir /var/www/mrtg
編輯 MRTG 設置檔:
vim /etc/mrtg.cfg
在檔案內 Global Settings 那段,修改成如下設定:
RunAsDaemon: yes
EnableIPv6: no
WorkDir: /var/www/mrtg
Options[_]: bits, growright
WriteExpires: Yes
Title[^]: Traffic Analysis For
查看 /etc/cron.d/mrtg 檔案,編輯 MRTG 的自動排程。
內容類似:
*/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi
或:
*/5 * * * * root if [ ! -d /var/lock/mrtg ]; then mkdir /var/lock/mrtg; fi; if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
執行下列指令,產生本機監控設置:
cfgmaker public@localhost > /etc/mrtg.cfg
Creating a configuration file for a device using:
cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg
使用 indexmaker 產生 MRTG 頁面:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
執行以下指令三次,直到沒有錯誤訊息:
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
使用瀏覽器連線到本機的 MRTG 頁面資料夾觀察流量頁面:
http://localhost/mrtg/
*
搭配 sysstat 工具監控 CPU 負載量
安裝 sysstat 工具:
apt-get install sysstat
sysstat 指令簡單說明:
sar -u 1 3 # 每一秒鐘測一次 CPU,三次後計算平均。
sar -r 3 3 # 每三秒測一次實體與虛擬記憶體用量,三次後計算平均。
執行以下指令測試一下:
/usr/bin/sar -u 1 3
在 MRTG 網頁目錄下新增一個 CPU 目錄:
mkdir /var/www/mrtg/cpu
cd /var/www/mrtg/cpu
編寫 CPU 監控的 bash script:
vim cpu.sh
cpu.sh 內容如下:
修改執行權限:
chmod 755 cpu.sh
編寫監控 CPU 的 MRTG 設置檔:
vim cpu.cfg
cpu.cfg 內容如下:
執行以下指令三次,直到沒有錯誤訊息:
env LANG=C /usr/bin/mrtg /var/www/mrtg/cpu/cpu.cfg
編輯系統排程檔:
vim /etc/crontab
寫入以下內容:
使用瀏覽器觀察 CPU 負載頁面:
http://localhost/mrtg/cpu/localhost.html
Reference:
01. http://www.debianhelp.co.uk/mrtg.htm
02. http://www.linuxhomenetworking.com/wiki/
03. http://noc.navi.net/mrtg-conf.html
04. http://linux.vbird.org/linux_security/old/04mrtg.php
環境:Ubuntu 9.10 Server
#請先切換到 root 身份。
首先,要先裝好 Apache 與 PHP:
apt-get install apache2
apt-get install php5 libapache2-mod-php5
接著安裝 SNMP:
apt-get install snmpd
修改 SNMP 設定檔:
vim /etc/snmp/snmpd.conf
把 snmpd.conf 的 sec.name source community 部份修改如下:
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private
重新啟動 SNMP 服務:
/etc/init.d/snmpd restart
安裝 MRTG:
apt-get install mrtg
建立 MRTG 的網頁資料夾:
mkdir /var/www/mrtg
編輯 MRTG 設置檔:
vim /etc/mrtg.cfg
在檔案內 Global Settings 那段,修改成如下設定:
RunAsDaemon: yes
EnableIPv6: no
WorkDir: /var/www/mrtg
Options[_]: bits, growright
WriteExpires: Yes
Title[^]: Traffic Analysis For
查看 /etc/cron.d/mrtg 檔案,編輯 MRTG 的自動排程。
內容類似:
*/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi
或:
*/5 * * * * root if [ ! -d /var/lock/mrtg ]; then mkdir /var/lock/mrtg; fi; if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
執行下列指令,產生本機監控設置:
cfgmaker public@localhost > /etc/mrtg.cfg
cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg
使用 indexmaker 產生 MRTG 頁面:
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
執行以下指令三次,直到沒有錯誤訊息:
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
使用瀏覽器連線到本機的 MRTG 頁面資料夾觀察流量頁面:
http://localhost/mrtg/
*
搭配 sysstat 工具監控 CPU 負載量
安裝 sysstat 工具:
apt-get install sysstat
sysstat 指令簡單說明:
sar -u 1 3 # 每一秒鐘測一次 CPU,三次後計算平均。
sar -r 3 3 # 每三秒測一次實體與虛擬記憶體用量,三次後計算平均。
執行以下指令測試一下:
/usr/bin/sar -u 1 3
在 MRTG 網頁目錄下新增一個 CPU 目錄:
mkdir /var/www/mrtg/cpu
cd /var/www/mrtg/cpu
編寫 CPU 監控的 bash script:
vim cpu.sh
cpu.sh 內容如下:
#!/bin/bash # 開始使用 sar 來監測 CPU 的 user 及 System 負載率 cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3}'` cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $5}'` UPtime=`/usr/bin/uptime | awk '{print $3 " " $4 " " $5}'` # 列出四個數據(前兩個為數字) echo $cpuusr echo $cpusys echo $UPtime echo localhost
修改執行權限:
chmod 755 cpu.sh
編寫監控 CPU 的 MRTG 設置檔:
vim cpu.cfg
cpu.cfg 內容如下:
### Global Config Options ### To get bits instead of bytes and graphs growing to the right WorkDir: /var/www/mrtg/cpu/ Language: utf8 Target[localhost]: `/var/www/mrtg/cpu/cpu.sh` MaxBytes[localhost]: 100 Options[localhost]: gauge, nopercent, growright YLegend[localhost]: CPU loading (%) ShortLegend[localhost]: % LegendO[localhost]: CPU sys; LegendI[localhost]: CPU usr; Title[localhost]: CPU Utilization PageTop[localhost]: <h1>localhost CPU usage</h1>
執行以下指令三次,直到沒有錯誤訊息:
env LANG=C /usr/bin/mrtg /var/www/mrtg/cpu/cpu.cfg
編輯系統排程檔:
vim /etc/crontab
寫入以下內容:
*/5 * * * * root /usr/bin/mrtg /var/www/mrtg/cpu/cpu.cfg > /dev/null 2>&1
使用瀏覽器觀察 CPU 負載頁面:
http://localhost/mrtg/cpu/localhost.html
Reference:
01. http://www.debianhelp.co.uk/mrtg.htm
02. http://www.linuxhomenetworking.com/wiki/
03. http://noc.navi.net/mrtg-conf.html
04. http://linux.vbird.org/linux_security/old/04mrtg.php
使用 Cacti 監控系統效能
#如果有套件管理軟體,請盡量用套件管理軟體裝就好了,不要為自己找麻煩 ...
Multi CPU Utilization Graph
http://forums.cacti.net/about11615.html
Reference:
01. http://cacti.xxoo.net/
02. http://forum.icst.org.tw/phpbb/viewtopic.php?t=7671
03. http://itgroup.blueshop.com.tw/towns/hc?n=wodvew&i=401
04. http://cha.homeip.net/blog/archives/2006/03/cacti.html
05. http://blog.pmail.idv.tw/index.php?load=read&id=373
06. http://www.ubuntugeek.com/
Further Reading:
http://ycfunet.blogspot.com/2008/05/rrdtool.html
http://www.study-area.org/tips/rrdtool/rrdtool.html
Multi CPU Utilization Graph
http://forums.cacti.net/about11615.html
Reference:
01. http://cacti.xxoo.net/
02. http://forum.icst.org.tw/phpbb/viewtopic.php?t=7671
03. http://itgroup.blueshop.com.tw/towns/hc?n=wodvew&i=401
04. http://cha.homeip.net/blog/archives/2006/03/cacti.html
05. http://blog.pmail.idv.tw/index.php?load=read&id=373
06. http://www.ubuntugeek.com/
Further Reading:
http://ycfunet.blogspot.com/2008/05/rrdtool.html
http://www.study-area.org/tips/rrdtool/rrdtool.html
tag:
linux
在 FreeBSD 內更新 DNS 設定
DNS 的設定檔通常在 /etc/namedb/ 資料夾底下。
領域資料檔更新時,記得更新裡面的 serial number。
通常會用「更新日期 + 編號」當作 serial number。
修改完領域資料檔,執行:
rndc flush
重開 DNS 服務,執行:
/etc/rc.d/named restart
Reference:
01. http://teacher.tysh.tyc.edu.tw/~t333/wiki/doku.php?id=freebsd:dns
領域資料檔更新時,記得更新裡面的 serial number。
通常會用「更新日期 + 編號」當作 serial number。
修改完領域資料檔,執行:
rndc flush
重開 DNS 服務,執行:
/etc/rc.d/named restart
Reference:
01. http://teacher.tysh.tyc.edu.tw/~t333/wiki/doku.php?id=freebsd:dns
安裝 TKG 網格機器
主題:在 Ubuntu 9.10 環境 ( x86_32 或 x86_64 ) 安裝 Globus Toolkit 4。
***************************
零、環境說明
TKG 網格主機,作業系統的預設使用者:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
TKG Globus 網格使用者名稱:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
「TKG Globus 網格使用者 user008」映對到「TKG 網格主機作業系統使用者 user008」。
「TKG Globus 網格使用者 user008」使用網格主機作業系統中的 user008 帳號存取主機資源。
---------
安裝過程中,需要設定密碼或要求輸入密碼的地方,請都使用 TKG 的專用密碼。
***************************
一、網路設定
執行:
sudo su -
執行:
vim /etc/network/interface
將 eth0 的內容改為如下:
auto eth0
iface eth0 inet static
address 192.168.100.(主機號碼)
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers (資管系 DNS 主機位址)
執行:
/etc/init.d/networking restart
執行:
vim /etc/hostname
將內容修改為:
im(主機號碼).im.ncue.edu.tw
存檔離開,執行:
reboot
重開機之後,使用以下指令檢查一下主機名稱:
/bin/hostname
使用以下指令檢查一下網路設定:
ifconfig
然後執行:
ping 192.168.100.1
ping (資管系 DNS 主機位址)
***************************
二、下載相關檔案
執行:
cd /opt
執行:
scp -r user008@192.168.100.1:/opt/globus_ubuntu /opt
執行:
cd /opt/globus_ubuntu
執行:
ls -lh
顯示:
apache-ant-1.7.1-bin.tar.gz
globus_simple_ca_502cf2ea_setup-0.19.tar.gz
grid-mapfile
gt4.0.8-all-source-installer.tar.gz
gt4.2.1-all-source-installer.tar.gz
jdk-6u17-linux-i586.bin
jdk-6u17-linux-x64.bin
junit-4.3.1.jar
ld.so.conf
mpich.tar.gz
pre-requisites.sh
profile
xinetd.d_gsiftp
xinetd.d_gsigatekeeper
***************************
三、安裝必備軟體 ( prerequisite softwares )
執行:
cd /opt/globus_ubuntu
執行:
./pre-requisites.sh
系統進行安裝確認時,請輸入:Y
***************************
四、獨立安裝必備軟體:Java 與 Apache Ant
Java 的安裝。
執行:
cd /opt/globus_ubuntu
如果是 x86_32 環境請執行:
./jdk-6u17-linux-i586.bin
如果是 x86_64 環境請執行:
./jdk-6u17-linux-x64.bin
顯示:
Java 的 license terms,請壓一下 q,然後輸入 yes,按 enter。
Java 自解壓縮安裝完成後,請壓幾下 enter 結束安裝。
執行:
mv jdk1.6.0_17 ../java
---------
Apache Ant 的安裝。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf apache-ant-1.7.1-bin.tar.gz
執行:
mv apache-ant-1.7.1 ../ant
執行:
cp junit-4.3.1.jar ../ant/lib/
---------
匯入環境變數。
執行:
cd /opt/globus_ubuntu
執行:
more profile >> /etc/profile
執行:
source /etc/profile
# 先忽略 -su: /opt/globus/etc/globus-user-env.sh: No such file or directory 錯誤。
測試 Java,執行:
java -version
測試 Apache Ant,執行:
ant -version
***************************
五、安裝 Globus Toolkit
# 研究室舊有的網格使用的是 Globus Toolkit 4.0.* 版本的。
# Globus Toolkit 4.0.* 與 Globus Toolkit 4.2.* 是不相通的。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf gt4.0.8-all-source-installer.tar.gz
執行:
mkdir /opt/globus
執行:
cd /opt/globus_ubuntu/gt4.0.8-all-source-installer
執行:
./configure --prefix=/opt/globus
執行:
make | tee gt_make.log
# 編譯如果出現問題,請追蹤一下 gt_make.log 檔案,尋找錯誤訊息。
編譯完成,執行:
make install
安裝完成,執行:
cd /opt/globus_ubuntu
執行:
more ld.so.conf >> /etc/ld.so.conf
執行:
ldconfig
***************************
六、設置 Grid Security Infrastructure
# 由於 TKG 已有架設好的 SimpleCA Server ( 192.168.100.1 ),
# 直接使用 TKG 的 globus_simple_ca_502cf2ea_setup-0.19.tar.gz 檔案。
執行:
cp /opt/globus_ubuntu/globus_simple_ca_502cf2ea_setup-0.19.tar.gz /opt/globus/
執行:
cd /opt/globus
如果是 x86_32 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc32dbg
如果是 x86_64 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc64dbg
gpt-build 完成後,執行:
gpt-postinstall
執行:
/opt/globus/setup/globus_simple_ca_502cf2ea_setup/setup-gsi -default
***************************
七、設置 gsiftp 與 gsigatekeeper
執行:
cd /opt/globus_ubuntu
執行:
cp xinetd.d_gsiftp /etc/xinetd.d/gsiftp
執行:
cp xinetd.d_gsigatekeeper /etc/xinetd.d/gsigatekeeper
執行:
/etc/init.d/xinetd restart
***************************
八、主機認證與使用者認證
TKG 網格主機認證:
# TKG 網格 SimpleCA Server 為 192.168.100.1,主機名稱是 im1.im.ncue.edu.tw。
# SimpleCA Server 的管理者為 im1.im.ncue.edu.tw 作業系統中的 root 帳號。
執行:
scp user008@192.168.100.1:/etc/hosts /etc/hosts
執行:
vim /etc/hosts
# 將本機的 IP 與 hostname 對映寫入並存檔。
# 例如:192.168.100.256 im256.im.ncue.edu.tw im256
確認主機名稱符合格式,執行:
hostname
# 以 TKG 網格為例,名稱應該是 im主機號碼.im.ncue.edu.tw 這樣的格式。
# 若主機名稱有出入,請修改 /etc/hostname 並重新開機。
切換到 root 身份,執行:
cd /etc/grid-security/
執行:
grid-cert-request -host `hostname`
以上指令會在 /etc/grid-security 底下產生:
hostcert.pem
hostcert_request.pem
hostkey.pem
將 hostcert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp hostcert_request.pem user008@im1:~/temp/
# 對 hostcert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
# 請另外開啟一個 SSH 連線,以 user008 帳號登入 im1 (192.168.100.1)。
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in hostcert_request.pem -out hostcert.pem
回到認證中的網格主機,切換到 root 身份,執行:
cd /etc/grid-security/
從 SimpleCA Server 將認證產生的 hostcert.pem 取回,執行:
scp user008@im1:~/temp/hostcert.pem /etc/grid-security/hostcert.pem
---------
TKG 網格使用者認證:
# TKG 網格中只有一個「網格使用者 user008」,因此直接取用認證過 user008 身份的驗證檔案即可。
執行:
su - user008
執行:
cd /home/user008
執行:
scp -r user008@im1:~/.globus /home/user008/
執行:
grid-proxy-init
顯示:
Your identity: /O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008
Enter GRID pass phrase for this identity: # 輸入 TKG 專用密碼
grid-proxy-init 順利初始化,代表認證成功。
***************************
九、關於 grid-mapfile
執行:
sudo su -
# 為了讓網格中其他的機器也可以透過作業系統的 user008 帳號來運用本機資源
執行:
cp /opt/globus_ubuntu/grid-mapfile /etc/grid-security/
***************************
十、安裝 MPICH
執行:
cd /opt/globus_ubuntu/
執行:
tar zxvf mpich.tar.gz
執行:
mkdir /opt/mpich
執行:
cd mpich-1.2.7p1/
x86_32 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc32dbg
x86_64 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc64dbg
執行:
make | tee mpich_make.log
執行:
make install
執行:
su - user008
執行:
cp /opt/mpich/examples/cpi.c .
執行:
mpicc cpi.c -o cpi
在同一個目錄底下,執行:
vim machines
編寫 machines 檔,內容是:
"本機的 hostname" 1
編輯完成後,執行:
grid-proxy-init
Grid Proxy 起始化後,執行:
mpirun -np 1 cpi
順利的話,螢幕會印出 Pi 的值與執行的主機名稱。
***************************
附錄:
pre-requisites.sh 內容:
#!/bin/bash
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
openssh-server \
libssl-dev \
zlib-bin \
zlib1g \
zlib1g-dev \
gcc \
g++ \
xinetd \
echo "*** DO NOT FORGET JAVA SDK & APACHE-ANT :-) ***"
globus_ubuntu/profile 內容:
export ANT_HOME=/opt/ant
export JAVA_HOME=/opt/java
export MPICH_HOME=/opt/mpich
export GLOBUS_LOCATION=/opt/globus
export PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$MPICH_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
source $GLOBUS_LOCATION/etc/globus-user-env.sh
xinetd.d_gsiftp 內容:
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
xinetd.d_gsigatekeeper 內容:
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
***************************
Reference:
01. http://tkg.im.ncue.edu.tw/
***************************
零、環境說明
TKG 網格主機,作業系統的預設使用者:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
TKG Globus 網格使用者名稱:
user008
# user008 的密碼為 TKG 的專用密碼。
# 請詢問老師或學長姐。
---------
「TKG Globus 網格使用者 user008」映對到「TKG 網格主機作業系統使用者 user008」。
「TKG Globus 網格使用者 user008」使用網格主機作業系統中的 user008 帳號存取主機資源。
---------
安裝過程中,需要設定密碼或要求輸入密碼的地方,請都使用 TKG 的專用密碼。
***************************
一、網路設定
執行:
sudo su -
執行:
vim /etc/network/interface
將 eth0 的內容改為如下:
auto eth0
iface eth0 inet static
address 192.168.100.(主機號碼)
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers (資管系 DNS 主機位址)
執行:
/etc/init.d/networking restart
執行:
vim /etc/hostname
將內容修改為:
im(主機號碼).im.ncue.edu.tw
存檔離開,執行:
reboot
重開機之後,使用以下指令檢查一下主機名稱:
/bin/hostname
使用以下指令檢查一下網路設定:
ifconfig
然後執行:
ping 192.168.100.1
ping (資管系 DNS 主機位址)
***************************
二、下載相關檔案
執行:
cd /opt
執行:
scp -r user008@192.168.100.1:/opt/globus_ubuntu /opt
執行:
cd /opt/globus_ubuntu
執行:
ls -lh
顯示:
apache-ant-1.7.1-bin.tar.gz
globus_simple_ca_502cf2ea_setup-0.19.tar.gz
grid-mapfile
gt4.0.8-all-source-installer.tar.gz
gt4.2.1-all-source-installer.tar.gz
jdk-6u17-linux-i586.bin
jdk-6u17-linux-x64.bin
junit-4.3.1.jar
ld.so.conf
mpich.tar.gz
pre-requisites.sh
profile
xinetd.d_gsiftp
xinetd.d_gsigatekeeper
***************************
三、安裝必備軟體 ( prerequisite softwares )
執行:
cd /opt/globus_ubuntu
執行:
./pre-requisites.sh
系統進行安裝確認時,請輸入:Y
***************************
四、獨立安裝必備軟體:Java 與 Apache Ant
Java 的安裝。
執行:
cd /opt/globus_ubuntu
如果是 x86_32 環境請執行:
./jdk-6u17-linux-i586.bin
如果是 x86_64 環境請執行:
./jdk-6u17-linux-x64.bin
顯示:
Java 的 license terms,請壓一下 q,然後輸入 yes,按 enter。
Java 自解壓縮安裝完成後,請壓幾下 enter 結束安裝。
執行:
mv jdk1.6.0_17 ../java
---------
Apache Ant 的安裝。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf apache-ant-1.7.1-bin.tar.gz
執行:
mv apache-ant-1.7.1 ../ant
執行:
cp junit-4.3.1.jar ../ant/lib/
---------
匯入環境變數。
執行:
cd /opt/globus_ubuntu
執行:
more profile >> /etc/profile
執行:
source /etc/profile
# 先忽略 -su: /opt/globus/etc/globus-user-env.sh: No such file or directory 錯誤。
測試 Java,執行:
java -version
測試 Apache Ant,執行:
ant -version
***************************
五、安裝 Globus Toolkit
# 研究室舊有的網格使用的是 Globus Toolkit 4.0.* 版本的。
# Globus Toolkit 4.0.* 與 Globus Toolkit 4.2.* 是不相通的。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf gt4.0.8-all-source-installer.tar.gz
執行:
mkdir /opt/globus
執行:
cd /opt/globus_ubuntu/gt4.0.8-all-source-installer
執行:
./configure --prefix=/opt/globus
執行:
make | tee gt_make.log
# 編譯如果出現問題,請追蹤一下 gt_make.log 檔案,尋找錯誤訊息。
編譯完成,執行:
make install
安裝完成,執行:
cd /opt/globus_ubuntu
執行:
more ld.so.conf >> /etc/ld.so.conf
執行:
ldconfig
***************************
六、設置 Grid Security Infrastructure
# 由於 TKG 已有架設好的 SimpleCA Server ( 192.168.100.1 ),
# 直接使用 TKG 的 globus_simple_ca_502cf2ea_setup-0.19.tar.gz 檔案。
執行:
cp /opt/globus_ubuntu/globus_simple_ca_502cf2ea_setup-0.19.tar.gz /opt/globus/
執行:
cd /opt/globus
如果是 x86_32 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc32dbg
如果是 x86_64 環境,執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc64dbg
gpt-build 完成後,執行:
gpt-postinstall
執行:
/opt/globus/setup/globus_simple_ca_502cf2ea_setup/setup-gsi -default
***************************
七、設置 gsiftp 與 gsigatekeeper
執行:
cd /opt/globus_ubuntu
執行:
cp xinetd.d_gsiftp /etc/xinetd.d/gsiftp
執行:
cp xinetd.d_gsigatekeeper /etc/xinetd.d/gsigatekeeper
執行:
/etc/init.d/xinetd restart
***************************
八、主機認證與使用者認證
TKG 網格主機認證:
# TKG 網格 SimpleCA Server 為 192.168.100.1,主機名稱是 im1.im.ncue.edu.tw。
# SimpleCA Server 的管理者為 im1.im.ncue.edu.tw 作業系統中的 root 帳號。
執行:
scp user008@192.168.100.1:/etc/hosts /etc/hosts
執行:
vim /etc/hosts
# 將本機的 IP 與 hostname 對映寫入並存檔。
# 例如:192.168.100.256 im256.im.ncue.edu.tw im256
確認主機名稱符合格式,執行:
hostname
# 以 TKG 網格為例,名稱應該是 im主機號碼.im.ncue.edu.tw 這樣的格式。
# 若主機名稱有出入,請修改 /etc/hostname 並重新開機。
切換到 root 身份,執行:
cd /etc/grid-security/
執行:
grid-cert-request -host `hostname`
以上指令會在 /etc/grid-security 底下產生:
hostcert.pem
hostcert_request.pem
hostkey.pem
將 hostcert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp hostcert_request.pem user008@im1:~/temp/
# 對 hostcert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
# 請另外開啟一個 SSH 連線,以 user008 帳號登入 im1 (192.168.100.1)。
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in hostcert_request.pem -out hostcert.pem
回到認證中的網格主機,切換到 root 身份,執行:
cd /etc/grid-security/
從 SimpleCA Server 將認證產生的 hostcert.pem 取回,執行:
scp user008@im1:~/temp/hostcert.pem /etc/grid-security/hostcert.pem
---------
TKG 網格使用者認證:
# TKG 網格中只有一個「網格使用者 user008」,因此直接取用認證過 user008 身份的驗證檔案即可。
執行:
su - user008
執行:
cd /home/user008
執行:
scp -r user008@im1:~/.globus /home/user008/
執行:
grid-proxy-init
顯示:
Your identity: /O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008
Enter GRID pass phrase for this identity: # 輸入 TKG 專用密碼
grid-proxy-init 順利初始化,代表認證成功。
***************************
九、關於 grid-mapfile
執行:
sudo su -
# 為了讓網格中其他的機器也可以透過作業系統的 user008 帳號來運用本機資源
執行:
cp /opt/globus_ubuntu/grid-mapfile /etc/grid-security/
***************************
十、安裝 MPICH
執行:
cd /opt/globus_ubuntu/
執行:
tar zxvf mpich.tar.gz
執行:
mkdir /opt/mpich
執行:
cd mpich-1.2.7p1/
x86_32 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc32dbg
x86_64 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc64dbg
執行:
make | tee mpich_make.log
執行:
make install
執行:
su - user008
執行:
cp /opt/mpich/examples/cpi.c .
執行:
mpicc cpi.c -o cpi
在同一個目錄底下,執行:
vim machines
編寫 machines 檔,內容是:
"本機的 hostname" 1
編輯完成後,執行:
grid-proxy-init
Grid Proxy 起始化後,執行:
mpirun -np 1 cpi
順利的話,螢幕會印出 Pi 的值與執行的主機名稱。
***************************
附錄:
pre-requisites.sh 內容:
#!/bin/bash
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
openssh-server \
libssl-dev \
zlib-bin \
zlib1g \
zlib1g-dev \
gcc \
g++ \
xinetd \
echo "*** DO NOT FORGET JAVA SDK & APACHE-ANT :-) ***"
globus_ubuntu/profile 內容:
export ANT_HOME=/opt/ant
export JAVA_HOME=/opt/java
export MPICH_HOME=/opt/mpich
export GLOBUS_LOCATION=/opt/globus
export PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$MPICH_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
source $GLOBUS_LOCATION/etc/globus-user-env.sh
xinetd.d_gsiftp 內容:
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
xinetd.d_gsigatekeeper 內容:
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
***************************
Reference:
01. http://tkg.im.ncue.edu.tw/
安裝 Globus 與 MPICH
*此篇安裝記錄的各項設定主要是針對彰化師大資管 TKG ( TK group ) 研究室的作業環境。
*如果您熟悉 Linux 系統,您可以自行修改安裝路徑、使用者帳號等參數以符合您的需求。
主題:在 Ubuntu 9.10 環境 ( x86_32 或 x86_64 ) 安裝 Globus Toolkit 4 ( 4.0.* 或 4.2.* )。
關於 Globus Toolkit 網格 ( Grid ) 環境:
在網格環境中,使用者通常會有一個網格身份,使用者透過該網格身份來使用網格的資源。
某個有限範圍的網格,通常會稱為一個 Virtual Organization ( VO ),網格身份就是指使用者在 VO 中的身份。
# 關於 VO 可以參考 [Reference 01]。
VO 可以用 domain name 來命名,例如彰師資管可以使用 im.ncue.edu.tw。
而「hostname.im.ncue.edu.tw」可以用來識別 im.ncue.edu.tw 這個 VO 內的某台主機,hostname 即主機名稱。
主機作業系統中的使用者身份和 VO 中的網格身份是不同的。
主機作業系統中的使用者身份和 VO 中的網格身份是一個對映 ( mapping ) 關係。
例如:
PC-A 作業系統中有一個使用者帳號 userA。
PC-B 作業系統中有一個使用者帳號 userB。
PC-A 和 PC-B 屬於同一個網格 ( 同一個 VO )。
網格 ( VO ) 中的一個網格身份 grid_user 對映到 PC-A 的 userA 與 PC-B 的 userB,
只要有 grid_user 這個網格身份的使用權,就可以使用 grid_user 身份對映到 userA 及 userB,
並透過 userA 和 userB 這兩個身份分別使用 PC-A 與 PC-B 的資源。
更詳細的 Globus Toolkit 說明,可以參考:......
***************************
零、說明
TKG 網格的主機,作業系統的預設使用者帳號是:user008
user008 的密碼為 TKG 的專用密碼,請詢問老師或學長姐。
安裝軟體時的身份皆是「作業系統的 root」,執行某些動作時,如需切換身份,會特別說明。
安裝完成的 Globus Toolkit 網格管理者是「作業系統的 root」。
安裝完成的 Globus Toolkit 對映到的作業系統帳號是「作業系統的 user008」。
安裝完成的 Globus Toolkit 網格使用者是「VO 的 user008」。
# 「網格使用者的帳號」跟「對映到的作業系統帳號」是否使用相同的名稱,是見仁見智的。
***************************
一、網路設定
TKG 網格使用的是 192.168.100.0/24 這個 Private Network,請先將您的機器加入這個 LAN。
# 請先熟悉一下 vim 的模式切換、編輯指令、存檔指令(例如:Esc,i,:w,:q)。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
例如,您將使用的 IP 是:192.168.100.256
# be careful with this IP :-)
在 Ubuntu 底下,請執行:
vim /etc/network/interface
將 eth0 的內容改為如下:
auto eth0
iface eth0 inet static
address 192.168.100.256
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers ( 請依據情況設定,通常是一個 Public IP )
然後執行:
/etc/init.d/networking restart
# 如果您是使用 SSH 遠端連線,連線會中斷。
# 請將你的 SSH Client 也加入 192.168.100.0/24 這個 LAN,再重新連線到剛剛設定的電腦。
接下來,需要修改主機的名稱,使用 im*.im.ncue.edu.tw 這個格式。
例如,您使用的 IP 是 192.168.100.256,主機名稱會是:im256.im.ncue.edu.tw
請執行:
vim /etc/hostname
將內容修改為:
im256.im.ncue.edu.tw
存檔離開後,請執行:
reboot
重開機之後,使用以下指令檢查一下主機名稱:
/bin/hostname
使用以下指令檢查一下網路設定:
ifconfig
然後執行:
ping 192.168.100.1
ping ( 您的 DNS IP )
兩個 ping 測試都成功,請繼續下一步驟。
***************************
二、下載相關檔案
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt
執行:
scp -r user008@192.168.100.1:/opt/globus_ubuntu /opt
執行:
cd /opt/globus_ubuntu
執行:
ls -lh
應該有這些檔案,總共大約 427 MB:
apache-ant-1.7.1-bin.tar.gz
globus_simple_ca_502cf2ea_setup-0.19.tar.gz
grid-mapfile
gt4.0.8-all-source-installer.tar.gz
gt4.2.1-all-source-installer.tar.gz
jdk-6u17-linux-i586.bin
jdk-6u17-linux-x64.bin
junit-4.3.1.jar
ld.so.conf
mpich.tar.gz
pre-requisites.sh
profile
xinetd.d_gsiftp
xinetd.d_gsigatekeeper
請繼續下一步驟。
***************************
三、安裝必備軟體 ( prerequisite softwares )
# 注意:這是個人測試 Ubuntu Server 環境下的必備軟體清單。
# 注意:如果您的環境不一樣,請檢查 Globus Toolkit 官方 prerequisite softwares 清單,補足缺少的軟體。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
./pre-requisites.sh
pre-requisites.sh 的內容是:
#!/bin/bash
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
openssh-server \
libssl-dev \
zlib-bin \
zlib1g \
zlib1g-dev \
gcc \
g++ \
xinetd \
echo "*** DO NOT FORGET JAVA SDK & APACHE-ANT :-) ***"
系統進行安裝確認時,請輸入:Y
請繼續下一步驟。
***************************
四、獨立安裝必備軟體:Java 與 Apache Ant
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
首先,進行 Java 的安裝。
執行:
cd /opt/globus_ubuntu
如果是 x86_32 環境請執行:
./jdk-6u17-linux-i586.bin
如果是 x86_64 環境請執行:
./jdk-6u17-linux-x64.bin
會出現 Java 的 license terms,請壓一下 q,然後輸入 yes,按 enter。
Java 自解壓縮安裝,完成後請壓幾下 enter 結束安裝。
執行:
mv jdk1.6.0_17 ../java
接下來,進行 Apache Ant 的安裝。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf apache-ant-1.7.1-bin.tar.gz
執行:
mv apache-ant-1.7.1 ../ant
執行:
cp junit-4.3.1.jar ../ant/lib/
接下來匯入環境變數,以測試安裝。
執行:
cd /opt/globus_ubuntu
執行:
more profile >> /etc/profile
globus_ubuntu/profile 的內容是:
export ANT_HOME=/opt/ant
export JAVA_HOME=/opt/java
export MPICH_HOME=/opt/mpich
export GLOBUS_LOCATION=/opt/globus
export PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$MPICH_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
source $GLOBUS_LOCATION/etc/globus-user-env.sh
執行:
source /etc/profile
# 暫時忽略 -su: /opt/globus/etc/globus-user-env.sh: No such file or directory 這行錯誤。
測試 Java,執行:
java -version
測試 Apache Ant,執行:
ant -version
測試成功,請繼續下一步驟。
***************************
五、安裝 Globus Toolkit
研究室舊有的網格使用的是 Globus Toolkit 4.0.* 版本的。
Globus Toolkit 4.0.* 與 Globus Toolkit 4.2.* 是不相通的。
如果您打算搭建一個全新的網格環境,不考慮與舊環境的銜接問題,請使用 Globus Toolkit 4.2.* 版本。
因研究室需求,在此以安裝舊版 Globus Toolkit 4.0.* 為例。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf gt4.0.8-all-source-installer.tar.gz
執行:
mkdir /opt/globus
執行:
cd /opt/globus_ubuntu/gt4.0.8-all-source-installer
執行:
./configure --prefix=/opt/globus
執行:
make | tee gt_make.log
編譯時間根據機器的性能不一,這時可以起來走跳一下,看看窗外綠葉。
編譯如果出現問題,請追蹤一下 gt_make.log 檔案,尋找錯誤訊息。
編譯如果順利完成,請執行:
make install
如果順利安裝完成,執行:
cd /opt/globus_ubuntu
執行:
more ld.so.conf >> /etc/ld.so.conf
執行:
ldconfig
***************************
六、設置 Grid Security Infrastructure ( with/without SimpleCA Server )
前面的步驟執行完,Globus Toolkit 其實已經安裝完,
但仍需進行 GSI ( Grid Security Infrastructure ) 的設置才可以使用。
GSI 的設置需要搭配一套 CA 認證系統,可以使用 Globus Toolkit 附帶 SimpleCA 模組。
安裝 SimpleCA Server 模組的時候,會產生一個 globus_simple_ca_HASH_setup.tar.gz 檔案。
Globus Toolkit 會使用該檔案來進行 gpt-build,完成 GSI 設置。
# HASH 是一串 16 進位亂數。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
---------
with SimpleCA Server already:
由於 TKG 已有架設好的 SimpleCA Server ( 192.168.100.1 ),
可以直接使用 TKG 的 globus_simple_ca_502cf2ea_setup-0.19.tar.gz 檔案。
執行:
cp /opt/globus_ubuntu/globus_simple_ca_502cf2ea_setup-0.19.tar.gz /opt/globus/
執行:
cd /opt/globus
如果是 x86_32 環境請執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc32dbg
如果是 x86_64 環境請執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc64dbg
gpt-build 順利執行完成後,請執行:
gpt-postinstall
以上指令會在 /opt/globus/setup 資料夾底下產生 globus_simple_ca_502cf2ea_setup 資料夾,
執行 globus_simple_ca_502cf2ea_setup 資料夾底下的 setup-gsi 檔案,進行 GSI 設置。
執行:
/opt/globus/setup/globus_simple_ca_502cf2ea_setup/setup-gsi -default
以上指令會在 /etc 底下產生一個 grid-security 資料夾,涉及後續的主機認證和網格使用者對映。
---------
without SimpleCA Server:
如果是全新安裝的網格,尚無 CA Server,可以使用 Globus Toolkit 附帶的 SimpleCA 模組建立一個。
執行:
$GLOBUS_LOCATION/setup/globus/setup-simple-ca
以上指令執行時,會進行新建網格的設定,需要自訂組織名稱,網格管理密碼等等。
# SimpleCA 安裝說明請先暫時參考 [Reference 04]。
執行完成會在 $GLOBUS_LOCATION/setup/ 底下產生一個 globus_simple_ca_HASH_setup 資料夾。
# HASH 是一串 16 進位亂數。
執行:
$GLOBUS_LOCATION/setup/globus_simple_ca_HASH_setup/setup-gsi -default
# HASH 是一串 16 進位亂數。
以上指令會在 root 的家目錄產生一個 .globus 資料夾,裡面有一個名為 simpleCA 的資料夾。
simpleCA 資料夾即為新安裝 SimpleCA Server 的內容。
simpleCA 資料夾內會有一個 globus_simple_ca_HASH_setup.tar.gz 檔案,取用該檔案進行 gpt-build 即可。
執行:
cp /root/.globus/simpleCA/globus_simple_ca_HASH_setup.tar.gz /opt/globus/
# HASH 是一串 16 進位亂數。
執行:
cd /opt/globus
如果是 x86_32 環境請執行:
gpt-build globus_simple_ca_HASH_setup.tar.gz gcc32dbg
# HASH 是一串 16 進位亂數。
如果是 x86_64 環境請執行:
gpt-build globus_simple_ca_HASH_setup.tar.gz gcc64dbg
# HASH 是一串 16 進位亂數。
gpt-build 順利執行完成後,請執行:
gpt-postinstall
以上指令會在 /opt/globus/setup 資料夾底下產生 globus_simple_ca_HASH_setup 資料夾,
執行 globus_simple_ca_HASH_setup 資料夾底下的 setup-gsi 檔案,進行 GSI 設置。
# HASH 是一串 16 進位亂數。
執行:
/opt/globus/setup/globus_simple_ca_HASH_setup/setup-gsi -default
以上指令會在 /etc 底下產生一個 grid-security 資料夾,涉及後續的主機認證和網格使用者對映。
***************************
七、設置 gsiftp 與 gsigatekeeper
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
cp xinetd.d_gsiftp /etc/xinetd.d/gsiftp
執行:
cp xinetd.d_gsigatekeeper /etc/xinetd.d/gsigatekeeper
執行:
/etc/init.d/xinetd restart
xinetd.d_gsiftp 內容:
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
xinetd.d_gsigatekeeper 內容:
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
***************************
八、主機認證與使用者認證
主機認證:
主機認證很好理解,目的就是確認網格中的主機是合法的,不是外面阿貓阿狗假冒的。
首先必須先確認網格中的 SimpleCA Server 是哪一台機器,接下來的認證動作需要跟它溝通。
以 TKG 網格為例,SimpleCA Server 為 192.168.100.1,主機名稱是 im1.im.ncue.edu.tw。
SimpleCA Server 的管理者為 im1.im.ncue.edu.tw 中作業系統的 root 帳號,密碼為 TKG 專用密碼。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
先與環境中主機的 hosts 檔進行同步,執行:
scp user008@192.168.100.1:/etc/hosts /etc/hosts
# user008@192.168.100.1 的密碼是 TKG 的專用密碼。
[注意!] 請將本機 IP 與 hostname 對映也編輯進入 /etc/hosts 檔案中。
[注意!] 執行:vim /etc/hosts 將本機的 IP 與 hostname 寫入並存檔。
試著 ping 一下:
ping im1
若 ping 成功,請繼續後續步驟。
執行:
cd /etc/grid-security/
再次確認一下主機名稱符合格式,執行:
hostname
# 以 TKG 網格為例,名稱應該是 im*.im.ncue.edu.tw 這樣的格式,* 代表數字。
# 若主機名稱有出入,請修改 /etc/hostname 並重新開機。
接下來要產生主機認證檔,執行:
grid-cert-request -host `hostname`
以上指令會在 /etc/grid-security 底下產生:
hostcert.pem
hostcert_request.pem
hostkey.pem
其中 hostcert.pem 目前暫時為空,大小是 0K。
要傳送 hostcert_request.pem 到 SimpleCA Server 進行認證,才會產生一個可用的 hostcert.pem。
接下來將 hostcert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp hostcert_request.pem user008@im1:~/temp/
接著要對 hostcert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
請另外開啟一個 SSH 連線,以 user008 這個帳號登入 im1 (192.168.100.1)。
執行:
ssh user008@im1
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in hostcert_request.pem -out hostcert.pem
以上指令會要求 SimpleCA Server 的管理密碼,密碼為 TKG 專用密碼。
完成後就可以結束對 im1 的連線了。
回到認證中的網格主機,切換到 root 身份,然後執行:
cd /etc/grid-security/
從 SimpleCA Server 將認證產生的 hostcert.pem 取回,執行:
scp user008@im1:~/temp/hostcert.pem /etc/grid-security/hostcert.pem
執行:
ls -lh
檢查 hostcert.pem 大小是否仍為 0K。
---------
TKG 網格使用者認證:
TKG 網格中只有一個 VO 使用者 user008,因此直接取用認證過 user008 身份的驗證檔案即可。
# 上一行中的 user008 指的是「網格使用者 user008」,不是「作業系統使用者 user008」。
[注意!] 首先,切換身份成「作業系統使用者 user008」:
su - user008
執行:
cd /home/user008
直接取用認證好的網格使用者檔案,執行:
scp -r user008@im1:~/.globus /home/user008/
執行:
grid-proxy-init
顯示:
Your identity: /O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008
Enter GRID pass phrase for this identity: # 輸入 TKG 專用密碼
grid-proxy-init 順利初始化,代表認證成功。
---------
新網格使用者認證:
若要用「作業系統使用者 user008」認證建立一個名稱非 user008 的新網格使用者,
[注意!]請先切換身份成「作業系統使用者 user008」:
su - user008
執行:
cd ~
執行:
grid-cert-request
顯示:
Enter your name, e.g., John Smith: # 請輸入新網格使用者名稱
Enter PEM pass phrase: # 請輸入新網格使用者的密碼
Verifying - Enter PEM pass phrase: # 請輸入新網格使用者的密碼
以上執行完畢會在 user008 家目錄底下產生一個 .globus 資料夾,裡面有:
usercert.pem
usercert_request.pem
userkey.pem
其中 usercert.pem 目前暫時為空,大小是 0K。
要傳送 usercert_request.pem 到 SimpleCA Server 進行認證,才會產生一個可用的 usercert.pem。
接下來將 usercert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp ~/.globus/usercert_request.pem user008@im1:~/temp/
接著要對 usercert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
請另外開啟一個 SSH 連線,以 user008 這個帳號登入 im1 (192.168.100.1)。
執行:
ssh user008@im1
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in usercert_request.pem -out usercert.pem
以上指令會要求 SimpleCA Server 的管理密碼,密碼為 TKG 專用密碼。
完成後就可以結束對 im1 的連線了。
回到進行身份認證的主機,切換到正在認證網格身份的「作業系統使用者帳號」:
su - user008
執行:
cd ~
從 SimpleCA Server 將認證產生的 usercert.pem 取回,執行:
scp user008@im1:~/temp/usertcert.pem ~/.globus/usercert.pem
執行:
ls -lh .globus
檢查 usercert.pem 大小是否仍為 0K。
執行:
grid-proxy-init
grid-proxy-init 順利初始化,代表認證成功。
***************************
九、關於 grid-mapfile
grid-mapfile 是記錄「網格使用者」和「作業系統使用者」的映對檔。
以 TKG 網格為例,grid-mapfile 的內容類似於:
"/O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008" user008
「/O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw」代表 im.ncue.edu.tw 這個虛擬組織(VO)。
「/CN=user008」代表虛擬組織(VO)內的 user008 這位使用者。
「"虛擬組織(VO)/CN=使用者"」後,空一格,接著的是作業系統中 user008 這個使用者帳號。
整行的意思是:
虛擬組織(VO)內的 user008 這位使用者,可以透過作業系統中的 user008 帳號運用系統資源。
如此就很好理解了,相當於網格中的某個使用者要來運用這台主機資源時,該用哪個相對的帳號來登入。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
為了讓網格中其他的機器也可以來運用本機資源,執行:
cp /opt/globus_ubuntu/grid-mapfile /etc/grid-security/
***************************
十、安裝 MPICH
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu/
執行:
tar zxvf mpich.tar.gz
執行:
mkdir /opt/mpich
執行:
cd mpich-1.2.7p1/
x86_32 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc32dbg
x86_64 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc64dbg
執行:
make | tee mpich_make.log
執行:
make install
接下來測試一下 MPICH 是否可以運作,先切換到有認證進網格的作業系統使用者 user008。
執行:
su - user008
執行:
cp /opt/mpich/examples/cpi.c .
執行:
mpicc cpi.c -o cpi
在同一個目錄底下,執行:
vim machines
編寫 machines 檔,內容是:
"本機的 hostname" 1
編輯完成後,執行:
grid-proxy-init
Grid Proxy 起始化後,執行:
mpirun -np 1 cpi
順利的話,螢幕會印出 Pi 的值與執行的主機名稱。
***************************
Reference :
01. http://en.wikipedia.org/wiki/Virtual_Organization
02. http://www.globus.org/security/overview.html
03. http://www.globus.org/security/
04. http://blog.tmu.edu.tw/tedyeng/000071.html
*如果您熟悉 Linux 系統,您可以自行修改安裝路徑、使用者帳號等參數以符合您的需求。
主題:在 Ubuntu 9.10 環境 ( x86_32 或 x86_64 ) 安裝 Globus Toolkit 4 ( 4.0.* 或 4.2.* )。
關於 Globus Toolkit 網格 ( Grid ) 環境:
在網格環境中,使用者通常會有一個網格身份,使用者透過該網格身份來使用網格的資源。
某個有限範圍的網格,通常會稱為一個 Virtual Organization ( VO ),網格身份就是指使用者在 VO 中的身份。
# 關於 VO 可以參考 [Reference 01]。
VO 可以用 domain name 來命名,例如彰師資管可以使用 im.ncue.edu.tw。
而「hostname.im.ncue.edu.tw」可以用來識別 im.ncue.edu.tw 這個 VO 內的某台主機,hostname 即主機名稱。
主機作業系統中的使用者身份和 VO 中的網格身份是不同的。
主機作業系統中的使用者身份和 VO 中的網格身份是一個對映 ( mapping ) 關係。
例如:
PC-A 作業系統中有一個使用者帳號 userA。
PC-B 作業系統中有一個使用者帳號 userB。
PC-A 和 PC-B 屬於同一個網格 ( 同一個 VO )。
網格 ( VO ) 中的一個網格身份 grid_user 對映到 PC-A 的 userA 與 PC-B 的 userB,
只要有 grid_user 這個網格身份的使用權,就可以使用 grid_user 身份對映到 userA 及 userB,
並透過 userA 和 userB 這兩個身份分別使用 PC-A 與 PC-B 的資源。
更詳細的 Globus Toolkit 說明,可以參考:......
***************************
零、說明
TKG 網格的主機,作業系統的預設使用者帳號是:user008
user008 的密碼為 TKG 的專用密碼,請詢問老師或學長姐。
安裝軟體時的身份皆是「作業系統的 root」,執行某些動作時,如需切換身份,會特別說明。
安裝完成的 Globus Toolkit 網格管理者是「作業系統的 root」。
安裝完成的 Globus Toolkit 對映到的作業系統帳號是「作業系統的 user008」。
安裝完成的 Globus Toolkit 網格使用者是「VO 的 user008」。
# 「網格使用者的帳號」跟「對映到的作業系統帳號」是否使用相同的名稱,是見仁見智的。
***************************
一、網路設定
TKG 網格使用的是 192.168.100.0/24 這個 Private Network,請先將您的機器加入這個 LAN。
# 請先熟悉一下 vim 的模式切換、編輯指令、存檔指令(例如:Esc,i,:w,:q)。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
例如,您將使用的 IP 是:192.168.100.256
# be careful with this IP :-)
在 Ubuntu 底下,請執行:
vim /etc/network/interface
將 eth0 的內容改為如下:
auto eth0
iface eth0 inet static
address 192.168.100.256
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
dns-nameservers ( 請依據情況設定,通常是一個 Public IP )
然後執行:
/etc/init.d/networking restart
# 如果您是使用 SSH 遠端連線,連線會中斷。
# 請將你的 SSH Client 也加入 192.168.100.0/24 這個 LAN,再重新連線到剛剛設定的電腦。
接下來,需要修改主機的名稱,使用 im*.im.ncue.edu.tw 這個格式。
例如,您使用的 IP 是 192.168.100.256,主機名稱會是:im256.im.ncue.edu.tw
請執行:
vim /etc/hostname
將內容修改為:
im256.im.ncue.edu.tw
存檔離開後,請執行:
reboot
重開機之後,使用以下指令檢查一下主機名稱:
/bin/hostname
使用以下指令檢查一下網路設定:
ifconfig
然後執行:
ping 192.168.100.1
ping ( 您的 DNS IP )
兩個 ping 測試都成功,請繼續下一步驟。
***************************
二、下載相關檔案
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt
執行:
scp -r user008@192.168.100.1:/opt/globus_ubuntu /opt
執行:
cd /opt/globus_ubuntu
執行:
ls -lh
應該有這些檔案,總共大約 427 MB:
apache-ant-1.7.1-bin.tar.gz
globus_simple_ca_502cf2ea_setup-0.19.tar.gz
grid-mapfile
gt4.0.8-all-source-installer.tar.gz
gt4.2.1-all-source-installer.tar.gz
jdk-6u17-linux-i586.bin
jdk-6u17-linux-x64.bin
junit-4.3.1.jar
ld.so.conf
mpich.tar.gz
pre-requisites.sh
profile
xinetd.d_gsiftp
xinetd.d_gsigatekeeper
請繼續下一步驟。
***************************
三、安裝必備軟體 ( prerequisite softwares )
# 注意:這是個人測試 Ubuntu Server 環境下的必備軟體清單。
# 注意:如果您的環境不一樣,請檢查 Globus Toolkit 官方 prerequisite softwares 清單,補足缺少的軟體。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
./pre-requisites.sh
pre-requisites.sh 的內容是:
#!/bin/bash
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
openssh-server \
libssl-dev \
zlib-bin \
zlib1g \
zlib1g-dev \
gcc \
g++ \
xinetd \
echo "*** DO NOT FORGET JAVA SDK & APACHE-ANT :-) ***"
系統進行安裝確認時,請輸入:Y
請繼續下一步驟。
***************************
四、獨立安裝必備軟體:Java 與 Apache Ant
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
首先,進行 Java 的安裝。
執行:
cd /opt/globus_ubuntu
如果是 x86_32 環境請執行:
./jdk-6u17-linux-i586.bin
如果是 x86_64 環境請執行:
./jdk-6u17-linux-x64.bin
會出現 Java 的 license terms,請壓一下 q,然後輸入 yes,按 enter。
Java 自解壓縮安裝,完成後請壓幾下 enter 結束安裝。
執行:
mv jdk1.6.0_17 ../java
接下來,進行 Apache Ant 的安裝。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf apache-ant-1.7.1-bin.tar.gz
執行:
mv apache-ant-1.7.1 ../ant
執行:
cp junit-4.3.1.jar ../ant/lib/
接下來匯入環境變數,以測試安裝。
執行:
cd /opt/globus_ubuntu
執行:
more profile >> /etc/profile
globus_ubuntu/profile 的內容是:
export ANT_HOME=/opt/ant
export JAVA_HOME=/opt/java
export MPICH_HOME=/opt/mpich
export GLOBUS_LOCATION=/opt/globus
export PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$MPICH_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
source $GLOBUS_LOCATION/etc/globus-user-env.sh
執行:
source /etc/profile
# 暫時忽略 -su: /opt/globus/etc/globus-user-env.sh: No such file or directory 這行錯誤。
測試 Java,執行:
java -version
測試 Apache Ant,執行:
ant -version
測試成功,請繼續下一步驟。
***************************
五、安裝 Globus Toolkit
研究室舊有的網格使用的是 Globus Toolkit 4.0.* 版本的。
Globus Toolkit 4.0.* 與 Globus Toolkit 4.2.* 是不相通的。
如果您打算搭建一個全新的網格環境,不考慮與舊環境的銜接問題,請使用 Globus Toolkit 4.2.* 版本。
因研究室需求,在此以安裝舊版 Globus Toolkit 4.0.* 為例。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
tar zxvf gt4.0.8-all-source-installer.tar.gz
執行:
mkdir /opt/globus
執行:
cd /opt/globus_ubuntu/gt4.0.8-all-source-installer
執行:
./configure --prefix=/opt/globus
執行:
make | tee gt_make.log
編譯時間根據機器的性能不一,這時可以起來走跳一下,看看窗外綠葉。
編譯如果出現問題,請追蹤一下 gt_make.log 檔案,尋找錯誤訊息。
編譯如果順利完成,請執行:
make install
如果順利安裝完成,執行:
cd /opt/globus_ubuntu
執行:
more ld.so.conf >> /etc/ld.so.conf
執行:
ldconfig
***************************
六、設置 Grid Security Infrastructure ( with/without SimpleCA Server )
前面的步驟執行完,Globus Toolkit 其實已經安裝完,
但仍需進行 GSI ( Grid Security Infrastructure ) 的設置才可以使用。
GSI 的設置需要搭配一套 CA 認證系統,可以使用 Globus Toolkit 附帶 SimpleCA 模組。
安裝 SimpleCA Server 模組的時候,會產生一個 globus_simple_ca_HASH_setup.tar.gz 檔案。
Globus Toolkit 會使用該檔案來進行 gpt-build,完成 GSI 設置。
# HASH 是一串 16 進位亂數。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
---------
with SimpleCA Server already:
由於 TKG 已有架設好的 SimpleCA Server ( 192.168.100.1 ),
可以直接使用 TKG 的 globus_simple_ca_502cf2ea_setup-0.19.tar.gz 檔案。
執行:
cp /opt/globus_ubuntu/globus_simple_ca_502cf2ea_setup-0.19.tar.gz /opt/globus/
執行:
cd /opt/globus
如果是 x86_32 環境請執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc32dbg
如果是 x86_64 環境請執行:
gpt-build globus_simple_ca_502cf2ea_setup-0.19.tar.gz gcc64dbg
gpt-build 順利執行完成後,請執行:
gpt-postinstall
以上指令會在 /opt/globus/setup 資料夾底下產生 globus_simple_ca_502cf2ea_setup 資料夾,
執行 globus_simple_ca_502cf2ea_setup 資料夾底下的 setup-gsi 檔案,進行 GSI 設置。
執行:
/opt/globus/setup/globus_simple_ca_502cf2ea_setup/setup-gsi -default
以上指令會在 /etc 底下產生一個 grid-security 資料夾,涉及後續的主機認證和網格使用者對映。
---------
without SimpleCA Server:
如果是全新安裝的網格,尚無 CA Server,可以使用 Globus Toolkit 附帶的 SimpleCA 模組建立一個。
執行:
$GLOBUS_LOCATION/setup/globus/setup-simple-ca
以上指令執行時,會進行新建網格的設定,需要自訂組織名稱,網格管理密碼等等。
# SimpleCA 安裝說明請先暫時參考 [Reference 04]。
執行完成會在 $GLOBUS_LOCATION/setup/ 底下產生一個 globus_simple_ca_HASH_setup 資料夾。
# HASH 是一串 16 進位亂數。
執行:
$GLOBUS_LOCATION/setup/globus_simple_ca_HASH_setup/setup-gsi -default
# HASH 是一串 16 進位亂數。
以上指令會在 root 的家目錄產生一個 .globus 資料夾,裡面有一個名為 simpleCA 的資料夾。
simpleCA 資料夾即為新安裝 SimpleCA Server 的內容。
simpleCA 資料夾內會有一個 globus_simple_ca_HASH_setup.tar.gz 檔案,取用該檔案進行 gpt-build 即可。
執行:
cp /root/.globus/simpleCA/globus_simple_ca_HASH_setup.tar.gz /opt/globus/
# HASH 是一串 16 進位亂數。
執行:
cd /opt/globus
如果是 x86_32 環境請執行:
gpt-build globus_simple_ca_HASH_setup.tar.gz gcc32dbg
# HASH 是一串 16 進位亂數。
如果是 x86_64 環境請執行:
gpt-build globus_simple_ca_HASH_setup.tar.gz gcc64dbg
# HASH 是一串 16 進位亂數。
gpt-build 順利執行完成後,請執行:
gpt-postinstall
以上指令會在 /opt/globus/setup 資料夾底下產生 globus_simple_ca_HASH_setup 資料夾,
執行 globus_simple_ca_HASH_setup 資料夾底下的 setup-gsi 檔案,進行 GSI 設置。
# HASH 是一串 16 進位亂數。
執行:
/opt/globus/setup/globus_simple_ca_HASH_setup/setup-gsi -default
以上指令會在 /etc 底下產生一個 grid-security 資料夾,涉及後續的主機認證和網格使用者對映。
***************************
七、設置 gsiftp 與 gsigatekeeper
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu
執行:
cp xinetd.d_gsiftp /etc/xinetd.d/gsiftp
執行:
cp xinetd.d_gsigatekeeper /etc/xinetd.d/gsigatekeeper
執行:
/etc/init.d/xinetd restart
xinetd.d_gsiftp 內容:
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
xinetd.d_gsigatekeeper 內容:
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
***************************
八、主機認證與使用者認證
主機認證:
主機認證很好理解,目的就是確認網格中的主機是合法的,不是外面阿貓阿狗假冒的。
首先必須先確認網格中的 SimpleCA Server 是哪一台機器,接下來的認證動作需要跟它溝通。
以 TKG 網格為例,SimpleCA Server 為 192.168.100.1,主機名稱是 im1.im.ncue.edu.tw。
SimpleCA Server 的管理者為 im1.im.ncue.edu.tw 中作業系統的 root 帳號,密碼為 TKG 專用密碼。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
先與環境中主機的 hosts 檔進行同步,執行:
scp user008@192.168.100.1:/etc/hosts /etc/hosts
# user008@192.168.100.1 的密碼是 TKG 的專用密碼。
[注意!] 請將本機 IP 與 hostname 對映也編輯進入 /etc/hosts 檔案中。
[注意!] 執行:vim /etc/hosts 將本機的 IP 與 hostname 寫入並存檔。
試著 ping 一下:
ping im1
若 ping 成功,請繼續後續步驟。
執行:
cd /etc/grid-security/
再次確認一下主機名稱符合格式,執行:
hostname
# 以 TKG 網格為例,名稱應該是 im*.im.ncue.edu.tw 這樣的格式,* 代表數字。
# 若主機名稱有出入,請修改 /etc/hostname 並重新開機。
接下來要產生主機認證檔,執行:
grid-cert-request -host `hostname`
以上指令會在 /etc/grid-security 底下產生:
hostcert.pem
hostcert_request.pem
hostkey.pem
其中 hostcert.pem 目前暫時為空,大小是 0K。
要傳送 hostcert_request.pem 到 SimpleCA Server 進行認證,才會產生一個可用的 hostcert.pem。
接下來將 hostcert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp hostcert_request.pem user008@im1:~/temp/
接著要對 hostcert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
請另外開啟一個 SSH 連線,以 user008 這個帳號登入 im1 (192.168.100.1)。
執行:
ssh user008@im1
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in hostcert_request.pem -out hostcert.pem
以上指令會要求 SimpleCA Server 的管理密碼,密碼為 TKG 專用密碼。
完成後就可以結束對 im1 的連線了。
回到認證中的網格主機,切換到 root 身份,然後執行:
cd /etc/grid-security/
從 SimpleCA Server 將認證產生的 hostcert.pem 取回,執行:
scp user008@im1:~/temp/hostcert.pem /etc/grid-security/hostcert.pem
執行:
ls -lh
檢查 hostcert.pem 大小是否仍為 0K。
---------
TKG 網格使用者認證:
TKG 網格中只有一個 VO 使用者 user008,因此直接取用認證過 user008 身份的驗證檔案即可。
# 上一行中的 user008 指的是「網格使用者 user008」,不是「作業系統使用者 user008」。
[注意!] 首先,切換身份成「作業系統使用者 user008」:
su - user008
執行:
cd /home/user008
直接取用認證好的網格使用者檔案,執行:
scp -r user008@im1:~/.globus /home/user008/
執行:
grid-proxy-init
顯示:
Your identity: /O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008
Enter GRID pass phrase for this identity: # 輸入 TKG 專用密碼
grid-proxy-init 順利初始化,代表認證成功。
---------
新網格使用者認證:
若要用「作業系統使用者 user008」認證建立一個名稱非 user008 的新網格使用者,
[注意!]請先切換身份成「作業系統使用者 user008」:
su - user008
執行:
cd ~
執行:
grid-cert-request
顯示:
Enter your name, e.g., John Smith: # 請輸入新網格使用者名稱
Enter PEM pass phrase: # 請輸入新網格使用者的密碼
Verifying - Enter PEM pass phrase: # 請輸入新網格使用者的密碼
以上執行完畢會在 user008 家目錄底下產生一個 .globus 資料夾,裡面有:
usercert.pem
usercert_request.pem
userkey.pem
其中 usercert.pem 目前暫時為空,大小是 0K。
要傳送 usercert_request.pem 到 SimpleCA Server 進行認證,才會產生一個可用的 usercert.pem。
接下來將 usercert_request.pem 傳送到 im1 (192.168.100.1),執行:
scp ~/.globus/usercert_request.pem user008@im1:~/temp/
接著要對 usercert_request.pem 檔進行認證,需要登入到 SimpleCA Server 進行操作。
請另外開啟一個 SSH 連線,以 user008 這個帳號登入 im1 (192.168.100.1)。
執行:
ssh user008@im1
@im1 執行:
sudo su -
@im1 執行:
cd /home/user008/temp
@im1 執行:
grid-ca-sign -in usercert_request.pem -out usercert.pem
以上指令會要求 SimpleCA Server 的管理密碼,密碼為 TKG 專用密碼。
完成後就可以結束對 im1 的連線了。
回到進行身份認證的主機,切換到正在認證網格身份的「作業系統使用者帳號」:
su - user008
執行:
cd ~
從 SimpleCA Server 將認證產生的 usercert.pem 取回,執行:
scp user008@im1:~/temp/usertcert.pem ~/.globus/usercert.pem
執行:
ls -lh .globus
檢查 usercert.pem 大小是否仍為 0K。
執行:
grid-proxy-init
grid-proxy-init 順利初始化,代表認證成功。
***************************
九、關於 grid-mapfile
grid-mapfile 是記錄「網格使用者」和「作業系統使用者」的映對檔。
以 TKG 網格為例,grid-mapfile 的內容類似於:
"/O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw/CN=user008" user008
「/O=ncue/OU=tkgroup/OU=im.ncue.edu.tw/OU=im.ncue.edu.tw」代表 im.ncue.edu.tw 這個虛擬組織(VO)。
「/CN=user008」代表虛擬組織(VO)內的 user008 這位使用者。
「"虛擬組織(VO)/CN=使用者"」後,空一格,接著的是作業系統中 user008 這個使用者帳號。
整行的意思是:
虛擬組織(VO)內的 user008 這位使用者,可以透過作業系統中的 user008 帳號運用系統資源。
如此就很好理解了,相當於網格中的某個使用者要來運用這台主機資源時,該用哪個相對的帳號來登入。
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
為了讓網格中其他的機器也可以來運用本機資源,執行:
cp /opt/globus_ubuntu/grid-mapfile /etc/grid-security/
***************************
十、安裝 MPICH
# 請先使用「sudo su -」指令切換成作業系統的 root 身份。
執行:
cd /opt/globus_ubuntu/
執行:
tar zxvf mpich.tar.gz
執行:
mkdir /opt/mpich
執行:
cd mpich-1.2.7p1/
x86_32 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc32dbg
x86_64 環境執行:
./configure --prefix=/opt/mpich/ --with-device=globus2:-flavor=gcc64dbg
執行:
make | tee mpich_make.log
執行:
make install
接下來測試一下 MPICH 是否可以運作,先切換到有認證進網格的作業系統使用者 user008。
執行:
su - user008
執行:
cp /opt/mpich/examples/cpi.c .
執行:
mpicc cpi.c -o cpi
在同一個目錄底下,執行:
vim machines
編寫 machines 檔,內容是:
"本機的 hostname" 1
編輯完成後,執行:
grid-proxy-init
Grid Proxy 起始化後,執行:
mpirun -np 1 cpi
順利的話,螢幕會印出 Pi 的值與執行的主機名稱。
***************************
Reference :
01. http://en.wikipedia.org/wiki/Virtual_Organization
02. http://www.globus.org/security/overview.html
03. http://www.globus.org/security/
04. http://blog.tmu.edu.tw/tedyeng/000071.html
Globus Toolkit 概要
Globus Toolkit (GT) 是一套網格中介軟體,是網格的基礎建設。
如果所有主機都佈署 GT,那麼網格裡某個 node 的使用者就可以透過 GT 使用其他 node 的資源。
#最新版本是 Globus Toolkit 5.0.0 (2010/03)
概念類似於 Web Service,大家遵循一定的規範將主機資源對外開放,外界對其存取有必需的流程及限制。
當然,背後的運作還有許多事情需要處理,
例如:資源的搜尋;使用者認證與授權;任務的分發;結果的傳遞;錯誤處理 ......。
這些使用者都不用去操心,Globus Toolkit 都會幫您處理好,這也是為什麼它叫基礎建設的原因。
其中在安全機制方面,Globus Toolkit 預設提供有 SimpleCA 認證模組,
使用者可以安裝自己的 SimpleCA Server,認證網格機器。
「Globus Toolkit 網格使用者」和「主機作業系統使用者」是不一樣的。
通常會在 Globus Toolkit 的 grid-mapfile 檔案裡作一個映對。
#grid-mapfile 一般在 /etc/grid-security/ 底下。
一組映對通常是這樣子的:
"//U=網格使用者名稱" 作業系統使用者帳號
所以網格使用者對主機的存取權限會為所映對的使用者帳號在該主機的權限所影響。
Linux 使用者可以試著執行:
globus-job-run 主機名稱 /bin/whoami
檢查網格使用者在該主機所映對的作業系統使用者帳號。
Globus Toolkit 4.2.x 和 Globus Toolkit 4.0.x 是沒有辦法兼容的。
官方推薦的 4.0.x 版本是 4.0.8。
官方推薦的 4.2.x 版本是 4.2.1。
編譯安裝 Globus Toolkit 之前,有一些前置工作。
首先先確認您的網格主機都使用在一個網域(domain),例如:*.example.org
編輯您的 /etc/hosts 檔案,讓主機名稱與 IP 位址正確映對。
安裝編譯 Globus Toolkit 所必需的軟體,官方有其必需軟體清單:
//
//
除了 Apache Ant 和 Java SDK,建議直接使用 apt-get 安裝以上軟體和函式庫。
Apache Ant 和 Java SDK 可以直接解壓縮到 /opt 目錄底下使用。
編輯 /etc/profile 檔案,將 Java 和 Apache Ant 的 bin 目錄加入環境變數。
假設 Globus Toolkit 將安裝在 /opt/globus 底下,則將 GLOBUS_LOCATION 變數也加入 shell 環境中:
JAVA_HOME=/opt/java
ANT_HOMT=/opt/ant
GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$JAVA_HOME/bin:$ANT_HOME/bin:$PATH;
在最後加上以下指令,以便之後每次登入都自動匯入 Globus 環境變數:
. $GLOBUS_LOCATION/.../globus-user-env.sh
然後使用 source 指令讓 /etc/profile 的設定立即生效:
source /etc/profile
#先不用理會 gloubs-user-env.sh 無效的通知,因為還不存在。
將 Globus Toolkit 原始碼檔案解壓縮,進入其資料夾,使用以下指令 configure 產生 make 檔:
./configure --prefix=/opt/globus
順利設定完成便可以用以下指令進行編譯:
make | tee gt_make.log
編譯產生的訊息會儲存到 gt_make.log 檔案中,以便除錯。
順利編譯完成便可以用以下指令進行安裝:
make install
接下來是 Globus Toolkit 的後置部署,使用 gpt-build 這個指令。
這部分主要是 Globus Toolkit 安全機制 GSI 的部署。
全新安裝的網格通常還沒有 SimpleCA Server,可以使用 Globus Toolkit 所附帶的 SimpleCA,
第一臺安裝 Globus Toolkit 的機器可以身兼 SimpleCA Server。
安裝 SimpleCA Server ...
每個 Globus Toolkit 的 SimpleCA Server 都會有唯一一個網格認證檔,檔案名稱會是:
globus_HASH_.....
#HASH 是一串亂數編碼。
非 SimpleCA Server 的機器進行 Globus Toolkit 後置部署需要 SimpleCA Server 的網格認證檔。
將網格認證檔複製到 /opt/globus 底下,并切換到該目錄,使用以下指令:
32 位元環境:gpt-build globus_HASH_..... gcc32dbg
64 位元環境:gpt-build globus_HASH_..... gcc64dbg
然後執行:
gpt-postinstall
如果所有主機都佈署 GT,那麼網格裡某個 node 的使用者就可以透過 GT 使用其他 node 的資源。
#最新版本是 Globus Toolkit 5.0.0 (2010/03)
概念類似於 Web Service,大家遵循一定的規範將主機資源對外開放,外界對其存取有必需的流程及限制。
當然,背後的運作還有許多事情需要處理,
例如:資源的搜尋;使用者認證與授權;任務的分發;結果的傳遞;錯誤處理 ......。
這些使用者都不用去操心,Globus Toolkit 都會幫您處理好,這也是為什麼它叫基礎建設的原因。
其中在安全機制方面,Globus Toolkit 預設提供有 SimpleCA 認證模組,
使用者可以安裝自己的 SimpleCA Server,認證網格機器。
「Globus Toolkit 網格使用者」和「主機作業系統使用者」是不一樣的。
通常會在 Globus Toolkit 的 grid-mapfile 檔案裡作一個映對。
#grid-mapfile 一般在 /etc/grid-security/ 底下。
一組映對通常是這樣子的:
"//U=網格使用者名稱" 作業系統使用者帳號
所以網格使用者對主機的存取權限會為所映對的使用者帳號在該主機的權限所影響。
Linux 使用者可以試著執行:
globus-job-run 主機名稱 /bin/whoami
檢查網格使用者在該主機所映對的作業系統使用者帳號。
Globus Toolkit 4.2.x 和 Globus Toolkit 4.0.x 是沒有辦法兼容的。
官方推薦的 4.0.x 版本是 4.0.8。
官方推薦的 4.2.x 版本是 4.2.1。
編譯安裝 Globus Toolkit 之前,有一些前置工作。
首先先確認您的網格主機都使用在一個網域(domain),例如:*.example.org
編輯您的 /etc/hosts 檔案,讓主機名稱與 IP 位址正確映對。
安裝編譯 Globus Toolkit 所必需的軟體,官方有其必需軟體清單:
//
//
除了 Apache Ant 和 Java SDK,建議直接使用 apt-get 安裝以上軟體和函式庫。
Apache Ant 和 Java SDK 可以直接解壓縮到 /opt 目錄底下使用。
編輯 /etc/profile 檔案,將 Java 和 Apache Ant 的 bin 目錄加入環境變數。
假設 Globus Toolkit 將安裝在 /opt/globus 底下,則將 GLOBUS_LOCATION 變數也加入 shell 環境中:
JAVA_HOME=/opt/java
ANT_HOMT=/opt/ant
GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$JAVA_HOME/bin:$ANT_HOME/bin:$PATH;
在最後加上以下指令,以便之後每次登入都自動匯入 Globus 環境變數:
. $GLOBUS_LOCATION/.../globus-user-env.sh
然後使用 source 指令讓 /etc/profile 的設定立即生效:
source /etc/profile
#先不用理會 gloubs-user-env.sh 無效的通知,因為還不存在。
將 Globus Toolkit 原始碼檔案解壓縮,進入其資料夾,使用以下指令 configure 產生 make 檔:
./configure --prefix=/opt/globus
順利設定完成便可以用以下指令進行編譯:
make | tee gt_make.log
編譯產生的訊息會儲存到 gt_make.log 檔案中,以便除錯。
順利編譯完成便可以用以下指令進行安裝:
make install
接下來是 Globus Toolkit 的後置部署,使用 gpt-build 這個指令。
這部分主要是 Globus Toolkit 安全機制 GSI 的部署。
全新安裝的網格通常還沒有 SimpleCA Server,可以使用 Globus Toolkit 所附帶的 SimpleCA,
第一臺安裝 Globus Toolkit 的機器可以身兼 SimpleCA Server。
安裝 SimpleCA Server ...
每個 Globus Toolkit 的 SimpleCA Server 都會有唯一一個網格認證檔,檔案名稱會是:
globus_HASH_.....
#HASH 是一串亂數編碼。
非 SimpleCA Server 的機器進行 Globus Toolkit 後置部署需要 SimpleCA Server 的網格認證檔。
將網格認證檔複製到 /opt/globus 底下,并切換到該目錄,使用以下指令:
32 位元環境:gpt-build globus_HASH_..... gcc32dbg
64 位元環境:gpt-build globus_HASH_..... gcc64dbg
然後執行:
gpt-postinstall
Kernel-based Virtual Machines
# 作業系統環境:Ubuntu 9.10 Server x86_64
一、安裝 KVM (Kernel-based Virtual Machines)
首先,確認 CPU 是否支援虛擬指令集。
開啟終端機,執行:
egrep '(vmx|svm)' --color=always /proc/cpuinfo
如果畫面印出相關資訊,並且有 highlight 的 vmx 或 svm 的字串,代表 CPU 有支援。
執行:
sudo apt-get update && sudo apt-get upgrade
執行:
sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
# 安裝過程中會出現 Postfix 的問項,可以選 Internet。
安裝完成,執行:
sudo adduser `id -un` libvirtd
將當前登入的使用者加入 libvirtd 群組,方能執行 virsh 指令。
執行完畢,請登出,再重新登入,讓設定生效。
執行:
virsh -c qemu:///system list
有成功印出訊息,代表安裝成功。
***
二、設定橋接網路 ( bridge network )
# 如果您打算使用 KVM 預設 NAT 網路,請直接跳過這一步驟。
# 但在新增虛擬機器的時候,請注意調整符合的網路參數!
# 以下操作可能無法從遠端執行,因為涉及網路的中斷及重開。
安裝橋接用的套件,執行:
sudo apt-get install bridge-utils
# 注意!執行以下指令會讓網路切斷,SSH 將無法遠端連線!
為了確保設定期間沒有特殊問題,要先停掉網路服務,執行:
sudo invoke-rc.d networking stop
先備份原始網路設定檔:
sudo cp /etc/network/interfaces /etc/network/interfaces-backup
執行:
sudo vim /etc/network/interfaces
將 interfaces 內容編輯成類似:
# 以下為 TKG 網格的 Private Network 設定,請根據需求自行調整。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.100.主機號碼
network 192.168.100.0
netmask 255.255.255.0
broadcast 192.168.100.255
gateway 192.168.100.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
存檔離開後,執行:
sudo invoke-rc.d networking stop && sudo /etc/init.d/networking restart
網路順利啟動後,可以試著用 SSH 遠端登入看看。
可以執行更新或 ping DNS 等動作進行測試。
虛擬機器的各項預設值,可以參考 /etc/vmbuilder/libvirt/libvirtxml.tmpl 檔案。
***
三、安裝第一台虛擬機器
KVM 目前有三套主流管理工具:
virt-manager:一個圖形介面的管理工具,可以安裝在有 X window 的 Linux 機器上。
virt-install:一個用 python 撰寫的文字介面管理工具,Red Hat 開發。
ubuntu-vm-builder:文字介面管理工具,Canonical 開發。
virt-install 有比較大的操作自由度,所以選用它進行管理操作。
先把它裝起來,執行:
sudo apt-get install python-virtinst
查看 virt-install 各項的參數,執行:
virt-install --help
查看 virt-install 完整的使用說明,執行:
man virt-install
執行:
virt-install \
--connect qemu:///system \
--name=虛擬機器的名稱 \
--ram=分配的記憶體大小 [MB] \
--os-type=作業系統類型 [ex: linux] \
--os-variant=作業系統的版本名稱 [ex: ubuntujaunty] \
--hvm [全虛擬化,hvm 與 paravirt 擇其一,請參考附錄] \
--paravirt [半虛擬化,hvm 與 paravirt 擇其一,請參考附錄] \
--accelerate [KVM 加速器] \
--cdrom=系統安裝光碟的路徑 [ex: *.iso] \
--file=虛擬硬碟的路徑 [ex: *.qcow2] \
--file-size=虛擬硬碟的大小 [GB] \
--bridge=br0 [注意:如果您沒有使用橋接網路,請設定成 --network=default] \
--vnc \
--noautoconsole \
--debug
一個完整的例子如下:
virt-install \
--connect qemu:///system \
--name=imVM \
--ram=1024 \
--os-type=linux \
--os-variant=ubuntujaunty \
--hvm \
--accelerate \
--cdrom=~/ubuntu-9.04.iso \
--file=~/imVM.qcow2 \
--file-size=8 \
--bridge=br0 \
--vnc \
--noautoconsole \
--debug
順利執行完畢,虛擬機器就存在了。
新建的虛擬機器,其描述檔為:
/etc/libvirt/qemu/虛擬機器名稱.xml
要將新建的虛擬機器進行第一次開機,執行:
virsh
virsh # start 虛擬機器名稱
virsh # list --all
virsh # quit
確定虛擬機器開機後,到 X window 環境的機器底下,執行:
sudo apt-get install virt-viewer
執行:
virt-viewer --connect qemu+ssh://使用者帳號@虛擬機器的母體主機位址/system 虛擬機器名稱
成功登入之後,將會出現遠端的虛擬機器畫面。
進行正常的作業系統安裝動作,完成後關機。
再次進入 virsh 開機,然後從其他機器 SSH 連線測試。
如果出現問題,請使用 virt-viewer 檢查虛擬機器狀況。
***
四、使用已存在的虛擬硬碟檔安裝新的虛擬機器
執行:
virt-install \
--connect=qemu:///system \
--name=新的虛擬機器名稱 \
--ram=新的虛擬機器記憶體大小 [MB] \
--os-type=作業系統類型 \
--os-variant=作業系統名稱 \
--accelerate \
--file=已存在的虛擬硬碟路徑 [ex: *.qcow2] \
--bridge=br0 [注意:如果您沒有使用橋接網路,請設定成 --network=default] \
--vnc \
--noautoconsole \
--debug \
--import
***
五、複製虛擬機器
執行:
virt-clone \
--connect=qemu:///system \
-o 舊的虛擬機器名稱 \
-n 新的虛擬機器名稱 \
-f 新的虛擬硬碟路徑 [ex: *.qcow2]
***
六、虛擬機器的管理
執行:
virsh
# 查看所有可以用指令
virsh # help
# 取出虛擬機器描述檔
virsh # dumpxml 虛擬機器名稱 /tmp/虛擬機器描述檔 [ex: *.xml]
# 使用虛擬機器描述檔建立虛擬機器
virsh # define /etc/libvirt/qemu/虛擬機器描述檔 [ex: *.xml]
# 移除虛擬機器
virsh # undefine 虛擬機器名稱
# 列出所有虛擬機器
virsh # list --all
# 啟動虛擬機器
virsh # start 虛擬機器名稱
# 關閉虛擬機器
virsh # shutdown 虛擬機器名稱
# 拔除虛擬機器電源
virsh # destory 虛擬機器名稱
***
附錄:
Full Virtualization specific options
Parameters specific only to fully virtualized guest installs.
--sound
Attach a virtual audio device to the guest.
--noapic
Override the OS type / variant to disables the APIC setting for fully virtualized guest.
--noacpi
Override the OS type / variant to disables the ACPI setting for fully virtualized guest.
Virtualization Type options
Options to override the default virtualization type choices.
-v, --hvm
Request the use of full virtualization, if both para & full virtualization are available on the host. This parameter may not be available if connecting to a Xen hypervisor on a machine without hardware virtualization support. This parameter is implied if connecting to a QEMU based hypervisor.
-p, --paravirt
This guest should be a paravirtualized guest. If the host supports both para & full virtualization, and neither this parameter nor the "--hvm" are specified, this will be assumed.
--accelerate
When installing a QEMU guest, make use of the KVM or KQEMU kernel acceleration capabilities if available. Use of this option is recommended unless a guest OS is known to be incompatible with the accelerators. The KVM accelerator is preferred over KQEMU if both are available.
***
Reference :
01. https://help.ubuntu.com/community/KVM
02. http://thundersha.blogspot.com/2008/07/ubuntu-kvmgui-sector2.html
03. http://www.boobooke.com/v/bbk1819/
04. http://southbrain.com/south/2009/08/youtube-examples-of-xvm-virtin.html
一、安裝 KVM (Kernel-based Virtual Machines)
首先,確認 CPU 是否支援虛擬指令集。
開啟終端機,執行:
egrep '(vmx|svm)' --color=always /proc/cpuinfo
如果畫面印出相關資訊,並且有 highlight 的 vmx 或 svm 的字串,代表 CPU 有支援。
執行:
sudo apt-get update && sudo apt-get upgrade
執行:
sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils
# 安裝過程中會出現 Postfix 的問項,可以選 Internet。
安裝完成,執行:
sudo adduser `id -un` libvirtd
將當前登入的使用者加入 libvirtd 群組,方能執行 virsh 指令。
執行完畢,請登出,再重新登入,讓設定生效。
執行:
virsh -c qemu:///system list
有成功印出訊息,代表安裝成功。
***
二、設定橋接網路 ( bridge network )
# 如果您打算使用 KVM 預設 NAT 網路,請直接跳過這一步驟。
# 但在新增虛擬機器的時候,請注意調整符合的網路參數!
# 以下操作可能無法從遠端執行,因為涉及網路的中斷及重開。
安裝橋接用的套件,執行:
sudo apt-get install bridge-utils
# 注意!執行以下指令會讓網路切斷,SSH 將無法遠端連線!
為了確保設定期間沒有特殊問題,要先停掉網路服務,執行:
sudo invoke-rc.d networking stop
先備份原始網路設定檔:
sudo cp /etc/network/interfaces /etc/network/interfaces-backup
執行:
sudo vim /etc/network/interfaces
將 interfaces 內容編輯成類似:
# 以下為 TKG 網格的 Private Network 設定,請根據需求自行調整。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.100.主機號碼
network 192.168.100.0
netmask 255.255.255.0
broadcast 192.168.100.255
gateway 192.168.100.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
存檔離開後,執行:
sudo invoke-rc.d networking stop && sudo /etc/init.d/networking restart
網路順利啟動後,可以試著用 SSH 遠端登入看看。
可以執行更新或 ping DNS 等動作進行測試。
虛擬機器的各項預設值,可以參考 /etc/vmbuilder/libvirt/libvirtxml.tmpl 檔案。
***
三、安裝第一台虛擬機器
KVM 目前有三套主流管理工具:
virt-manager:一個圖形介面的管理工具,可以安裝在有 X window 的 Linux 機器上。
virt-install:一個用 python 撰寫的文字介面管理工具,Red Hat 開發。
ubuntu-vm-builder:文字介面管理工具,Canonical 開發。
virt-install 有比較大的操作自由度,所以選用它進行管理操作。
先把它裝起來,執行:
sudo apt-get install python-virtinst
查看 virt-install 各項的參數,執行:
virt-install --help
查看 virt-install 完整的使用說明,執行:
man virt-install
執行:
virt-install \
--connect qemu:///system \
--name=虛擬機器的名稱 \
--ram=分配的記憶體大小 [MB] \
--os-type=作業系統類型 [ex: linux] \
--os-variant=作業系統的版本名稱 [ex: ubuntujaunty] \
--hvm [全虛擬化,hvm 與 paravirt 擇其一,請參考附錄] \
--paravirt [半虛擬化,hvm 與 paravirt 擇其一,請參考附錄] \
--accelerate [KVM 加速器] \
--cdrom=系統安裝光碟的路徑 [ex: *.iso] \
--file=虛擬硬碟的路徑 [ex: *.qcow2] \
--file-size=虛擬硬碟的大小 [GB] \
--bridge=br0 [注意:如果您沒有使用橋接網路,請設定成 --network=default] \
--vnc \
--noautoconsole \
--debug
一個完整的例子如下:
virt-install \
--connect qemu:///system \
--name=imVM \
--ram=1024 \
--os-type=linux \
--os-variant=ubuntujaunty \
--hvm \
--accelerate \
--cdrom=~/ubuntu-9.04.iso \
--file=~/imVM.qcow2 \
--file-size=8 \
--bridge=br0 \
--vnc \
--noautoconsole \
--debug
順利執行完畢,虛擬機器就存在了。
新建的虛擬機器,其描述檔為:
/etc/libvirt/qemu/虛擬機器名稱.xml
要將新建的虛擬機器進行第一次開機,執行:
virsh
virsh # start 虛擬機器名稱
virsh # list --all
virsh # quit
確定虛擬機器開機後,到 X window 環境的機器底下,執行:
sudo apt-get install virt-viewer
執行:
virt-viewer --connect qemu+ssh://使用者帳號@虛擬機器的母體主機位址/system 虛擬機器名稱
成功登入之後,將會出現遠端的虛擬機器畫面。
進行正常的作業系統安裝動作,完成後關機。
再次進入 virsh 開機,然後從其他機器 SSH 連線測試。
如果出現問題,請使用 virt-viewer 檢查虛擬機器狀況。
***
四、使用已存在的虛擬硬碟檔安裝新的虛擬機器
執行:
virt-install \
--connect=qemu:///system \
--name=新的虛擬機器名稱 \
--ram=新的虛擬機器記憶體大小 [MB] \
--os-type=作業系統類型 \
--os-variant=作業系統名稱 \
--accelerate \
--file=已存在的虛擬硬碟路徑 [ex: *.qcow2] \
--bridge=br0 [注意:如果您沒有使用橋接網路,請設定成 --network=default] \
--vnc \
--noautoconsole \
--debug \
--import
***
五、複製虛擬機器
執行:
virt-clone \
--connect=qemu:///system \
-o 舊的虛擬機器名稱 \
-n 新的虛擬機器名稱 \
-f 新的虛擬硬碟路徑 [ex: *.qcow2]
***
六、虛擬機器的管理
執行:
virsh
# 查看所有可以用指令
virsh # help
# 取出虛擬機器描述檔
virsh # dumpxml 虛擬機器名稱 /tmp/虛擬機器描述檔 [ex: *.xml]
# 使用虛擬機器描述檔建立虛擬機器
virsh # define /etc/libvirt/qemu/虛擬機器描述檔 [ex: *.xml]
# 移除虛擬機器
virsh # undefine 虛擬機器名稱
# 列出所有虛擬機器
virsh # list --all
# 啟動虛擬機器
virsh # start 虛擬機器名稱
# 關閉虛擬機器
virsh # shutdown 虛擬機器名稱
# 拔除虛擬機器電源
virsh # destory 虛擬機器名稱
***
附錄:
Full Virtualization specific options
Parameters specific only to fully virtualized guest installs.
--sound
Attach a virtual audio device to the guest.
--noapic
Override the OS type / variant to disables the APIC setting for fully virtualized guest.
--noacpi
Override the OS type / variant to disables the ACPI setting for fully virtualized guest.
Virtualization Type options
Options to override the default virtualization type choices.
-v, --hvm
Request the use of full virtualization, if both para & full virtualization are available on the host. This parameter may not be available if connecting to a Xen hypervisor on a machine without hardware virtualization support. This parameter is implied if connecting to a QEMU based hypervisor.
-p, --paravirt
This guest should be a paravirtualized guest. If the host supports both para & full virtualization, and neither this parameter nor the "--hvm" are specified, this will be assumed.
--accelerate
When installing a QEMU guest, make use of the KVM or KQEMU kernel acceleration capabilities if available. Use of this option is recommended unless a guest OS is known to be incompatible with the accelerators. The KVM accelerator is preferred over KQEMU if both are available.
***
Reference :
01. https://help.ubuntu.com/community/KVM
02. http://thundersha.blogspot.com/2008/07/ubuntu-kvmgui-sector2.html
03. http://www.boobooke.com/v/bbk1819/
04. http://southbrain.com/south/2009/08/youtube-examples-of-xvm-virtin.html
使用 tar 指令
使用範例:將整個 /etc 目錄下的檔案全部打包到 /tmp 底下
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮
在參數 f 之後的檔案檔名是自己取的,習慣上都用 .tar 來作為辨識。
如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file。
如果加 j 參數,則以 .tar.bz2 來作為附檔名。
上述指令在執行的時候,會顯示一個警告訊息:
『tar: Removing leading `/' from member names』
這是關於絕對路徑的特殊設定。
解壓縮:
[root@linux ~]# tar zxvf /tmp/etc.tar.gz <==解開 gzip
[root@linux ~]# tar jxvf /tmp/etc.tar.bz2 <==解開 bzip2
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==僅打包,不壓縮!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包後,以 gzip 壓縮
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包後,以 bzip2 壓縮
在參數 f 之後的檔案檔名是自己取的,習慣上都用 .tar 來作為辨識。
如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file。
如果加 j 參數,則以 .tar.bz2 來作為附檔名。
上述指令在執行的時候,會顯示一個警告訊息:
『tar: Removing leading `/' from member names』
這是關於絕對路徑的特殊設定。
解壓縮:
[root@linux ~]# tar zxvf /tmp/etc.tar.gz <==解開 gzip
[root@linux ~]# tar jxvf /tmp/etc.tar.bz2 <==解開 bzip2
tag:
linux
星際譯王
星際譯王是一套相當好用的翻譯軟體。
Ubuntu 底下安裝星際譯王(StarDict)非常簡單。
可以在終端機中執行以下指令:
選擇自己喜歡的字典檔下載即可。
下載後,可以使用以下指令解壓縮:
再來到 http://stardict.sourceforge.net/download.php 下載發音檔。
下載後,使用以下指令解壓縮:
開啟星際譯王,點一下右下角的小扳手進行設定。
點選 字典(Dictionary) 底下的 聲音(Sound)選項 ,將聲音播放的命令從 play 改成 aplay。
現在收尋的單字應該可以發音了
有興趣的人還可以試一下 QStarDict,是以 Qt 為基礎開發使用者介面的 StarDict。
Ubuntu 底下安裝星際譯王(StarDict)非常簡單。
可以在終端機中執行以下指令:
sudo apt-get install stardict安裝完成後,可以到 http://stardict.sourceforge.net/Dictionaries.php 下載字典檔。
選擇自己喜歡的字典檔下載即可。
下載後,可以使用以下指令解壓縮:
tar -jxvf 字典檔.tar.bz2把解壓縮後的字典檔資料夾搬到 /usr/share/stardict/dic/ 底下就可以使用了。
再來到 http://stardict.sourceforge.net/download.php 下載發音檔。
下載後,使用以下指令解壓縮:
tar -jxvf WyabdcRealPeopleTTS.tar.bz2把解壓縮後的 WyabdcRealPeopleTTS 資料夾搬到 /usr/share/ 底下。
開啟星際譯王,點一下右下角的小扳手進行設定。
點選 字典(Dictionary) 底下的 聲音(Sound)選項 ,將聲音播放的命令從 play 改成 aplay。
現在收尋的單字應該可以發音了
有興趣的人還可以試一下 QStarDict,是以 Qt 為基礎開發使用者介面的 StarDict。
使用 UUID 開機自動掛載硬碟
UUID(Universally Unique Identifier)
維基百科:
UUID 的目的,是讓分散式系統中的所有元素,都能有唯一的辨識資訊,
而不需要透過中央控制端來做辨識資訊的指定。
如此一來,每個人都可以建立不與其它人衝突的 UUID。
使用以下指令查詢所有掛載磁區的 UUID,
但必須小心確認哪一個磁區對應的是哪一個 UUID:
可以使用 blkid 查詢指定磁區的 UUID,例如查詢 sda1:
開機自動掛載的磁區通常紀錄在 /etc/fstab 檔案。
要設定開機掛載就需要修改 /etc/fstab 檔案。
直接看一下 /etc/fstab 的內容:
---
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=根目錄磁區的UUID / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=家目錄磁區的UUID /home ext4 defaults 0 2
# swap was on /dev/sda2 during installation
UUID=置換空間磁區的UUID none swap sw 0 0
# 光碟機的掛載設定
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
# 以上是一般 /etc/fstab 基本內容
# 以下可以新增自己的掛載磁區,以掛載 Windows 系的 NTFS 檔案系統為例
# 使用者自行設定的掛載
UUID=磁碟磁區的UUID 自行設置的掛載目錄路徑 ntfs defaults 0 0
---
將編輯完成的 /etc/fstab 存檔後重新開機。
如果順利開機成功,便是設置完成了。
一般建議先備份一個原始的 /etc/fstab 檔再進行編輯。
維基百科:
UUID 的目的,是讓分散式系統中的所有元素,都能有唯一的辨識資訊,
而不需要透過中央控制端來做辨識資訊的指定。
如此一來,每個人都可以建立不與其它人衝突的 UUID。
使用以下指令查詢所有掛載磁區的 UUID,
但必須小心確認哪一個磁區對應的是哪一個 UUID:
ls -l /dev/disk/by-uuid/
可以使用 blkid 查詢指定磁區的 UUID,例如查詢 sda1:
blkid /dev/sda1
開機自動掛載的磁區通常紀錄在 /etc/fstab 檔案。
要設定開機掛載就需要修改 /etc/fstab 檔案。
直接看一下 /etc/fstab 的內容:
---
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
#
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=根目錄磁區的UUID / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=家目錄磁區的UUID /home ext4 defaults 0 2
# swap was on /dev/sda2 during installation
UUID=置換空間磁區的UUID none swap sw 0 0
# 光碟機的掛載設定
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
# 以上是一般 /etc/fstab 基本內容
# 以下可以新增自己的掛載磁區,以掛載 Windows 系的 NTFS 檔案系統為例
# 使用者自行設定的掛載
UUID=磁碟磁區的UUID 自行設置的掛載目錄路徑 ntfs defaults 0 0
---
將編輯完成的 /etc/fstab 存檔後重新開機。
如果順利開機成功,便是設置完成了。
一般建議先備份一個原始的 /etc/fstab 檔再進行編輯。
SSH 免密碼登入
Linux/Ubuntu 底下,假設您要從 PC-A 的 user1 免密碼驗證 SSH 登入到 PC-B 的 user2。
如果兩台機器的使用者您都很信得過,覺得大家互相登入來登入去,ok 的!
那底下是直接的指令,只有 3 行,照著執行完就可以了:
user1@PC-A:~$ ssh-keygen -t rsa
user1@PC-A:~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
user1@PC-A:~$ scp -r ~/.ssh user2@PC-B:~/
*輸入第一行指令後一直壓 enter,都使用預設或空白的設定即可。
*注意:操作完成,PC-A 的 user1 和 PC-B 的 user2 是可以「互相」免密碼登入的唷!
如果遇到 ssh host key check 的問題,可以在登入的 ssh 指令後加上:
-o StrictHostKeyChecking=no
強制忽略欲登入主機的 host key 檢查,例如:
user1@PC-A:~$ ssh -o StrictHostKeyChecking=no user2@PC-B
---
基本的原理就是使用一對「公鑰/私鑰」。
欲登入方持有私鑰,被登入方持有公鑰。
以自動驗證公鑰、私鑰是否成對來進行登入確認。
公鑰、私鑰是成對的,只要產生一組並且把它們保存好,就可以一直用。
公鑰、私鑰驗證的細節是很神奇的數學,這就不談了,因為我也不懂。
我只簡單地、直接地說一下免密碼登入怎麼設定,更多內容可以參考 reference。
user1 先在 PC-A 下先產生一對公鑰、私鑰,使用:
ssh-keygen -t rsa
它會請您設定鑰匙存放的路徑、以及一個使用時的 passphrase。
*請務必使用預設即可!
*一直壓 enter 鍵就好了!
完成後,user1 的家目錄底下會有 .ssh 這個資料夾,使用:
cd ~/.ssh/
ls -l ~/.ssh/
裡面至少會有這兩個檔案:
id_rsa
id_rsa.pub
id_rsa 就是這次產生的私鑰,id_rsa.pub 則是這次產生的公鑰。
接下來,如果您很懶,直接使用:
cp id_rsa.pub authorized_keys
將公鑰複製成檔名為 authorized_keys 的檔案。
然後使用:
scp -r ~/.ssh user2@PC-B:~/
將 user1 在 PC-A 上的整個 .ssh 資料夾複製到 PC-B 的 user2 家目錄下。
*注意:如此一來,不僅 user1 可以從 PC-A 直接免密碼登入 PC-B 的 user2。
*注意:如此一來,就連 PC-B 的 user2 也可以直接免密碼登入 PC-A 的 user1!
如果您不希望 PC-B 的 user2 免密碼登入 PC-A 的 user1,上面步驟做完後,
登入 PC-B 的 user2,使用:
cd ~/.ssh/
再使用:
rm id_rsa id_rsa.pub
在 user2 的 .ssh 資料夾裡僅留下 authorized_keys 檔案即可。
Reference:
01. http://josephjiang.com/article/understand-ssh-key/
02. http://help.github.com/linux-key-setup/
03. http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
如果兩台機器的使用者您都很信得過,覺得大家互相登入來登入去,ok 的!
那底下是直接的指令,只有 3 行,照著執行完就可以了:
user1@PC-A:~$ ssh-keygen -t rsa
user1@PC-A:~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
user1@PC-A:~$ scp -r ~/.ssh user2@PC-B:~/
*輸入第一行指令後一直壓 enter,都使用預設或空白的設定即可。
*注意:操作完成,PC-A 的 user1 和 PC-B 的 user2 是可以「互相」免密碼登入的唷!
如果遇到 ssh host key check 的問題,可以在登入的 ssh 指令後加上:
-o StrictHostKeyChecking=no
強制忽略欲登入主機的 host key 檢查,例如:
user1@PC-A:~$ ssh -o StrictHostKeyChecking=no user2@PC-B
---
基本的原理就是使用一對「公鑰/私鑰」。
欲登入方持有私鑰,被登入方持有公鑰。
以自動驗證公鑰、私鑰是否成對來進行登入確認。
公鑰、私鑰是成對的,只要產生一組並且把它們保存好,就可以一直用。
公鑰、私鑰驗證的細節是很神奇的數學,這就不談了,因為我也不懂。
我只簡單地、直接地說一下免密碼登入怎麼設定,更多內容可以參考 reference。
user1 先在 PC-A 下先產生一對公鑰、私鑰,使用:
ssh-keygen -t rsa
它會請您設定鑰匙存放的路徑、以及一個使用時的 passphrase。
*請務必使用預設即可!
*一直壓 enter 鍵就好了!
完成後,user1 的家目錄底下會有 .ssh 這個資料夾,使用:
cd ~/.ssh/
ls -l ~/.ssh/
裡面至少會有這兩個檔案:
id_rsa
id_rsa.pub
id_rsa 就是這次產生的私鑰,id_rsa.pub 則是這次產生的公鑰。
接下來,如果您很懶,直接使用:
cp id_rsa.pub authorized_keys
將公鑰複製成檔名為 authorized_keys 的檔案。
然後使用:
scp -r ~/.ssh user2@PC-B:~/
將 user1 在 PC-A 上的整個 .ssh 資料夾複製到 PC-B 的 user2 家目錄下。
*注意:如此一來,不僅 user1 可以從 PC-A 直接免密碼登入 PC-B 的 user2。
*注意:如此一來,就連 PC-B 的 user2 也可以直接免密碼登入 PC-A 的 user1!
如果您不希望 PC-B 的 user2 免密碼登入 PC-A 的 user1,上面步驟做完後,
登入 PC-B 的 user2,使用:
cd ~/.ssh/
再使用:
rm id_rsa id_rsa.pub
在 user2 的 .ssh 資料夾裡僅留下 authorized_keys 檔案即可。
Reference:
01. http://josephjiang.com/article/understand-ssh-key/
02. http://help.github.com/linux-key-setup/
03. http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
Gnome 鑰匙圈
忘記 Gnome Keyring 的密碼。
Empathy 預設好像會請求設定一個 keyring,來防止別人隨便登入你的 IM。
有時候挺麻煩的,因為 desktop 都自己在用,有時候覺得其實不需要。
然後有一天可能突然就忘了那個密碼到底設定啥來著。
執行:
cd ~/.gnome2/keyrings/
可以看到相關的檔案,不過密碼內容是編碼過的。
執行:
rm ~/.gnome2/keyrings/*
就可以讓預設 keyring 密碼為空了。
Reference:
http://live.gnome.org/GnomeKeyring
Empathy 預設好像會請求設定一個 keyring,來防止別人隨便登入你的 IM。
有時候挺麻煩的,因為 desktop 都自己在用,有時候覺得其實不需要。
然後有一天可能突然就忘了那個密碼到底設定啥來著。
執行:
cd ~/.gnome2/keyrings/
可以看到相關的檔案,不過密碼內容是編碼過的。
執行:
rm ~/.gnome2/keyrings/*
就可以讓預設 keyring 密碼為空了。
Reference:
http://live.gnome.org/GnomeKeyring
Launchapd PPA & GPG
PPA(Personal Package Archive)
在說 PPA 之前,先來談一下 Launchpad(https://launchpad.net/)。
維基百科告訴我們:
Launchpad 是 Ubuntu 母公司 Canonical 所架設的網站,
是一個提供維護、支援或連絡「Ubuntu 開發者」的平台。
Launchpad 是一個軟體合作平台,註冊帳號之後,你可以在上面開啟或參與軟體專案。
Inkscape、MySQL 等都有使用 Launchpad 做 code hosting。
Ubuntu 預設的標準套件庫也是連到 Launchpad。
Launchpad 幾乎是所有 Ubuntu package 的維護中心。
Every individual and team in Launchpad can have one or more PPAs, each with its own URL.
前面說過,只要有註冊 Launchpad 的帳號,
個人或組織可以在上面展開一個或多個軟體專案。
一個 Launchpad 帳號即有一個 PPA(Personal Package Archive)。
我暫時翻為:個人套件庫
例如:Chrome for ubuntu(https://launchpad.net/~chromium-daily/)
其中小波浪(~)後面跟著的 chromium-daily 就是 Launchpad 帳號了。
Using a Personal Package Archive (PPA), you can distribute software and updates directly to Ubuntu users. Create your source package, upload it and Launchpad will build binaries and then host them in your own apt repository.
你在 PPA 底下開發的軟體,是可以直接發佈或更新給 Ubuntu 的使用者的。
只要該使用者取得你 PPA 的位址,並且將該 PPA 位址加入他的來源清單。
他之後就可以使用 apt-get 指令從你的 PPA 安裝或更新軟體。
Ubuntu 9.10 版之後,新增一個 PPA 來源很簡單。
只要連到欲加入 PPA 的 Launchpad 網頁(PPA's overview page),
找到類似底下型式的 PPA 位址:
---
而舊版 Ubuntu 的 PPA 來源新增,一樣需要到該 PPA 的 Launchpad 網頁,
找到類似底下型式的位址:
/etc/apt/sources.list
將 sources.list 存檔,關閉。
回到該 PPA 的 Launchpad 網頁(PPA's overview page),
找到類似底下字串的簽名金鑰(Signing key),例如它可能是:
1024R/4E5E17B5
*注意:這只是例子,你要新增的 PPA 的金鑰跟上面那行字串可能是不同的。
複製後面的 4E5E17B5,到終端機底下執行:
---
如果是使用桌面版的 Ubuntu,套件來源以及 PPA 的管理可以到:
System -> Administration -> Software Source
*注:我是裝英文版 Ubuntu,我想中文應該是翻成:系統 -> 管理 -> 軟體來源
---
GPG(GNU Privacy Guard)
GPG(或稱 GnuPG)是使用公開金鑰(Public Key)的加密系統。
其中 OpenPGP、PGP、GPG/GnuPG 是三個不一樣的東西。
OpenPGP 是一套加密技術的標準規範,並不是一套程式。
PGP 是 Pretty Good Privacy 的縮寫,是根據 OpenPGP 規範實作的一套程式。
GPG/GnuPG 是 GNU Privacy Guard 的縮寫,是根據 OpenPGP 規範實作的一套程式。
Ubuntu 預設安裝的是 GPG/GnuPG,可以執行以下指令查看說明:
gpg --help
你可以 GPG 來產生自己的金鑰,可以加密電子郵件、製作電子簽名等等。
Launchpad 也是使用 GPG 作加密驗證。
GPG 的公鑰與私鑰是成對的。
---
透過 Proxy 來取得 gpg key:gpg --keyserver-options http-proxy --keyserver keyserver.ubuntu.com --recv-key E5267A6C
keyserver 出狀況時,只好手動來了
wiki.debian.org/SecureApt
1] get the public key file
2] apt-key add the_public_key_file
---
Reference:
http://wiki.ubuntu-tw.org/index.php?title=Launchpad
https://help.launchpad.net/Packaging/PPA
https://help.ubuntu.com/community/GnuPrivacyGuardHowto
http://wiki.debian.org.hk/w/Add_software_repositories_in_Ubuntu
Further Reading:
http://zh-tw.whygitisbetterthanx.com/
在說 PPA 之前,先來談一下 Launchpad(https://launchpad.net/)。
維基百科告訴我們:
Launchpad 是 Ubuntu 母公司 Canonical 所架設的網站,
是一個提供維護、支援或連絡「Ubuntu 開發者」的平台。
Launchpad 是一個軟體合作平台,註冊帳號之後,你可以在上面開啟或參與軟體專案。
Inkscape、MySQL 等都有使用 Launchpad 做 code hosting。
Ubuntu 預設的標準套件庫也是連到 Launchpad。
Launchpad 幾乎是所有 Ubuntu package 的維護中心。
Every individual and team in Launchpad can have one or more PPAs, each with its own URL.
前面說過,只要有註冊 Launchpad 的帳號,
個人或組織可以在上面展開一個或多個軟體專案。
一個 Launchpad 帳號即有一個 PPA(Personal Package Archive)。
我暫時翻為:個人套件庫
例如:Chrome for ubuntu(https://launchpad.net/~chromium-daily/)
其中小波浪(~)後面跟著的 chromium-daily 就是 Launchpad 帳號了。
Using a Personal Package Archive (PPA), you can distribute software and updates directly to Ubuntu users. Create your source package, upload it and Launchpad will build binaries and then host them in your own apt repository.
你在 PPA 底下開發的軟體,是可以直接發佈或更新給 Ubuntu 的使用者的。
只要該使用者取得你 PPA 的位址,並且將該 PPA 位址加入他的來源清單。
他之後就可以使用 apt-get 指令從你的 PPA 安裝或更新軟體。
Ubuntu 9.10 版之後,新增一個 PPA 來源很簡單。
只要連到欲加入 PPA 的 Launchpad 網頁(PPA's overview page),
找到類似底下型式的 PPA 位址:
ppa:某個 Launchpad 帳號/名稱 (例如:ppa:chromium-daily/stable)在終端機底下執行:
sudo add-apt-repository ppa:某個 Launchpad 帳號/名稱 (例如:sudo add-apt-repository ppa:chromium-daily/stable)最後,再執行一下:
sudo apt-get update
---
而舊版 Ubuntu 的 PPA 來源新增,一樣需要到該 PPA 的 Launchpad 網頁,
找到類似底下型式的位址:
deb http://ppa.launchpad.net/某個 Launchpad 帳號/名稱/ubuntu 你的 Ubuntu 版本代號 main deb-src http://ppa.launchpad.net/某個 Launchpad 帳號/名稱/ubuntu 你的 Ubuntu 版本代號 main (例如:deb http://ppa.launchpad.net/chromium-daily/stable/ubuntu lucid main) (例如:deb-src http://ppa.launchpad.net/chromium-daily/stable/ubuntu lucid main )複製這兩行來源位址,新增到以下的檔案的最末行:
/etc/apt/sources.list
將 sources.list 存檔,關閉。
回到該 PPA 的 Launchpad 網頁(PPA's overview page),
找到類似底下字串的簽名金鑰(Signing key),例如它可能是:
1024R/4E5E17B5
*注意:這只是例子,你要新增的 PPA 的金鑰跟上面那行字串可能是不同的。
複製後面的 4E5E17B5,到終端機底下執行:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4E5E17B5 *注意:記得把 4E5E17B5 換成你真正要新增的 PPA 的金鑰。最後,再執行一下:
sudo apt-get update
---
如果是使用桌面版的 Ubuntu,套件來源以及 PPA 的管理可以到:
System -> Administration -> Software Source
*注:我是裝英文版 Ubuntu,我想中文應該是翻成:系統 -> 管理 -> 軟體來源
---
GPG(GNU Privacy Guard)
GPG(或稱 GnuPG)是使用公開金鑰(Public Key)的加密系統。
其中 OpenPGP、PGP、GPG/GnuPG 是三個不一樣的東西。
OpenPGP 是一套加密技術的標準規範,並不是一套程式。
PGP 是 Pretty Good Privacy 的縮寫,是根據 OpenPGP 規範實作的一套程式。
GPG/GnuPG 是 GNU Privacy Guard 的縮寫,是根據 OpenPGP 規範實作的一套程式。
Ubuntu 預設安裝的是 GPG/GnuPG,可以執行以下指令查看說明:
gpg --help
你可以 GPG 來產生自己的金鑰,可以加密電子郵件、製作電子簽名等等。
Launchpad 也是使用 GPG 作加密驗證。
GPG 的公鑰與私鑰是成對的。
---
透過 Proxy 來取得 gpg key:gpg --keyserver-options http-proxy --keyserver keyserver.ubuntu.com --recv-key E5267A6C
keyserver 出狀況時,只好手動來了
wiki.debian.org/SecureApt
1] get the public key file
2] apt-key add the_public_key_file
---
Reference:
http://wiki.ubuntu-tw.org/index.php?title=Launchpad
https://help.launchpad.net/Packaging/PPA
https://help.ubuntu.com/community/GnuPrivacyGuardHowto
http://wiki.debian.org.hk/w/Add_software_repositories_in_Ubuntu
Further Reading:
http://zh-tw.whygitisbetterthanx.com/
Ubuntu 套件庫
類似 Ubuntu 的作業系統中(其實就是 Debian 系的 GNU/Linux 作業系統),
軟體程式通常是使用 .deb 套件的方式來封裝,
相對於 Red Hat 系的 GNU/Linux 作業系統就是使用 .rpm 套件。
一個 .deb 套件通常包括了一個程式與其所需要的函式庫,可以透過網路或 CD 得到它們。
而 Repositories(套件庫)則是專門儲存各式套件的伺服器,
可以透過類似 Synaptic 的軟體來存取套件庫。
或桌面左上角 Application(應用程式) -> Ubuntu Software Center(Ubuntu 軟體中心)。
Ubuntu 套件庫以四大類區分(*可參考 reference 03):
Main - Ubuntu 官方支援的套件
Restricted - Ubuntu 官方支援,但並非完全開源的套件
Universe - 非 Ubuntu 官方支援,但是由自由社群維護著的套件
Multiverse - 非開源套件
Ubuntu 套件庫清單儲存在:
編輯前建議先使用以下指令備份:
/etc/apt/source.list 的內容是許多類似下列的東西:
# 開頭的是註解。
deb 開頭,表示其包括了預先編譯或已編譯完成的套件執行檔,適合使用者。
deb-src 開頭,表示其包括了套件的未編譯原始碼,適合開發者。
在套件庫位址後空一格緊跟著的是 Ubuntu 的版本代號,例如:lucid、hardy。
在版本代號後空一格緊跟著的是套件庫的四大分類名稱,可以填很多個,使用空格分開。
要刪除某些套件庫位址,可以在其位址最前加上 # 號,或將其整列刪除。
要新增某些套件庫位址,可以新增在 /etc/apt/source.list 檔案最末列之後。
例如將以下內容加入 /etc/apt/source.list 將其存檔關閉:
以上例子是加入 PPA 套件庫,所以還必須讓系統記錄該 PPA 套件庫的公開金鑰,
從該 PPA 套件庫的 Launchpad 網頁取得金鑰後,假設是:
則執行:
然後執行:
若順利執行完成則代表套件庫新增成功。
Ubuntu 9.10 之後,可以使用 add-apt-repository 工具,新增 PPA 套件庫更為簡單。
若無此工具,可以執行以下指令安裝:
使用 add-apt-repository 新增套件庫時,可以執行以下指令:
其中 [repository-name] 從 Launchpad 頁面取得,通常是一個 Launchpad 帳號。
有時候會加一個 /,後面指定該 Launchpad 帳號下的某個套件庫分支(branch),
例如:
ppa:chromium-daily/stable
任何時候修改完 /etc/apt/source.list,請務必執行 sudo apt-get update 檢查。
Reference:
01. https://help.ubuntu.com/community/Repositories
02. https://help.ubuntu.com/community/Repositories/Ubuntu
03. http://www.ubuntu.com/project/about-ubuntu/components
04. https://help.ubuntu.com/community/Repositories/CommandLine
軟體程式通常是使用 .deb 套件的方式來封裝,
相對於 Red Hat 系的 GNU/Linux 作業系統就是使用 .rpm 套件。
一個 .deb 套件通常包括了一個程式與其所需要的函式庫,可以透過網路或 CD 得到它們。
而 Repositories(套件庫)則是專門儲存各式套件的伺服器,
可以透過類似 Synaptic 的軟體來存取套件庫。
或桌面左上角 Application(應用程式) -> Ubuntu Software Center(Ubuntu 軟體中心)。
Ubuntu 套件庫以四大類區分(*可參考 reference 03):
Main - Ubuntu 官方支援的套件
Restricted - Ubuntu 官方支援,但並非完全開源的套件
Universe - 非 Ubuntu 官方支援,但是由自由社群維護著的套件
Multiverse - 非開源套件
Ubuntu 套件庫清單儲存在:
/etc/apt/source.list
編輯前建議先使用以下指令備份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
/etc/apt/source.list 的內容是許多類似下列的東西:
# deb cdrom:[Ubuntu 10.04 LTS _Lucid Lynx_ - Release i386 (20100429)]/ lucid main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to newer versions of the distribution. deb http://tw.archive.ubuntu.com/ubuntu/ lucid main restricted deb-src http://tw.archive.ubuntu.com/ubuntu/ lucid main restricted
# 開頭的是註解。
deb 開頭,表示其包括了預先編譯或已編譯完成的套件執行檔,適合使用者。
deb-src 開頭,表示其包括了套件的未編譯原始碼,適合開發者。
在套件庫位址後空一格緊跟著的是 Ubuntu 的版本代號,例如:lucid、hardy。
在版本代號後空一格緊跟著的是套件庫的四大分類名稱,可以填很多個,使用空格分開。
要刪除某些套件庫位址,可以在其位址最前加上 # 號,或將其整列刪除。
要新增某些套件庫位址,可以新增在 /etc/apt/source.list 檔案最末列之後。
例如將以下內容加入 /etc/apt/source.list 將其存檔關閉:
deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu lucid main deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu lucid main
以上例子是加入 PPA 套件庫,所以還必須讓系統記錄該 PPA 套件庫的公開金鑰,
從該 PPA 套件庫的 Launchpad 網頁取得金鑰後,假設是:
4E5E17B5
則執行:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4E5E17B5
然後執行:
sudo apt-get update && sudo apt-get upgrade
若順利執行完成則代表套件庫新增成功。
Ubuntu 9.10 之後,可以使用 add-apt-repository 工具,新增 PPA 套件庫更為簡單。
若無此工具,可以執行以下指令安裝:
sudo apt-get install python-software-properties
使用 add-apt-repository 新增套件庫時,可以執行以下指令:
sudo add-apt-repository ppa:[repository-name]
其中 [repository-name] 從 Launchpad 頁面取得,通常是一個 Launchpad 帳號。
有時候會加一個 /,後面指定該 Launchpad 帳號下的某個套件庫分支(branch),
例如:
ppa:chromium-daily/stable
任何時候修改完 /etc/apt/source.list,請務必執行 sudo apt-get update 檢查。
Reference:
01. https://help.ubuntu.com/community/Repositories
02. https://help.ubuntu.com/community/Repositories/Ubuntu
03. http://www.ubuntu.com/project/about-ubuntu/components
04. https://help.ubuntu.com/community/Repositories/CommandLine
訂閱:
文章 (Atom)