跳到主要內容

發表文章

目前顯示的是 2012的文章

使用 PPA 方式安裝 Sublime Text 2 編輯器

前一陣子實驗室的學弟介紹了一個編輯軟體「 Sublime Text 2 」,當時覺得好酷下載了 For Linux 版本卻一直沒有安裝,就淡忘了這件事...。今天清理桌面的時候,好奇這個資料夾在幹嘛,上網查詢才重拾當時的一些小記憶,決定把這個神奇的軟體裝起來。 Sublime Text 不僅跨平臺,其強大的功能才是讓所有人眼睛爲之一亮的,我們在網路上隨意搜尋就可以查到蠻多介紹的,在這裏就不多做介紹。有興趣的可以參考這篇「  Sublime Text 2 - 好用的前端程式編輯器  」網誌的內容介紹。 Sublime Text 的另一個優點是支援相當多的語言,如 C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile and XML 等等,幾乎常用常見的語言都有。 可惜的是 Sublime Text 並不是完全免費的軟體,目前是針對個人授權,授權費用是USD59,授權後不限制機器使用,可以安裝在多臺機器上。但是作者其實也很夠意思,即使沒有購買授權也不會有試用期限和功能上的限制,只是會出現「UNREGISTERED」字樣和很久才一次的提示購買訊息。 在 uBuntu 上有兩種安裝方式,一個方式由 Sublime Text 官方網站  上直接下載壓縮檔解壓縮使用,或是利用 PPA 的方式安裝。下載安裝的方式,可以參考阿舍的部落格文章「 Ubuntu 安裝 Sublime Text 2 」或是這篇「 How to install Sublime Text 2 on Ubuntu 12.04 」的內容。 Sublime Text PPA 的安裝方式據說因爲付費的關係,已由 uBuntu PPA中移除。我們可以使用下面的方式安裝: 將 PPA 加入系統 Source 中 # sudo add-apt-repository ppa:webupd8team/sublime-text-2 更新一下套件資訊 # sudo apt-get update 接着就可以按鑽個 sublime Text,安

將 uBuntu 12.04 中的 LibreOffice 3.5 升級至 3.6

uBuntu 12.10 已經推出,在這次的發佈中預載了 LibreOffice 3.6 版本,前一個 uBuntu 版本預載的爲 LibreOffice 3.5 版。在 LibreOffice 3.6 版本中做了許多的改進,包含對中文支援的可近性、DOCX檔案的支援性、寬螢幕支援...等等。 詳細可參考官方說明: LibreOffice 3.6 New Features and Fixes  或下面這篇部落格文章: LibreOffice 3.6 新功能 如果像我使用 uBuntu 12.04 LTS 版本,但又想使用 3.6 版的 LibreOffice,可以透過 PPA 的方式簡單的來安裝。參考網址: https://launchpad.net/~libreoffice/+archive/libreoffice-prereleases 開啓 Terminal(可用 Ctrl+Alt+T 快速鍵),輸入下面先移除舊版 # sudo apt-get purge libreoffice-core 加入 PPA 到系統 Source 中 # sudo add-apt-repository ppa:libreoffice /libreoffice- prereleases 加入完成後更新一下資訊 # sudo apt-get update 安裝 LibreOffice # sudo apt-get install libreoffice 安裝完成後再啓動 LibreOffice 就會是 3.6 的版本嘍! LibreOffice 3.6 PS. 如果在 Command Line 加入 PPA 過程中碰到 pycurl.error,可以更換使用 Software Center 的 Source 加入方式(可參考: How to Add a PPA to Ubuntu ),再將 PPA Key 加入我們的 Keyring 中。LibreOffice 的 key 是 1378B444,可用下面的方式加入 # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1378B444

uBuntu 12.04 Server Name Resolution(名稱解析DNS設定)

最近安裝 uBuntu 12.04 Server 版本進行一些運算,在 /etc/resolv.conf 設定好 nameserver 位置並新開機後卻無法進行名稱解析?開啟先前設定的 reslove.conf 檔案內容卻被清空了,只剩下兩行內容寫著: # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 原來現在 uBuntu 中 Name REsolution Server 的設定和 Fedora/Redhat 不同,已經和 IP networking 結合,使用 resolvconf framework 不是在 /etc/resolv.conf 中設定。原因是現在的電腦可能不會只在一個網路中使用,當拿到別的網路中使用時就需要重新更改設定,所以就將 Name resolution 設定更改至 interface 的設定裡。 設定方式:  編輯 /etc/network/interfaces,再往卡設定中加入 # sudo vim /etc/network/interfaces dns-nameservers 192.168.3.45 192.168.8.10 另外一個選擇性的,如果有需要做 domain name 的 fully quality 查詢,加入 dns-search example.com 完成後儲存並重新啟動網路 # sudo /etc/init.d/networking restart Reference: uBuntu document: Name Resolution https://help.ubuntu.com/12.04/serverguide/network-configuration.html#name-resolution

CEntOS 上 PHP 5.3 的時區設定問題

最近將原本 Fedora 12 的主機更換成 CEntOS 6.3 版,在這個版本中的 PHP 預設為 5.3.3 版。放上先前撰寫的程式,當有使用到 Date 函數時會出現下面的警告訊息: "PHP Notice: It is not safe to rely on the system's timezone settings, You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier" PHP 5.3 現在需要我們在 php.ini 中設定 timezone 的資訊,或是在使用 date() 函數前先做  date_default_timezone_set() 的設定。 因為是自己的主機,因此我趨向更改 php.ini 設定即可。打開 /etc/php.ini 設定,大約在 943 行的地方有 timezone 的設定項目內容如下: [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone ; date.timezone = 因為我主機的時區位置是 Taipei 時間,取消 date.timezone 前面的註解符號,並在等號後方加入 "Asia/Taipei"(PHP 的時區可以參考官方 List of Supported Timezones )修改後項目內容如下: [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.co

好用的工具 Tmux

介紹 Tmux 是一套最近接觸到於 tty 下的多程式視窗工具,類似很多老手在使用 Linux or BSD 就有使用 GUN Screen 這一個程式。使用 tmux 和 screen 最大好處在於遠端管理的時候,如果需要執行相當耗時的程式,可以讓我們在離開(或許這裡稱「斷開」比較合適)的時候還可以繼續的執行,下次回來的時候再「取回」之前的內容即可。 Tmux 和 Screen 不同的地方,主要在於: 視窗分割 在一個視窗中縱向或是橫向分割許多視窗 視窗切換 在 Session 中相互切換 多人共用視窗 可以被多個 ssh 連線共用一個  tmux session Screen 和 Tmux 的架構圖,可以參考下面兩張圖(圖片來源: 這樣做就對了 ) Screen 架構: Screen 一次只能有一個連線,切換視窗必須先 detach。 Tmux架構: Tmux 有 Session、Window、Pane 的概念,而且隨時可以作彈性切換,將 Pane 獨立成新的 Window。 安裝 目前在常見的 Linux distributions 中都可以利用套件庫安裝,如果沒有也可以下載 Tarball 來安裝: 自行下載 Tarball 安裝,下載位置 Tmux (目前最新為1.6版) uBuntu 安裝 # sudo apt-get install tmux CentOS 安裝 # yum install tmux $PS1顯示問題 安裝完 Tmux 在 tty 中輸入 tmux 可以啟動進入,如果有在 .bashrc 中設定 $PS1 的顯示方式,uBuntu 中(測試為 uBuntu 12.04)會發現失去設定的效果,而在 CEntOS 6.2 中顯示為正常。要如何修正讓在 Tmux 環境中仍然可以正常顯示? 開啟 .bashrc 檔案,找尋 「case "$TERM" in」部份,加入 screen 項目(如下紅字部份)再重新進入tmux 環境即套用設定。( 參考資訊 ) case "$TERM" in xterm*|rxvt*| screen* )     PS1="\[\e]0;${

uBuntu 12.04 x64 MP3 播放問題

在 uBuntu 12.04 發布後也有一週了,這幾天將原來的 11.10 移除安裝 LTS 的 Precise Pangolin (精確的穿山甲)。剛開始安裝還真的有些挫折,總共重新安裝了四次才成功,安裝經驗值馬上上升...,欣慰的是完成安裝後的設定變得更順手,或許事變的更簡單更懶人了吧! 使用 Gnome Shell 3 桌面環境相較於 11.10 感覺融合的更好了,Online Account 和 Empathy 和 Evolution 更緊密的結合了,設定後就不需要在分別設定就會結合 Gtalk 和 Gmail 內容。 目前碰到比較大的問題大概就是音樂播放,12.04 將預設的音樂播放器更改為 Rhythmbox ,在進行匯入歌曲時會出現 mp3 codec 沒有安裝的錯誤,雖然自動連結上網查詢相關套件,但卻一直無法安裝成功,後來查詢網路上似乎有些人也碰到和我相同的狀況,建議是安裝 ubuntu-restricted-extras 套件,ubuntu-restricted-extras 套件會將一些多媒體 code 安裝至系統中,詳細內容請參考 RestrictedFormats 網站內容。 安裝 ubuntu-restricted-extras 套件,請輸入下面指令: sudo apt-get install ubuntu-restricted-extras 完成安裝,再重新開啟 Rhythmbox 匯入就沒有錯誤訊息了!

漂亮的 uBuntu Icon - 「faenza-icon-theme」

在 Server 上已經習慣在 Terminal 環境中工作,在 Desktop 環境中還是希望是在一個有 GUI 的介面來操作,畢竟 Desktop 中需要聽音樂、看影片... 現在 Linux 的桌面環境越來越成熟了,不但安裝系統時可以很無痛,驅動、和所需的軟體也可以簡單的搞定。現在 uBuntu 更引進了 Software Center 的方式(雷同 Mac 的 App Store),安裝軟體也只要點一點就完成了。 無論是 uBuntu 的 Unity 桌面系統,還是 Fedora 預設的 Gnome Shell 3,都是很好用、容易上手的桌面環境,既然有了這麼好的桌面環境,龜毛的我當然更想要多一點變化,找些漂亮的圖示來變換一下,於是在  deviantArt  看到了  Faenza Icons  這個圖示集(如下圖) 在網路上查尋安裝方法,其實並不難。可以使用 PPA(Personal Package Archives)的方式來安裝,PPA 安裝方式如下: sudo add-apt-repository ppa:tiheum/equinox sudo apt-get update sudo apt-get install faenza-icon-theme 如果你和我一樣是使用 uBuntu 11.10 ,在安裝 add-apt-repository 時會出現 pycurl.error 問題,網路查詢問題後發現似乎是這個 11.10 版本的 Bug,看來目前尚未解決(據說都要出下一版了...)。沒關係,山不轉路轉~我們換個方式: 開啟 Software Source 管理程式 在 Other Software 頁籤下,點選 Add 按鈕。 在 APT line 中輸入 ppa:tiheum/equinox。 再到 Terminal 中執行安裝即可。 sudo apt-get install faenza-icon-theme 配合 Gnome Tweak Tool 更換 shell icon,就會有漂漂亮亮的圖示嘍!

Mac 環境中 Netbeans 中文輸入問題

換到 Mac 的環境後,感覺最大的差異大概就是似乎要花上一些購買軟體的費用,在 Mac 上也是有 Freeware,那大多不好用或是功能限制太多。還好當初主要的程式作業環境是使用跨平台的 Netbeans,功能強大、免費而且在每個平台的使用習慣相同,這是一個很重要的優點。 可是在 Mac 上似乎有一個小小的缺點,就是完全不理會中文輸入法...Coding 上沒有太大問題,但畢竟給使用者的訊息仍然是需要使用中文,總不能都在別的軟體上打一打再貼過來。上網請教了酷狗大神,終於獲得了解答。 我的環境是: Mac OS X (10.7.3) Netbeans 7.1 修改設定檔 netbeans.conf 檔案,檔案路徑如下: /Applications/NetBeans/NetBeans\ 7.1.app/Contents/Resources/NetBeans/etc/netbeans.conf 如果使用 Finder 請在 NetBeans 7.1.app 右鍵,顯示套件內容,在逐步找到 netbeans.conf 位置。 使用習慣的文字編輯器打開 netbeans.conf 檔,找到 netbeans_default_options 項目。 檢查是否已經有 java.awt.im.style 設定 如果沒有請在最後加上 -J-Djava.awt.im.style=on-the-spot ,如下: netbeans_default_options=" -J-Dcom.sun.mysql.startcommand=/usr/local/mysql/support-files/mysql-admin.server -J-Dcom.sun.mysql.stopcommand=/usr/local/mysql/support-files/mysql-admin.server -J-Dcom.sun.mysql.startargs=start -J-Dcom.sun.mysql.stopargs=stop -J-Dcom.sun.mysql.port=3306 -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple

在 Linux 中解決 umount 時 Divice is busy 的問題

現在 Linux 環境中掛載外接的設備越來越方便,支援度也越來越高,很多設備接上後直接自動 mount 上來,不需要在系統中慢慢找尋和掛載。接上設備很方便但往往在移除卸載時,有可能發生 Divice is busy 的狀況,可能有程式或是使用者正在使用,我們會擔心如果沒有正確移除設備,可能會造成資料的遺失資料的遺失或是資料可能會不完整。 要如何解決這樣的問題,讓我們可以卸載設備? 在安裝 Linux 時,就有支援 fuser 這個指令,這是用檔案或是檔案系統來找出使用者或程序的指令,詳細的使用參數可以在系統中 man 一下或是參考 鳥哥網站的說明 。 # fuser -m -v /mnt/mymount (mount point) -m: 顯示所有使用檔案或檔案系統的程序,後面可以接掛載點或設備。 -v: 列出詳細資訊 顯示的內容除了程序名稱,還會有 process id,有了 PID 就可以用其他指令來 kill 佔用的程序。 如果要查詢時一併馬上刪除佔用的程式,可以直接在加上 -k 這個參數。 # fuser -m -v -k /mnt/mymount (mount point) 如果擔心這樣刪除太狠了,可以再加上 -i 這個參數,在刪除前先跟下指令的使用者確認一下。 # fuser -m -v -k -i /mnt/mymount (mount point) (-i 需要和 -k 相互配合使用) 先處理佔用卸載資源的程序後,我們就可以安全的卸載和移除硬體了。

CEntOS RTNETLINK 錯誤修正

新的伺服器安裝了 CEntOS 6.2 系統,雖然 Redhat 6 開始多了許多的 GUI 工具,無法常常進入機房的情況下,還是習慣使用文字的方式來管理。 安裝的時候幾乎都使用了預設的套件選項,網路部分則會包含在這個版本新增的 NetworkManager 工具。完成安裝,第一次開機後在 GUI 環境下設定一切都相當順利的上線,而近來直接在 terminal 下直接修改 ifcfg-ethx(x為數字) 這個檔案後重新開機,網路部分會變成無法上線!即使刪除 ifcfg-ethx 再重新開啟 GUI 介面設定網路,仍然無法成功讓網路上線。 若將 network 重新啟動,則會出現如下的錯誤訊息: ... 略 ... RTNETLINK answers: File exists RTNETLINK answers: File exists RTNETLINK answers: File exists ... 略 ... 原來,這是 CEntOS 下兩個和網路相關的服務相互衝突造成的,一個是 /etc/init.d/network,另一個是 /etc/init.d/NetworkManager。網路上可以查到的解決方法為關閉 NetworkManager,可以用下面的指令來查詢開啟的網路管理服務。 # chkconfig --list | grep -i network 關閉開機啟動的方法為 # chkconfig NetworkManager off 要特別注意 network 服務有沒有預設啟動,沒有的話記得加上 # chkconfig network on 在關閉 NetworkManager 並重新啟動 network 時,仍然出現相同的錯誤訊息?!摸索一陣子後才發現,原來 ifcfg-ethx 裡的設定有一行也需要修改才行。 DEVICE="eth0" NM_CONTROLLED=" yes " -->" no "  <=== 是否由其他軟體管理,可能只的是 NetworkManager ONBOOT=" yes "  <=== 開機預設啟動 ... 略 ... 修改後再重新啟動 network 就可以上線正常運作了。

如何在 Blogger 上建立 code block 程式碼顯示區塊

近來瀏覽一些人的 Blogger 的技術教學時,常常發現在程式碼敘述的地方會出現一個區塊,把一段看起來像是混亂的程式碼包起來,增加了許多閱讀上的清晰度,區別文章的說明和程式碼內容,也很想加到自己的 Blogger 中,避免殘害瀏覽的朋友們 XXD 上網搜尋了一下,只要加入下面這一段 CSS 就可以實現: .post code {     display: block; /* fixes a strange ie margin bug */     font-family: Courier New;     font-size: 10pt;     margin:.75em 0;     overflow: auto;     background: #f0f0f0 url(http:// yourWebsite_Image_Storage /Code_BG.gif) left top repeat-y;     border: 1px solid #ccc;     padding: 10px 10px 10px 21px;     line-height: 1.2em;     white-space: pre; } 要怎麼放,放在哪裡呢?最近 Blogger 更換了新版的編輯介面,所以加入 CSS 的位置和網路上的順序有點不相同。 選擇左方功能表範本,點選右方的「修改 HTML」按鈕進入修改畫面。 繼續提示修改視窗後,在一拖拉庫程式碼中找到 Post 區段 插入前述的 CSS style 程式碼,yourWebsite_Image_Storage 修改為自己放置 Code_BG.gif 的位置。 完成後按「儲存範本」將修改儲存。 往後若有程式碼需要使用 Code block,編輯時切換至 HTML 模式,在程式碼的前後加上<code>程式碼</code>標籤。(注意:如果在 code 中有特殊符號,同樣要使用 HTML Encode 轉換)

CEntOS 6 安裝 PHP Mcrypt 問題

利用新年假期,有個連續的時間可以幫新購的 Server 完成相關的設定,依照往常的安裝了 phpmyadmin 作為 MySQL 的 Web 管理介面。不同於往常的是這次 phpmyadmin 的登入認證改用 cookie 而不是用 http 的方式。這樣就不需要將帳密記錄在 config.inc.php 中。 而且使用 cookie 方式會有一個比較美化的登入介面,但是會需要 Mcrypt 這個函式庫。 Mcrypt 是一個強大的加密演算法函式庫, php 官方文件 中有相關說明,然而在 php 原本套件中不包含這個函式庫,CEntOS 6 的套件庫中也未包含 php-mcrypt 模組,無法使用 yum 安裝該函式庫,所以需要透過 Extra Packages for Enterprise Linux (EPEL) 套件庫來解決這個問題。 首先先安裝系統相對應的 package,我的是 EL 6 所以安裝 epel-release-6-5.noarch.rpm # rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm 更新套件庫 # yum update 檢查套件庫的清單中是不是包含了 epel 套件庫 # yum repolist ... 略 ... epel                    Extra Packages for Enterprise Linux 6 - x86_64 使用 yum 安裝 php-mcrypt # yum install php-mcrypt 重新啟動 Apache 讀取安裝的套件 # service httpd restart 大功告成嘍!重新回到 phpmyadmin 的登入畫面就不會在出現警告訊息了。