2009年11月6日 星期五

Linux deb dpkg apt 使用講解


================================================
Linux deb dpkg apt 使用講解
by AYO 阿佑

================================================
前言:

AYO阿佑 這次來講說,Linux 世界中,有一種工具叫做 APT,
這個是 Linux 套件安裝、升級、更新 的方法之一,
源自於 德國 Linux Debian,
現在 Ubuntu、FreeBSD、SUSE 都是使用這個方式唷!!

先說清楚關於此部分,下載到的檔案是 *.deb 就是使用這個方式做安裝的!
而線上直接更新、安裝 則會用的的服務是 APT (Advance Packaging Tool)

先行說明一下幾個名詞解釋 :
RPM : 這是 Linux 安裝、升級、更新方法之一,
           泰半都是 Red Hat 公司出品的 Linux 居多,
           會這麼說是因為是因為 RPM 全名叫做,
           RedHat Package Managmer,
           所以 Red Hat 相關的 Linux,都 100% 支援此種方式,
           例如 : RedHat、RHEL、Fedora Core、CentOS
DPKG : 這又是另外一種 Linux 安裝、升級、更新方法之一,
             源出自 Debian Linux,而 Linux 中,N User 比較常聽過的 Ubuntu,
             也是支援這個方法喔!!
             當然還有 FreeBSD、SUSE 也是支援此方式做的喔!
YUM : 這是 Linux 線上更新的方式之一,
            也是 Red Hat 所發展的線上更新方式,
            可以做成自動更新,保證所有的套件都是最穩定的新版本,
            以防入侵問題產生!!
            所以 RedHat、Fedora Core、CentOS 都支援此方式更新
Up2date : 這是 Linux 線上更新的方式之一,
                也是 Red Hat 所發展的線上更新方式,可以做成自動更新,
                保證所有的套件都是最穩定的新版本,以防入侵問題產生,
                唯一不同的是,這只有 RHEL 獨有,
                因為 RHEL 叫做 RedHat Enterprise Linux,
                這個作業系統可以跟 RedHat 官方購買 ""技術諮詢"",
                技術諮詢就包含線上更新
apt-get : 源出自 Debian Linux,而 Linux 中,
              End User 比較常聽過的 Ubuntu,也是支援這個方法喔!!
              當然還有 FreeBSD、SUSE 也是支援此方式做的喔!
tarball : *.tgz、*.tar.gz、*.gz、*.tbz、*.bz2 都是 Linux 壓縮檔案,
            而這些壓縮檔,也可以下載之後,自己來安裝,只是程序上,
            會比上述幾樣更複雜,而且也必須更新的時候,純手工更新

本篇教學 AYO阿佑 僅討論 deb 的部份,

而有關 Linux RPM 的 使用方式 AYO阿佑 很久以前已經介紹過囉!
延伸參考如下 :

Linux RPM 使用講解
http://tw.myblog.yahoo.com/kain-0913/article?mid=1091&next=925&l=f&fid=11

================================================
Linux deb 怎麼使用、安裝呢?

這個就需要用到 dpkg 這個指令囉!
這邊 AYO阿佑 用 package.deb 做為範例 :

dpkg -i package.deb  安裝套件

dpkg -r package      刪除套件

dpkg -P package      刪除套件(包括相關的設定檔)

dpkg -L package      列出與該套件有關聯的文件

dpkg -l package      顯示該套件的版本

dpkg –unpack package.deb  解開 package.deb 套件的內容

dpkg -S keyword      搜索所屬的套件內容

dpkg -l              列出當前已安裝的套件

dpkg -c package.deb   列出 package.deb 套件的內容

dpkg –configure package  設定 package 套件

dpkg -h  可以查詢更多關於 dpkg 相關參數用法

這些就是基本上常用的,當然其參數很多,
所以有忘記,或者需要查詢的可以使用 dpkg -h 來做查詢,
當然 dpkg 這應該是 root (Administrator最高權限管理者) 權限適用指令

================================================
篇後語:
本篇文章,已經盡量減短,但是由於 deb 本身的參數也不少 !
AYO 阿佑 儘可能用最簡潔的方式,讓讀者們了解!
因為近來,越來越多人使用 Linux,
大概是因為 eeePC 的風行,好多人使用 Ubuntu,
但是連 FireFox 更新都不會!
真是 囧~~~~ 由於 Ubuntu 走的是 *.deb APT 架構,
因此 AYO阿佑 特別寫一篇 dpkg *.deb 的用法,
給讀者們參考囉!!

================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/



2009年11月5日 星期四

Embedded System_嵌入式系統淺談


================================================
Embedded System_嵌入式系統淺談
by AYO 阿佑

================================================
前言:

Embedded System 嵌入式系統,隨著手機進入 3G 新時代,
而逐漸的熱門,甚至很多人爭相進入這一行,


但是 Embedded System 其實很早就有了唷!! 並不是新名詞,
所以並非新奇的玩意!


Embedded System 嵌入式系統,其實只是個說法,並非真正的執行方式,
請務必要弄清楚喔! 不然.. 有可能被內行人笑話的!


好比說.. 我要賺很多很多錢,享受好的生活! 這是說法!
拼命努力的工作、兼差、投資 等等,則是 實際上的執行方式!


所以.. Embedded System 這是一種說法,並非實際執行方式!
那什麼是 Embedded System 實際執行方式呢?
以下咱們就來談一談!


================================================
Embedded System 嵌入式系統,到底是什麼?

嵌入式系統(Embedded System),

是一種「完全嵌入受控器件內部,為特定應用而設計的專用計算機系統」,

根據英國電器工程師協會( U.K. Institution of Electrical Engineer)的定義,

嵌入式系統為控制、監視或輔助設備、機器或用於工廠運作的裝置。

與個人計算機這樣的通用計算機系統不同,

嵌入式系統通常執行的是帶有特定要求的預先定義的任務

Embedded System 應用範圍為何呢?

應用範圍其實超級廣泛,3G手機、機上盒(MOD、STB)、
智慧型家電、Switch、Router、
或者是 Live CD (WinXPE WinCE Knoppix Ubuntu)、PDA、
車用導航設備 等等...數不勝數...


或者這麼說,並非標準的電腦主機設備,但是有螢幕、有輸入設備、
可以提供人類操作的設備,幾乎都是 Embedded System 囉!


由此可知,Embedded System 應用範圍超級廣,
也有很多讀者問 AYO阿佑 想投入這行,到底要準備些什麼呢??


這麼說好了.. 由於 Embedded System 範圍廣泛,
得問您自己 對哪一種 Embedded System 有興趣,
也許您的興趣在 3G手機,也許您的興趣在 Robot 機器人,
那開發的範疇,就會不太相同囉!


Embedded System 需要具備哪些知識、技能,才能入門呢?

這麼說.. Embedded System 絕對脫離不了自行開發,所以 100% 要寫程式,
而寫程式的話.. 開發環境要最單純,各類平台接受程度最高,又是可攜式的...
就是 C Language (C 語言) 囉!!


但是 AYO阿佑 建議,努力學習 C 語言即可,C++ 到不太有必要!

理由:
1. 您會 C 語言,到 C++環境,當然能夠開發,並且沒有不同
   (因為 C++ 開發環境,向上對應 C 語言)


2. 您會 C++,到 C 語言開發環境,並不是不能開發,會變的綁手綁腳,
   因為 C++ 有許多獨有的 Library,C 語言開發環境,並沒有預設含入,
   所以反而會不順


3. Embedded System 定義已經講清楚了! 非電腦主機環境,
   甚至有些只有很小的 EEPROM,電可擦拭可編程唯讀記憶體
   (Electrically-Erasable Programmable Read-Only Memory),
   所以不可能塞很多東西,因此不要的東西,
   或者不常用的套件(逼著找常用的套件不常用的套件),
   因為這樣所以變得要不斷的對程式瘦身、微化


Embedded System 會使用哪些作業系統呢?

基本上來說 Windows、Linux 都有人用,
但是 Windows 使用的話,需要付費,因此很多做 Embedded System 的廠商,
會選擇使用 Linux,因此 業界 Linux 比較多人用,當然入門門檻相對更高!


Windows 例如說..
Windows CE、Windows Mobil(手機、PDA 用的 Embedded System)


Linux 例如說..
Ubuntu(這已經是相當完整的成品)、
Linux Android (常用於手機的 Embedded System)


由此可知,兩大作業系統家族,都是有人用的,
甚至 iPhone 因為此產品是 Apple 公司的,
因此採用的是 自家的 Mac (麥金塔架構)


但是以泛用性來說.. 擇一投入的話,
應該是 Linux 比較好,相對的門檻會更高


Embedded System 想要研究? 開頭第一步怎麼做?

基本上正式入門第一步,會開始寫 驅動程式,沒錯! 就是驅動程式!

但是因為 寫驅動程式 門檻太高,甚至這啥東西? 驅動程式 搞不好還沒聽過!

所以 AYO阿佑 會建議 :

1. C 語言 練起... 這最簡單!
2. Linux、Windows 擇一,完全搞清楚開機架構,
   如何從電源啟動、開機過程、到開機整個完成
3. 再來寫驅動程式


由於 Embedded System 涵蓋範圍很廣,
一般都變成需要知道 電子領域、電腦領域、甚至電機領域,
單單這三個各自的領域就都很廣泛了,更別提要跨領域了解!


萬事起頭難!
會建議從大家比較常看、常接觸的,電腦、電子領域開始,會最 OK 囉!


================================================
篇後語:
呼~~~這篇寫好長!! 不過..這僅僅是皮毛淺談喔!!
Embedded System 可以講的東西太多!


AYO阿佑 充其量也只是 後學末進,
很多功力高深的前輩,搞不好看到這篇文章,
還會笑 AYO阿佑 說,菜鳥~~ 寫這些玩意~~ 是要來搶飯碗嗎!! 囧~~~~


AYO阿佑 懂得也不是非常多 (跟很多前輩相比,在下仍然是 菜鳥!)
只是希望短短一篇文章,
能夠讓 完全不懂 Embedded System 的讀者,能夠有個初步的了解!


了解了大概狀況之後! 再來衡量 您是否想入行! 或者想接觸!
因為蠻多讀者對 Embedded System 的了解,
以為這只是一個軟體,還是以為這是一個工具而已!


NO... Embedded System 是一個橫跨多個專業領域的一門學問,
可以說是一個 ""冰山"",別以為 水面上看起來是一個小冰塊,
撞上去! 可以連 號稱永不沉沒的 鐵達尼號都沉了


結論有 三:
1. Embedded System 跟山一樣高大,學習務必小心為之,別摔著了!
2. Embedded System 是一個說法,並非實際方式
3. Embedded System 是一個高深的學問,別小看它! 會被前輩們笑話的!


================================================
歡迎轉載,但請務必說明原出處

歡迎參觀 AYO 阿佑 個人的電腦技術園地
http://tw.myblog.yahoo.com/kain-0913/