通过openpctv简单学习opkg安装与生成包的一些过程

http://linuxtoy.org/archives/openpctv-adding-full-tv-functionality-to-htpc.html

OpenPCTV - 让你的HTPC拥有更全面的电视功能


通过linuxtoy了解到openPCTV是使用opkg打包的

获得源代码:git clone git://git.code.sf.net/p/openpctv/code openpctv-code


下载完后发现原来不是基于buildroot的,而是采用脚本和makefile方式结合实现的自动化编译,里面可以选择cubieboard板子来编译制作rootfs和iso等,粗略查看脚本,比较适合学习。

目前可参考学习opkg的有openembedded, buildroot外,就是openPCTV.


script/installdev 脚本

使用 --offline-root方式安装,指定rootfs的目标根目录

先建立 var/lib/opkg/info目录, 类似archlinux的pacman安装时需要建立 var/lib/pacman


$ROOT/$TOOLCHAIN/bin/opkg --offline-root $ROOT/$TOOLCHAIN \
                          install $PACKAGE >&$VERBOSE_OUT
需要先建立 目录
mkdir -p $ROOT/$TOOLCHAIN/var/lib/opkg/info/
STAMP=$ROOT/$TOOLCHAIN/var/lib/opkg/info/$1.control


index文件用于生成 opkg仓库索引文件,这个跟OE里脚本是一样

通过 opkg-make-index参数说明即可, 如果Packages不存在可以先touch生成一个

#!/bin/sh
. config/options
$SCRIPTS/installdev opkg-utils
[ "$VERBOSE" = yes ] && V="-v"
opkg-make-index $V -l $PKGROOT/Packages.filelist -p $PKGROOT/Packages $PKGROOT


packagedev文件主要是用于生成opkg包

首先调用解析 package目录下包的一些meta信息,然后通过add_control 生成control文件,最后通过opkg-build -O -o root -g root $INSTALL  $DEVPKGROOT >&$VERBOSE_OUT

制作目标包文件, -O表示使用 opk后缀,-o, -g使用的是用户权限, 传递给tar压缩作为参数使用,


在 configs/目录下有funtions文件,即为通用函数库,比如像get_meta等的函数即可在里面查看到代码


build/build.host/toolchain/bin/ 目录主native的一些工具

opkg-build 通知制作contol, postinstall等文件后,压缩后即可生成opk, ipk等包文件

具体过程主要是参考debian打包系统,但要比它的更简洁些


https://code.google.com/p/opkg/source/browse/tags/opkg-0.2.0-rc2/utils/opkg-key   opkg-key 签名


http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/ yocto项目的一些工具对opkg打包很有帮助

你可能感兴趣的:(opkg,openpctv)