Linux下制作简单的仿Windows安装界面
安装包特性: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:
[url=http://www.linuxfans.org/downloads/]http://www.linuxfans.org/downloads/[/url]
Packager: your name
%description
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就可以开始安装了。