当前位置:主页   - 电脑 - 操作系统 - 其它系统
Slackware Linux技术内幕之包管理机制
来源:网络   作者:来源:网络/责编:编程入门 Freebird    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

郑重声明:本文从行文构思到章节安排均由本人独自完成,未参考任何网文,书籍、杂志。没有任何侵权行为。文中内容如果是参考网文的,我均已做明确标示.

简介:包管理机制是Slackware区别于其他Linux 发行版的重要的甚至是本质的区别。Slackware的包管理机制简单、灵活、高效、安全,用户透明性大,可定制程度高。因为Slackware的标准包管理工具皆为Shell脚本,这样,你可用简单而又方便的对其进行修改、移植。但是也存在一些不足之处,比如没有灵活的网络安装模式等。本文对 Slackware的包管理进行全面详细的介绍。

第一部分 Slackware标准包管理

一、简介

包管理机制是Slackware区别于其他Linux 发行版的重要的甚至是本质的区别。Slackware的包管理机制简单、灵活、高效、安全,用户透明性大,可定制程度高。因为Slackware的标准包管理工具皆为Shell脚本,这样,你可用简单而又方便的对其进行修改、移植。但是也存在一些不足之处,比如没有灵活的网络安装模式等。本文对 Slackware的包管理进行全面详细的介绍。

二、基本架构

所使用的文件及目录:

  • /bin/installpkg:用于安装Slackware包
  • /sbin/removepg:用于删除Slackware包
  • /sbin/explodepkg:用于解压Slackware包
  • /sbin/upgradepkg:用于更新Slackware包
  • /sbin/makepkg:用于制做Slackware包
  • /sbin/pkgtool:用于安装|删除|查看Slackware包
  • /bin/tar-1.13:用于安装、解压等
  • /bin/dialog:用于生成基于文本的图形界面
  • install-packages:Slackware CD下使用的shell脚本
  • tagfile:用于说明包的安装优先级别
  • /var/log/packages:保存已安装的Slackware包的基本信息
  • /var/log/scripts:保存已安装的Slackware包的安装脚本
  • /var/log/removed_packages:保存已删除的Slackware包的基本信息
  • /var/log/removed_scripts:保存已删除的Slackware包的安装脚本

三、命令使用说明

1.explodepkg---解压

它主要用来对Slackware的tgz包进行维护,只是简单的解压.tgz包,并不运行解压目录下的install或/var/log/setup目录下的安装脚本。explodepkg解压tgz包,然后通过对其中的文件进行修改、升级,最后再用 makepkg制做Slackware可用的tgz包。explodepkg也可以 对多个tgz 包逐个进行解压,格式如下:

#explodepkg package1.tgz package2.tgz ...

提示:explodepkg实际上用的是tar进行解压,运行explodepkg和运行tar xzvf package1.tgz效果完全一样!

警告:explodepkg(实际上所有的那些工具包括installpkg|removepkg等)所用的tar版本不得>1.13(默认使用1.13),否则不稳定。查看/bin目录,可以发现里面同时有tar-1.13和tar-1.14.

2.installpkg---安装

使用Slackware,你免不了用用到它。installpkg提供了丰富的参数,使得包的安装简单、灵活、安全而又 快捷。下面是常用参数简介:

  • -warn:在标准输出上显示出将安装哪些包,哪些包将会被覆盖,强烈建议使用该选项!
  • -root:自定义安装目录而不采用默认的目录。在制做LiveCD时你也许少不了要使用该项。
  • -menu:使用该项后会跳出一个文本图形,让你选择安装/不安装/退出。一般用于其他程序调用installpkg进行安装的情况,当然你喜欢图形界面,也可以试试.
  • -tagfile:指定安装使用的tagfile文件,该文件用于说明包的安装属性(自动|建议|可选|忽略).

其他的参数请man installpkg.

使用实例:

#installpkg package.tgz
#installpkg -warn package.tgz
#installpkg -warn -install package.tgz
#installpkg -menu -root /usr/local package1.tgz package2.tgz
#installpkg -menu -root /usr/local -tagfile/b]./tagfile package1.tgz package2.tgz

3.removepkg --删除

removepkg提供多种格式让你可用非常轻松的删除已经安装的Slackware包,删除过程会完整的显示哪些包已被删除。你可用指定该包的全名、基本名,例如:已经安装了一个名为test-1.0-i386-1.tgz 的包,那么可用如下格式进行删除:

#removepkg test-1.0-i386-1.tgz
#removepkg test-1.0-i386-1
#removepkg test.tgz
#removepkg test

提示:

  1. 你可用通过查看/var/log/packages来得知你已经安装了哪些Slackware包。
  2. removepkg删除前会进行包的依赖性检查(这就是为什么运行该命令一段时间后你才能看到deleting的输出信息),并且只删除那些没有依赖关系的包。可见其安全性!
  3. removepkg删除软件包后会将/var/log/packages下的相应项移至/var/log/removed_packages.而将安装脚本从/var/log/scripts移至/var/log/removed_packages
  4. removepkg也提供一些可选参数,请man removepkg.
其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明