记linux下bin包的制作

jackxiang 2011-4-23 21:47 | |
如何制作bin脚本安装包

雪中孤鹤学习笔记

安装包特性:
1、开始拷贝文件之前的操作都具有可逆性;
2、具有“默认安装”与“自定义安装”两种安装方式可选;
3、自动生成卸载脚本;
4、安装时能自动建立桌面快捷方式,卸载时能自动清除配置文件、游戏存档等软件残留文件。


以下操作以在红旗桌面版4.1下制作EVA-0.4.0的安装包为例,需要读者掌握编写SPEC文件、建立与编辑桌面配置文件*.desktop、shell脚本编程、Xdialog方面的相关知识。


制作步骤:

1、以root身份登录系统,或者在普通用户下以root权限进行操作。


2、获取软件编译安装后的目录结构

将软件的源码压缩包放到/usr/src/redflag/SOURCES目录下,在/usr/src/redflag/SPECS目录下建立一个SPEC文件,例如eva.spec。内容为:


引用:%define prefix /usr
%define appsdir /usr/share/applnk/App/Internet

Name: eva
Summary: KDE环境下的QQ客户端软件
Version: 0.4.0
Release: rfdt4.1
Source0: %{name}-%{version}.tar.bz2
Group: Applications/Internet
BuildRoot: /tmp/build-root-%{name}
License: GPL
Url: http://www.linuxfans.org/downloads/
Packager: your name <your email>

%descrīption
Eva 是在KDE桌面下,基于Qt库开发的软件, ………

%prep
rm -rf %{buildroot}

%setup -n eva

%build
./configure --prefix=%{prefix}
make

%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{appsdir}

make DESTDIR=$RPM_BUILD_ROOT install

cd $RPM_BUILD_ROOT

find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.%{name}
find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.%{name}
find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.%{name}

%clean

%files -f ../file.list.%{name}
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS README README.zh

%changelog

在终端进入/usr/src/redflag/SPECS目录,执行:
rpmbuild -bb eva.spec

完成后,/tmp/build-root-eva目录下就是EVA-0.4.0编译安装后的目录结构,/usr/src/redflag/BUILD目录下的file.list.eva文件是EVA-0.4.0编译安装后的文件列表。


3、配齐文件

建立/tmp/evainstaller目录,将installer-files.tar.bz2解压后得到的installer-files文件夹里的所有文件都放到这个目录里。

将/tmp下的build-root-eva目录拷贝到/tmp/evainstaller目录,改名为eva-0.4.0,在/tmp/evainstaller/eva-0.4.0/usr/share/applnk/App/Internet下建立 EVA 的开始菜单(K菜单)项目,记得包括eva-uninstall.desktop(执行的命令为“/usr/share/doc/eva-0.4.0/uninstall.bin”)。

为“软件名-版本号-rfdt4.1-installer”和“软件名-版本号-rfdt4.1-setup”这两个文件改名,例如eva-0.4.0-rfdt4.1-installer和eva-0.4.0-rfdt4.1-setup,并建议一个软件的桌面配置文件(建立桌面快捷方式的时候使用),例如eva.desktop。


4、修改eva-0.4.0-rfdt4.1-installer和eva-0.4.0-rfdt4.1-setup这两个文件

其中eva-0.4.0-rfdt4.1-installer需要修改的地方只有“name=”和“ver=”这两个地方。

而eva-0.4.0-rfdt4.1-setup需要修改的地方比较多,除了软件名和版本号需要定义外,“选择安装类型的模块”和“选择安装类型”需要修改文字说明;“默认安装的模块”和“自定义安装的模块”需要参照file.list.eva文件的内容来修改拷贝时的操作;“生成卸载脚本的模块”需要修改删除的文件和目录;“安装完毕给予提示的模块”需要修改文字说明。


5、生成安装包

至此,相关文件已经准备完毕了,最好检查一下,看看/tmp/evainstaller目录下的文件是否是这些:
custom_install.xpm eva-0.4.0-rfdt4.1-setup uninstall_complete.xpm warning.xpm
default_install.xpm eva.desktop uninstall.xpm
eva-0.4.0 install_type.xpm Xdialog
eva-0.4.0-rfdt4.1-installer the_end.xpm Xdialog.mo

确认文件齐全后,将其压缩,在终端进入/tmp/evainstaller目录,执行:
tar jcvf eva.tar.bz2 custom_install.xpm default_install.xpm eva-0.4.0 eva-0.4.0-rfdt4.1-setup eva.desktop install_type.xpm the_end.xpm uninstall_complete.xpm uninstall.xpm warning.xpm Xdialog Xdialog.mo

合成安装包:
cat eva-0.4.0-rfdt4.1-installer eva.tar.bz2 >eva-0.4.0-rfdt4.1-installer.bin
chmod +x eva-0.4.0-rfdt4.1-installer.bin

现在双击eva-0.4.0-rfdt4.1-installer.bin就可以开始安装了。


来源:http://hi.baidu.com/cly840909/blog/item/36310d1f37cce064f724e421.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4237/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]