
[安装包结构]
install是安装脚本，需要root权限执行。
uninstall是卸载脚本，需要root权限执行。
/tools目录中是Java管理工具的程序和运行脚本。
/srv目录中是针对不同Linux发行版的pcscd服务配置脚本。
/lib目录中是 libpcsclite、PKCS11和Java工具的.so库文件，以及 pcscd服务的通讯模块。
/desktop目录中是管理工具的快捷方式和图标。
/bin目录中是 pcsc-lite daemon程序，以及P11模块注册/删除工具。



[安装流程]
输出的主目录是 /usr/lib/watchdata
安装流程：
1.	获取被调用的安装脚本所在的当前目录，定位安装包的绝对路径
2.	获取Linux发行版名称（Ubuntu、Fedora、openSUSE、Debian）、系统字长（32/64）
3.	查找已运行的pcscd_wd进程，如果存在将其终止
4.	输出文件和目录结构
	a)	建立主目录/usr/lib/watchdata
	b)	根据系统字长，将相应的库文件输出到watchdata/lib
	c)	根据系统字长，将相应的可执行文件输出到watchdata/bin
	d)	将Java工具输出到watchdata/tools
	e)	设置可执行文件的权限a+x
	f)	将图标和快捷方式文件输出到watchdata/desktop
	g)	将Java工具的相关库创建链接到watchdata/tools
	h)	将pcscd_wd程序创建链接到/usr/sbin/和/sbin/
	i)	将libpcsclite库创建链接到/usr/lib/和/lib/
	j)	将快捷方式文件创建链接到/usr/share/applications/
	k)	将Java工具运行脚本创建链接到/usr/bin/watchsafe
5.	检查pcscd_wd服务是否已经存在，如果存在，先卸载服务
6.	注册新的pcscd_wd服务
	a)	检查系统中安装的服务管理工具：update-rc.d、chkconfig、insserv，选择存在的工具
	b)	根据Linux发行版名称，选择安装包srv目录下对应的服务脚本，输出到/etc/init.d或/etc/rc.d/init.d/
	c)	调用选中的服务管理工具，注册服务
7.	启动pcscd_wd服务
8.	将卸载脚本输出到/usr/lib/watchdata


[卸载流程]
1.	终止正在运行的pcscd_wd服务
2.	卸载pcscd_wd服务，删除服务脚本
3.	删除安装时向/usr/lib/watchdata输出的文件
4.	删除其他位置的文件链接



ps.
经过重新配置，此版的pcscd标识都以“_wd”结尾，libpcsclite_wd.so也做了区分，因此可以与发行版中的pcscd同时运行，但是要注意在两个pcscd服务的Info.plist配置文件中的设备号不能重复，否则会导致竞争。



李勃 2011年9月
