背景
由于威联通官方APP市场中可用的App数量比较少,有时需要自己进行打包安装。
这里要说明几点:
- 打包需要在威联通NAS上进行,不能通过自己的电脑进行。
- 需要能通过ssh连接上NAS服务器,下面称为命令行后台。
- 需要能登录威联通NAS UI页面后台,下面称为页面后台。
整个过程主要分为4个步骤:
- 下载安装QDK
- 创建要打包的App环境
- 配置要打包的App
- 打包
下载安装QDK
下载链接:http://wiki.qnap.com/wiki/QPKG_Development_Guidelines#Downloads
文件下载到本地,通过页面后台手动安装。
创建要打包的App环境
进入命令行后台
# 进入QDK的安装目录
cd `getcfg QDK Install_Path -f /etc/config/qpkg.conf`
# 创建你要打包的APP,最后一个参数是APP的名字
qbuild --create-env MyQPKG
# 进入MyQPKG目录
cd MyQPKG/
配置要打包的App
在MyQPKG/
目录下,修改qpkg.cfg文件的内容
# 打开配置文件
vim qpkg.cfg
# 重点关注下面几个参数
# APP名称
QPKG_NAME="MyQPKG"
# APP版本
QPKG_VER="0.1"
# APP启动和停止时执行的脚本
QPKG_SERVICE_PROGRAM="MyQPKG.sh"
在MyQPKG/shared
目录下修改启动和停止脚本,脚本文件名是上面配置的也就是MyQPKG.sh
,这里如果脚本不存在则创建一个。原理就是APP启动时通过脚本把服务启动,停止时把服务杀死。脚本内容如下
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="MyQPKG"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
APACHE_ROOT=`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f /etc/config/def_share.info`
export QNAP_QPKG=$QPKG_NAME
case "$1" in
start)
ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
if [ "$ENABLED" != "TRUE" ]; then
echo "$QPKG_NAME is disabled."
exit 1
fi
# 这里时APP启动时执行的命令
/bin/chmod -Rf 777 $QPKG_ROOT/*
cd $QPKG_ROOT
./MyQPKG 2>&1 & disown
;;
stop)
# 这里时APP停止时执行的命令
killall -9 MyQPKG
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
打包
将依赖文件放入对应的目录,shared/ 中存放平台无关的公共文件,arm-x09/ arm-x19/ arm-x31/ arm-x41(TS-x31+)/ x86/ x86_ce53xx/ x86_64/ 中存放对应平台下的可执行文件等。
比如App可执行文件是打包好的x86_64平台的MyQPKG
二进制可执行文件,就把MyQPKG
这个文件放到MyQPKG/x86_64/
目录下面。
# 文件放好之后执行下面的命令进行打包
qbuild
# 查看打包后生成的文件
ls build/
在MyQPKG/build/
目录下生成的.qpkg后缀的文件,复制出来就可以通过页面后台手动安装了。