jsjson 发表于 2011-5-11 12:04

雨林木风的软件包--ypk软件包格式说明和打包方法

ypk软件包格式说明和打包方法


ypk 是 Ylmf OSPackage 的缩写,就是 Ylmf OS 4 采用的软件包。
一、 以leafpad_0.8.18.1.ypk为例,说明手动解压的过程。

1、建立一个工作目录,复制leafpad_0.8.18.1.ypk到该目录下。#mkdir work-dir
#ls
leafpad_0.8.18.1.ypk

2、解压得到2个文件pkgdata 和pkginfo# tar xvf leafpad_0.8.18.1.ypk
pkgdata                        
pkginfo
# ls
leafpad_0.8.18.1.ypkpkgdatapkginfo

3、pkgdata 是数据包,xz格式。解压:# xz -d -c pkgdata |cpio -idu
268 块
# ls
leafpad_0.8.18.1.ypkpkgdatapkginfousrvar

4、pkginfo 是信息包,tar.bz2格式,解压:


上述过程可以用以下命令一次性完成:# tar xvf pkginfo

control.xml                      包信息

leafpad.desktop             桌面配置文件

leafpad.png                     软件图标
上述过程可以用以下命令一次性完成:# ypkg -x leafpad_0.8.18.1.ypk
* Extracting: /root/leafpad_0.8.18.1.ypk leafpad_0.8.18.1

>> decompress: /root/leafpad_0.8.18.1.ypk

>> pkginfo

>> pkgdata
在 leafpad_0.8.18.1 目录中可以找到所有文件。

二、自动手动打包 ypk 包

注意: 这里的打包是指 dir2ypk 方式,即打包目录方式,目录下至少要包含软件的程序,例如从 deb 包获得。更高级的打包请参考后续的 "Ylmf OS 编译系统" 。

1、建立一个目录。
目录必须是 "软件名_版本号"格式,例如test_123# mkdir    test_123

2、进入test_123 目录#cd test_123

3、复制需要的程序文件,例如运行程序,desktop 文件,icon程序图标程序。以下是例子:# find

./usr

./usr/share

./usr/share/pixmaps

./usr/share/pixmaps/test.png

./usr/share/applications

./usr/share/applications/test.desktop

./usr/bin

./usr/bin/test

4、之后创建一个配置文件,test_123.pbs,内容如下:# cat test_123.pbs

#

# YLmf_OS package build script

#
DESCRIPTION="this is a test"                                                            #简单描述该软件
HOMEPAGE=""                                                                                  #软件的主页
LICENSE="GPL-2"                                                                              #软件的授权协议
PACKAGER="ylmfos4-user@115.com"                                                    #打包者,可以写上自己的邮箱,便于联系      

RDEPEND="atk cairo gtk+"                                                                  #程序运行时依赖
BDEPEND="atk-dev cairo-dev gtk+-dev"                                             #程序编译时依赖

NOTES=""                                                                                       #这里可以写一些注意事项等

pbs_postinst() {                                                                              #安装之后运行的命令
      gnome2_desktop_database_update
      gnome2_icon_cache_update
}



pbs_prerm() {                                                                              #删除该软件之前运行的命令
      :
}

pbs_postrm() {                                                                               #删除该软件之后运行的命令
      :
}


5、检查一下所有文件# find

.

./test_123.pbs

./usr

./usr/share

./usr/share/pixmaps

./usr/share/pixmaps/test.png

./usr/share/applications

./usr/share/applications/test.desktop

./usr/bin

./usr/bin/test
6、回到test_123 上一级目录# cd../

7、开始打包# # ypkg -b test_123

* Packing: /root/test_123 /root/test_123.ypk

test_123.ypk
8、打包成功,安装到系统#sudo ypkg -itest_123.ypk
9、检查程序是否正常运行。
检查文件列表# ypkg-ltest或者ypkg-l test_123



# ypkg -ltest   

* Contents of test_123:

|      0| /usr/share/pixmaps/test.png

d|   4096| /usr/share/pixmaps

|      0| /usr/share/applications/test.desktop

d|   4096| /usr/share/applications

d|   4096| /usr/share

|      0| /usr/bin/test

d|   4096| /usr/bin

d|   4096| /usr

|      930| /test_123.pbs





File: 4, Dir: 5, Link 0, Size: 1K

注意,安装之后:
(1)   在 /var/ypkg/db/test 目录下会保存一些信息
(2)   /var/ypkg/db/world 文件上也会记录包的信息,xml格式,软件中心读取。
(3)安装之后,可以在软件中心的 "已安装软件"中搜索到


10、删除 软件
(1)在软件中心里删除
(2) 使用yget命令# sudoyget remove test



* Preparing ...

Remove: test

Auto-remove:

After this operation, 24.90K disk space will be freed.

Do you want to continue ?



y

>> 1/01   removing:                  test_123
注意: ypkg-C 也可以删除软件,但是这个命令非常危险。它会直接删除,如果误删系统文件,系统会崩溃。



三、注意!   
不要安装非官方的 ypk 包,安装时获得 root 权限,安装恶意的 ypk 包会破坏系统.

jsjson 发表于 2011-5-11 12:05

看着 比较复杂啊,,,,,,,,,

(额 貌似发错区 了蓝星 移动 下)

蓝星 发表于 2011-5-18 15:51

楼主最近研究linux了?
页: [1]
查看完整版本: 雨林木风的软件包--ypk软件包格式说明和打包方法