簡報 GNU Make, Autotools, CMake 簡介
Posted on September 12, 2014
| 1 minutes
| 9 words
| appleboy
在 SlideShare 看到一份專門介紹 Makefile 的簡報,寫得非常詳細,在這裡紀錄並分享給大家,有在寫 C/C++ 的朋友們必看阿。搞系統(Linux / FreeBSD)管理的工程師,也是必學工具之一。
在 Ubuntu 建置 OpenWrt 編譯環境
Posted on July 1, 2014
| 1 minutes
| 93 words
| appleboy
紀錄一下如何在用 VirtualBox 架設 Ubuntu OpenWrt 編譯環境,請記住不要下載 Ubuntu Server Disk 來安裝,會遇到很多奇怪的問題,為了避免編譯出錯,請選擇 Ubuntu 12.04 Desktop 版本,安裝時空間請盡量調大,反正 VirtualBox 也不會吃掉這麼多空間,用多少吃多少。Ubuntu 安裝完成後,請先安裝 openssh server 套件。完成後透過 VirtualBox Network 開啟 22 port forwarding。
# 有 aptitude 指令 $ aptitude -y install openssh-server # 無 aptitude 指令 $ apt-get -y install openssh-server 由於是安裝桌面版本,所以一開始就會直接打開 lightdm 服務,請透過之前寫的文章 Ubuntu 停止使用 GUI 介面 12.04 LTS 來把桌面停用,這樣開機就直接進去 Text mode 了,避免浪費記憶體在桌面。最後補上相依性套件安裝
$ aptitude -y install build-essential bison flex gettext g++ help2man help2man zlib1g-dev libssl-dev gawk unzip 如果編譯過程有看到 script 檔編譯不過,可能就要換 Bash 環境編譯,請先備份 /bin/sh
[Read More]修復 Ubuntu 開機 boot loader
Posted on May 3, 2014
| 1 minutes
| 173 words
| appleboy
昨天下午本來想幫自己的筆電 (Ubuntu OS) 升級記憶體,結果因為機型過於老舊,以現在的記憶體時脈 1600 裝上去後,直接讓 Ubuntu 當機,反覆重新開機,無法向下相容,加上現在記憶體狂漲價,找不到更低階的記憶體安裝了,無奈的是,店員幫忙測試筆電,換個記憶體,結果連 Ubuntu 的 boot loader 都可以壞掉。我看店員很緊張的說,不好意思,可以幫忙備份,幫忙我重灌。結果我還是自己拿回家處理比較安心。自己也不知道為什麼換個記憶體,可以讓 boot loader 消失。底下是修復 boot loader 過程
[Read More]在 Ubuntu 底下查詢記憶時脈體資訊
Posted on May 2, 2014
| 1 minutes
| 86 words
| appleboy
最近想升級 Notebook 記憶體到 16G,要查看 Ubuntu 底下記憶體時脈資訊,可以透過 dmidecode 指令來取的記憶體硬體裝置資訊,此指令不只是這樣而已,還可以得知整台電腦硬體 components 資訊,底下擷取如何得到記憶體裝置資訊
$ dmidecode --type 17 | more 輸出結果為
# dmidecode 2.11 SMBIOS 2.4 present. Handle 0x0036, DMI type 17, 27 bytes Memory Device Array Handle: 0x0035 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 2048 MB Form Factor: SODIMM Set: None Locator: DIMM0 Bank Locator: BANK 0 Type: DDR3 Type Detail: Synchronous Speed: 1067 MHz Manufacturer: 80CE Serial Number: 621AD76C Asset Tag: Unknown Part Number: M471B5673FH0-CF8
[Read More]gulp-imagemin 在 Ubuntu 出現錯誤
Posted on April 29, 2014
| 1 minutes
| 68 words
| appleboy
在 deploy 程式碼到 production server 前,透過 gulp-imagemin 工具將全部圖片優化,上傳到 Amazon S3,Windows 底下正常運作,到了 Ubuntu 環境之下噴出底下錯誤訊息
Error: Lossy operations are not currently supported
後來在 grunt-contrib-imagemin@issues/180 有提人出此問題,解決方案就是升級 OptiPNG,因為 Ubuntu 的 apt 套件只有支援到 0.6.4 版本,請到 OptiPNG 官網下載最新 tar 檔,編譯重新安裝
[Read More]Sublime Text 2 在 Ubuntu 中文輸入問題
Posted on March 8, 2014
| 1 minutes
| 134 words
| appleboy
Sublime Text 是一個非常好用的文字編輯器,如果不喜歡 Vim Console 介面,我強烈推薦這套,因為可以透過 Package Control 安裝實用的 Plugin。安裝好 Sublime Text 軟體後,發現切換輸入法跟 Sublime 預設的快捷鍵衝突,所以將 gcin 切換的快捷鍵也換掉,但是似乎沒有作用,網路上找到此篇解法 Sublime Text 2 如何在 Ubuntu+iBus 下输入中文?,解法就是安裝 InputHelper Plugin 當然這方法是治標不治本,但是至少解決無法輸入中文的問題,底下是安裝方式
[Read More]Jenkins + Apache User Auth
Posted on December 8, 2013
| 1 minutes
| 141 words
| appleboy
Jenkins + Nginx User Auth
Posted on November 13, 2013
| 1 minutes
| 188 words
| appleboy
Jenkins CI 是一套非常好的 Job 執行 Tool,可以幫忙跑專案測試,測試完成後繼續 Deploy 到相對應的伺服器,也可以自動寄信給開發者或者是指定的內部人員。在 Ubuntu 或 Debian 安裝方式非常簡單,按照下述操作就可以簡易架設完成
$ aptitude -y install openjdk-7-jre openjdk-7-jdk
$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
$ sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ aptitude -y update
$ aptitude -y install jenkins
[Read More]Gitlab CE + Gitlab CI 打造版本控制及自動測試流程
Posted on November 1, 2013
| 1 minutes
| 65 words
| appleboy
Git 版本控制不管在嵌入式或 Web 領域都是很受歡迎的工具,尤其是不會遇到像 svn 搞爛 source tree,然後又要 Google 一堆解法。一般公司入門大概就是買 Github 服務,一個月才五美金,可以提供五個 Private Project,當然你也可以不付錢,而去使用 Bitbucket,好處就是無限的 Private Project,唯一的限制就是開發者數量,只能在五個以內,設定超過五個,就不給 push 或 pull 了,完成版本控制後,接著就是專案的自動測試,在 github 上面,推的就是 travis-ci,這也是全部 open source 專案的喜好,你會發現大部分的專案都會放上 .travis.yml,來告訴 travis 需要的測試步驟,測試步驟完成後,就要將 source code deploy 到 Amazone 或其他雲端服務,到這個服務基本上都要收費了,所以上一篇有介紹 Drone.io 服務,可以自動測試加上 Deploy 到遠端機器,不過缺點就是不支援 Private Project,要的話就是要收費。
[Read More]Postfix mailbox 設定
Posted on September 6, 2013
| 1 minutes
| 84 words
| appleboy
此篇不會講太多 Postfix 的設定,只是紀錄如何設定 Postfix mailbox。Postfix 提供兩種 E-mail 儲存格式,一種就是將全部的 mail 都寫到同一個檔案,此方式是 Postfix 裝好後預設的模式,另外的就是一封 E-mail 一個檔案,這兩者各有優缺點好壞,前者最大的問題就在於如果該檔案壞掉,那使用者的全部 Email 就消失了,所以個人比較偏好後面方式,最主要最近裝按要實做 E-mail Queue 功能,後者才能讓程式好判斷該目錄是否有異動。
Mailbox 如果都不修改任何設定預設裝好 Postfix,就可以看到 /var/spool/mail/ 目錄下有許多使用者檔案,一個使用者一個檔案,當然你也可以將使檔案設定在家目錄裡面。打開 /etc/postfix/main.cf 設定檔,並加入底下設定 home_mailbox = Mailbox 此設定會將原本放在 /var/spool/mail/ 目錄下的檔案都換成 /home/appleboy/Mailbox,注意在 bashrc 請加入 $ export MAIL=~/Mailbox Maildir 如果改成此設定,就會變成一個檔案代表一封 email,請在 /etc/postfix/main.cf 加入底下設定
home_mailbox = Maildir/ 接著取消 MAIL 變數 $ unset MAIL 最後寫入新的變數內容 $ export MAILDIR=~/Maildir 重新啟動 postfix $ /etc/init.d/postfix restart 寄封信測試看看目錄是否有建立: $ echo "This is the message body" | mail -s "
[Read More]