廢話不多說,我們先來做個實驗,首先到ipkg的官方網站下 載最新的ipkg source tar ball,並編譯它,編譯的步驟很簡單,輸入configure,make,make install即可,編譯和安裝完後可得到一可執行的shell script名稱為ipkg-cl,如果執行ipkg-cl發現有缺library,那請把.lib資料夾下的 libipkg.so,libipkg.so.0,libipkg.so.0.0.0都一起複製到/usr/lib資料夾下
接下來我們要製造一個測試的ipk package,而這個package幹得事很簡單,就是在home資料夾上創造一個test.txt文件,詳細的製作過程我列如下
1. 創造一個新資料夾名稱為test,並在test下面創造兩個目錄分別為CONTROL和home
2. 在home資料夾下擺test.txt
3. 在CONTROL資料夾下創造一個control文件內容如下
- Package: test
- Priority: optional
- Section: Misc
- Version: 0.9.3.2
- Architecture: intel
- Maintainer: jemicheng@gmail.com
- Source:http://daydreamer.idv.tw
- Description: ipkg test package
control文件裡面比較重要的是architecture欄位,等一下我們會用到它
4. 下載ipkg-build.sh,我用這個shell script製造ipk package
5. 執行命令./ipkg-build.sh [source directory] [destination directory],範例為./ipkg-build.sh test package,執行完後你會發現有一個ipk package擺在package目錄下
package製做好後,我們來安裝看看吧,在安裝前必需設定ipkg的config檔,此檔案位置在/etc資料夾內,名稱為ipkg.conf,我的config檔內容如下,請注意arch這個欄位,一定要跟我們package內的control文件的Architecture一樣,而dest root就是指明軟體安裝的位置從那裡開始
- dest root /
- arch intel 10
- arch all 1
安裝的命令為ipkg-cl –f /etc/ipkg.conf install [your package name],安裝完後,可看到/home資料夾下多出了test.txt這個純文字檔,用ipkg-cl list_intalled,可以看到目前系統安裝的套件,用ipkg-cl remove [package name]可以移除安裝的軟體,下面的圖就是整個安裝和移除的過程
不過ipkg有趣的地方是在於設定安裝軟體前後的script,這方面的文章可參考wiki上的說明,舉個範例來說,在CONTROL資料夾下擺preinst和postinst這兩個script,其各自內容如下
[preinst]
- #!/bin/sh
- cp aaa xxx
- exit 0
上面的script意思為在安裝前請把aaa拷貝為xxx
[postinst]
- #!/bin/sh
- case "$1" in
- update)
- ;;
- install)
- cp bbb yyy
- ;;
- configure)
- ;;
- remove)
- ;;
- *)
- ;;
- esac
- exit
上面的script意思為在安裝時請把bbb拷貝為yyy
我上述所列的只是很簡單的描述,如果要看更詳細的資料,請至ipkg的官方網站查詢