[Q3开发工具]下载ubuntu源上的deb包并做成ro模块

欢迎大家把做好的软件模块传给我们,逐渐丰富 Q3 的软件仓库。

更新 deb2ro 改名为 pkg2ro,支持deb,rpm包!!!!

一 debget
用来搜索和下载ubuntu源上的deb软件. Q3基本系统基于ubuntu8.04。

#debget 
 /usr/bin/debget: 
 update      -- update 
 install     -- install
 search      -- search 

工作目录在 Q3系统目录的 debget 目录下。 第一次运行会自动生成,也会生成一个默认的sources.list。这个目录下的文件结构是:
# ls -1
debs_downloaded          #下载的deb包放在这里
index.html
sources.list             #这个就不用说了
ubuntu.cn99.com_ubuntu-cn_dists_hardy_main_binary-i386_Packages
......

下面以wine为例子:
1. 更新源文件列表,修改过 source.lst 的就要先更新。
# debget 
`Packages' -> `ubuntu.cn99.com_ubuntu_dists_hardy_main_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu_dists_hardy_restricted_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu_dists_hardy_universe_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu_dists_hardy_multiverse_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu-cn_dists_hardy_main_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu-cn_dists_hardy_restricted_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu-cn_dists_hardy_universe_binary-i386_Packages'
`Packages' -> `ubuntu.cn99.com_ubuntu-cn_dists_hardy_multiverse_binary-i386_Packages'

2. 搜索

# debget search wine
wine
wine-dev
winefish
wine-gecko

3. 下载

# debget install wine
-------following debs need to downlaod------
wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb
please type ENTER to continue or n/no to exit

--11:51:54-- http://ubuntu.cn99.com/ubuntu-cn//dists/hardy/main/binary-i386/wine/wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb
=> `/media/system//prayaya-q3-usb/debget/debs_downloaded/wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb'
Resolving ubuntu.cn99.com... 60.191.81.189
Connecting to ubuntu.cn99.com|60.191.81.189|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7,835,846 (7.5M) [application/octet-stream]

100%[===================================================================================================>] 7,835,846 411.68K/s ETA 00:00

11:52:14 (393.89 KB/s) - `/media/system//prayaya-q3-usb/debget/debs_downloaded/wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb' saved [7835846/7835846]

/media/system//prayaya-q3-usb/debget/debs_downloaded/wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb is new



注意: 下载不会解决依赖关系.

二 deb包下载之后用 deb2ro 来转化成 ro 模块。

# deb2ro /media/system//prayaya-q3-usb/debget/debs_downloaded/wine_1.1.6~winehq0~ubuntu~8.04-0ubuntu1_i386.deb 

技术细节:
1.解压 deb 包到 tmp 相关目录下,用 ldd 判断是否缺少库文件把
2.用 mksquashfs-lzma 把 deb 包压缩成 ro 模块,并放到 /media/system//prayaya-q3-usb/ros/new 目录下,然后挂载
3.大的文件解压缩需要时间,请耐心等待
2.如果出问题,删除新生成的 ro 模块,重启即可,不会在系统留下痕迹

如果缺少库文件,就用先用 debget 下载,再用 deb2ro 安装。总之,debget 和 deb2ro 2个工具反复使用,可以把 deb 包转换成一个可用的ro 模块. :D :D