一、SWARET ---网络安装模式的实现!
1.简介:
swaret可以进行包的安装、升级、重装,下载 Slackware包,补丁、源代码等等。重要的是,swaret支持依赖性检查,能很好的跟踪、解决依赖包的丢失问题。swaret使用多个Slackware
Linux镜像站通过http/ftp/rsync或者本地软件库进行包的安装。swaret还有i18n支持.
2.安装:
你可以从网上下载swaret的slackware(. tgz)包进行安装。推荐从 http://www.linuxpackages.net 下载。最新版本(2004-7-04)为swaret-1.6.2-noarch-1.tgz:
<pre>
#installpkg swaret-1.6.2-noarch-1.tgz
</pre>
注意:swaret必须使用到一些工具,比如pkgtool,wget,grep,bc等,如果没有安装,请在运行前安装。
3.配置:
<pre>
#cp /etc/swaret.conf.new /etc/swaret.conf
</pre>
现在开始编辑/etc/swaret文件:
- VERSION:设置你所使用的Slackware的版本,主要用来解决包的依赖及其他问题,比如设置为 10.想使用Slackware Current你要设置为
<pre>
VERSION=current。
</pre> - LANGUAGE:定义状态以及错误信息的输出使用的语言。很不幸没有中文,不过你自己可以翻译/usr/share/swaret-VERSION/swaret.lang.ENGLISH为swaret.lang.CHINESE,然后将此项设置为CHINESE!
- ROOT:设置你将要下载的Slackware包的根目录,例如:
<pre>
ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-$VERSION
</pre>
可以是HTTP/FTP/RSYNC或者本地文件地址。可以设置多个ROOT项。 - DEP_ROOT:类似ROOT,但是还包括库文件的地址。仅当DEPENDENCY=1时使用。
- REPOS_ROOT: 定义远程或者本地软件库的地址。
- RANDOMR:设置为1,让swaret随机选择你指定的多个slackware包镜像站。
- USEPKGDESC:若为1,匹配Slackware包的描述文件中含有指定关键字的包。
- EXCLUDE:设置不进行安装|更新的软件包,这里可以使用正则表达式。
- DEPENDENCY:是否让swaret进行依赖性检查以及处理。1为是,0为否。
- DSEARCHLIB:是否让swaret在本机上搜索ldconfig找不到而又存在于本机上的库文件。
- DSEARCHM:是否使用slocate搜索丢失的库文件。
- MD5CHECK:是否对Slackware包或源代码进行MD5校验。默认为1.
- GPGCHECK:是否对Slackware包或源代码进行GPG签名检查。
- DESC:是否在升级|安装过程中显示包的相关信息。
- CACHE_DIR:下载的软件包放在何处。默认为/var/swaret。
- LOG:是否将重要信息写入日志文件。
- LOG_FILE:将swaret所有的操作写入该日志文件。默认为/var/log/swaret。
- WARNINGS:是否让swaret显示警告信息。
- INFORMATION:是否让swaret显示信息。
- NIC:你通过什么网络界面(interface)下载软件包.例如网卡eth0.
- PROGRESS:指定下载进度所采用的显示格式。
- TIMEOUT:规定wget 和 rsync的超时时间界限。
- RETRIES:规定wget 和 rsync的重试次数。
- PASSIVE_FTP:如果你在防火墙后运行swaret,设置为1。
- WGET_PROXY:指定wget使用的代理地址,格式为:
<pre>
http://proxy.some-domain- name.domain:HTTP_PROXY_PORT
</pre> - RSYNC_PROXY:指定RSYNC使用的代理地址,格式为Host:Port。
4.使用:(详见swaret的how_to_use文件)
使用举例:
<pre>
#swaret --upgrade package
#swaret --install package
#swaret --reinstall package
#swaret --remove package
#swaret --get package
#swaret --dep package
</pre> 二、slapt-get/slapt-gui---使用标准Slackware管理工具,模拟Debian的apt-get!
slapt-gui是slapt-get的一个图形用户界面,这里我只详细介绍slapt-get.
1.主要特色:
- 使用标准的Slackware包管理工具(installpkg 等).
- 支持网络安装模式,且可指定多个镜像站,还支持断点续传。
- 支持使用正则表达式进行搜索。
- 方便从一个Slackware发行版升级到另一个。
- 方便的解决包的依赖、冲突等问题。
注意:要求Slackware的版本为9.1或更高。其他要求预先安装的软件参见slapt的README.
2.下载安装
可从 http://www.linuxpackages.net 下载,然后安装。
3.配置:
配置文件为/etc/slapt-getrc,主要设置项为:
- WORKINGDIR:本地工作目录,如/var/slapt-get。
- EXCLUDE:不进行操作的软件。
- SOURCE:下载源。
4.使用:
<pre>
#slapt-get --install pkg_name
</pre>
其他参数及使用方法详见slapt-get的FAQ,或者参阅Debian的apt-get的使用方法。
三、 checkinstall --安装包制作圣手!
注:此节大部分参照struggle兄的文章完成。
1.简介:
同样的,checkinstall可以将源代码方式提供的安装包(autoconf+automake)制做成Slackware支持的tgz包。但是checkinstall却不局限于制作Slackware包,它同样可以制作rpm和deb包。所以为称之为"圣手"
2.使用:
我们仍然以上面的安装cce-0.51.tar.gz为例:
- 解压,configure,make
<pre>
# tar zxvf cce-0.51.tar.gz
#cd cce-0.51
#./configure #注意此处并无prefix参数
#make
</pre>
注意:下面将运行checkinstall,但在运行此命令前你需要在当前目录下创建一个对这个软件包的描述文件description-pak,但你也可以不创建它,推荐你做这一步。 其格式简单,比如:
<pre>
CCE
CCE lets you display and input Chinese/Japanese/Korean in lots of OS. It works
in both console
mode and X Windows(through GGI/SDL library). CCE supports both frame buffer(Linux
and FreeBSD
only) and VGA(640x480x16 colors) display. CCE also includes lots of GB/GBK/Big5
input methods
like Intelligent Pinyin, Zhuyin, WuBi, CangJie, DaYi, etc.
</pre>
另外还可以在当前目录下创建4个特殊的脚本文件preinstall-pak, postinstall-pak, preremove-pak和postremove-pak。 preinstall-pak在被安装之前执行,postinstall-pak在被安装之后执行,preremove-pak在被删除之前执行,postremove-pak在被删除之后执行。同样,这4个脚本文件不是必须的。
如果要制作的软件有一些特殊的要求,比如创建一个特殊的用户或者组,这4个脚本就有作用了。 然后在当前目录下创建一个doc-pak的目录,这个目录是用来存放软件的相关文档的。比如说README,INSTALL, COPYING, Changelog, TODO, CREDITS等文件。这些文件在安装软件包时将被拷到/usr/doc/“软件包名称”目录下。如果你现在不创建,在生成软件包时将提醒你是否创建这个目录和拷贝相关文件,如果你再选择否,那么制作的软件包将没有文档。
- 现在开始checkinstall:
<pre>
#checkinstall
</pre>
如果开始你没有创建doc-pak目录,此时将会提示你是否创建。按y自动创建和拷贝,按n取消。 下面checkinstall将创建安装软件包,checkinstall默认安装命令是make install,你得根据你的软件安装说明具体而定,有些软件的安装命令不是make install,而是其他,你则换成
<pre>
checkinstall make modules_install
checkinstall install.sh
checkinstall setup
</pre>
等形式。这样,我们也可以把一些以二进制包发布的软件用checkinstall创建为Slackware的软件包,只要再checkinstall后面加上安装指令作为参数即可。 下一步checkinstall将会询问创建什么软件包,
<pre>
Please choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]?
</pre>
选择s创建slackware的pkg软件包,选r创建redhat的rpm软件包,选d创建debian的deb软件包。我们选择s继续。
<pre>
This package will be built according to these values:
1 - Summary: [ cce-0.51 2 - Name: [ cce ]
3 - Version: [ 0.51 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i386 ]
8 - Source location: [ cce-0.51
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:
</pre>
checkinstall给出一个菜单让你选择修改软件包的一些属性,想修改就按对应的数字键,否则回车继续。我们按7修改软件包的系统平台,
<pre>
Enter the architecture type:i686
This package will be built according to these values:
1 - Summary: [ cce-0.51 ]
2 - Name: [ cce ]
3 - Version: [ 0.51 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ i686 ]
8 - Source location: [ cce-0.51 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:e:
</pre>
然后回车继续,checkinstall将会在当前目录生成制作好的pkg软件包并安装它。
我们的软件包创建到此成功结束。