1.explodepkg---解压
它主要用来对Slackware的tgz包进行维护,只是简单的解压.tgz包,并不运行解压目录下的install或/var/log/setup目录下的安装脚本。explodepkg解压tgz包,然后通过对其中的文件进行修改、升级,最后再用 makepkg制做Slackware可用的tgz包。explodepkg也可以 对多个tgz 包逐个进行解压,格式如下:
<pre>
#explodepkg package1.tgz package2.tgz ...
</pre>
提示: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.
使用实例:
<pre>
#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
</pre>
3.removepkg --删除
removepkg提供多种格式让你可用非常轻松的删除已经安装的Slackware包,删除过程会完整的显示哪些包已被删除。你可用指定该包的全名、基本名,例如:已经安装了一个名为test-1.0-i386-1.tgz 的包,那么可用如下格式进行删除:
<pre>
#removepkg test-1.0-i386-1.tgz
#removepkg test-1.0-i386-1
#removepkg test.tgz
#removepkg test
</pre>
提示:
- 你可用通过查看/var/log/packages来得知你已经安装了哪些Slackware包。
- removepkg删除前会进行包的依赖性检查(这就是为什么运行该命令一段时间后你才能看到deleting的输出信息),并且只删除那些没有依赖关系的包。可见其安全性!
- removepkg删除软件包后会将/var/log/packages下的相应项移至/var/log/removed_packages.而将安装脚本从/var/log/scripts移至/var/log/removed_packages
- removepkg也提供一些可选参数,请man removepkg.
4.upgradepkg --更新
upgradepkg将一个老的Slackware .tgz包升级到一个新的版本。它将新版本的软件包安装到系统上,并且删除那些在新版本中没有的老版本的文件。
- 如果新老版本的软件包名字一样(比如都为package.tgz)。那么我们只要如下操作,就可完成包的更新:
<pre>
#upgradepkg package.tgz
</pre>
- 通常新老版本的Slackware包名字是不一样的,比如一个是package1.pkg(老),一个是package2.tgz(新),那么,操作为:
<pre>
#upgradepkg package1.tgz%package2.tgz
</pre>
注意:
- %前后不能有空格!
- 进行更新前,请备份相应的配置文件(比如/etc下)。如果要强行安装新的配置文件,请手动删除老配置文件。
提示:
5.makepkg --制作
1)为什么要制作Slackware包?
我认为:
- 并非所有的软件都有Slackware支持的tgz包供使用,自己制作可以方便下次使用也可提供给别人使用。
- 使用Slackware包(而不是源代码)方式进行安装,可以方便以后对之进行维护(删除|更新等)。
2)制作方法:
这里为以制做cce的Slackware包为例,说明makepkg的使用方法。
- 首先制作一个临时目录,以便将所有要制做成软件包的文件放于此目录。假设为works,则建立目录:
<pre>
# mkdir /works
</pre>
- 接着解压cce-0.51.tar.gz:
<pre>
# tar zxvf cce-0.51.tar.gz
</pre>
- 进入解压目录,进行configure,注意configure的参数应该指定安装目录为/works,如下:
<pre>
# cd cce-0.51
# ./configure --prefix=/works
</pre>
- 接下来,进行make,make install:
<pre>
# make && make install
</pre>
- 现在/works目录即为cce的主要程序以及其他文档的存放点。我们进入该目录,然后makepkg:
<pre>
# cd /works; makepkg cce.tgz
</pre>
makepkg会将/works目录下的所有文件以tar和GNUzip工具打包压缩成Slackware可用的.tgz包。如果在此过程中遇到符号链接的问题,makepkg会制做一个建立这些文件链接的脚本(script),并询问你是否将这些脚本写入install/doinst.sh文件中,并将该目录下的链接文件删除。我们一般选择yes,让makepkg自动处理那些链接问题。这样就会生成一个doinst.sh文件(存放该文件的install目录也会建立),其内容简单,就是建立这些链接的脚本(或者说命令)。当我们使用installpkg进行安装时,便可使用doinst.sh建立那些符号链接。
接下来,makepkg会询问是否将所有文件的权限设置为755 (rwxr-xr-x)并将所有者设为root.root.基于安全考虑也应选yes.
现在makepkg就开始进行包的制作了,一会儿就好了。现在你就可以使用installpkg安装/works目录下的cce.tgz了。当然现在我们可以删除/works目录:
<pre>
# rm -rf /works
</pre>
包制作已经完成,如果你又想往里面加入其他文件,或者对其中的文件进行修改,那么可以使用explodepkg对包进行解压,增加|修改后,重复以上步骤,直到你满意为止!
注意:
- makepkg制作软件包只适合于使用autoconf automake 这些自动配制工具规则的软件。
- 如果想将编译好的文件复制到指定目录,便于制作tgz包,可以在make install 后加上DESTDIR=/YOUR_DIR 或 ROOT=/YOUR_DIR 或 prefix=/YOUR_DIR ( 推荐率由前往后) 。(由hupeng923提供)
- 最好不在./configure的时候加 --prefix=/YOUR_DIR (想安装到此目录除外)。因为在 ./confiure 后加了--prefix=/work 后,编译出的二进制文件可能会保留指向/work的链接,打包成tgz让别人安装后,二进制文件可能还会搜索/work的路径。我自己做过这样的实验。(由hupeng923提供)
软件包的描述文件--slack-desc的制作
这是一个附加(或者非必须)部分,makepkg不会为你建立一个slack-desc文件,为了制作一个标准的Slackware包,我建议大家在制作Slackware时制作此文件!slack-desc也位于install目录下,该文件要遵循一定的格式,否则不会被显示!
"#"开始的行为注释。行长度不得超过表尺的右边界,共11行,哪怕你的描述没有那么多,要要保证有11行,当然这可用空行补上。如下源文件:
<pre>
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler--------------------------------------------------------------|
kdebase: kdebase (KDE base package)
kdebase:
kdebase: Core applications for the K Desktop Environment. Included are: kdm
kdebase: (replacement for xdm), kwin (window manager), konqueror (filemanager,
kdebase: web browser, ftp client), konsole (xterm replacement), kicker
kdebase: (application starter and desktop pager), kaudio (audio server),
kdebase: kdehelp (viewer for kde help files, info and man pages), kthememgr
kdebase: (system for managing alternate theme packages) plus other KDE
kdebase: components like kcheckpass, kikbd, kscreensaver, kcontrol, kfind,
kdebase: kfontmanager, kmenuedit, and kappfinder.
kdebase:
</pre>
6.pkgtool--工具集
简介:pkgtool可以让你在交互式的图形界面下进行包的安装|删除,以及查看已安装的包。当然,通过它我们还可以进行一些基本的系统配置(比如鼠标|时区|Lilo|服务等)。
工作机理:
- Current:调用/sbin/installpkg安装当前目录下的Slackware支持包。
- Other:调用/sbin/installpkg安装指定目录下的Slackware支持包。
- Remove:扫描/var/log/packages目录,返回已安装包的清单。选定欲删除的包后,调用 / sbin/removepkg进行删除。
- View:扫描/var/log/packages目录,返回已安装包的基本包名(除去.tgz剩下的部分)清单。
- Floppy:调用/sbin/installpkg安装指定软驱设备上的Slackware包。
- Setup:使用/var/log/setup目录下的setup.*文件(比如setup.05.fontconfig)进行基本的系统配置。你可以删除此目录下的文件使Setup中设置项也相应删除。反之,也可以加入自己的setup.文件!
四、Slackware包管理机制的问题
<!-- begin content -->
- 安装时包的依赖性管理差,默认缺少依赖性包也会安装上Slackware包。
- 没有网络安装模式,只能从本地安装Slackware包。
- 如果采用的是源代码方式安装软件包,那么标准包管理机制对这些包的管理维护似乎显得束手无策。
相应的解决办法得依靠外来得Slackware包管理工具。
相关推荐
- **简洁**:Slackware的包管理系统相对简单,没有复杂的依赖解析机制,适合对系统有深入理解的用户。 - **自由**:由于Slackware强调自由和控制,它的包管理方式允许用户完全掌控自己的系统。 - **可定制**:用户...
SlackPkg是一款专为Slackware设计的开源包管理工具,它的出现极大地简化了软件包的安装、更新以及卸载过程。 **SlackPkg的特性与功能** 1. **自动化下载与安装**:SlackPkg的一个主要优点是能够自动下载并安装...
2. **简洁性**:与其他发行版相比,Slackware的包管理系统更加简单,没有复杂的依赖关系处理工具。 3. **安全性**:由于其更新策略较为保守,Slackware在安全方面表现优异。 4. **学习价值**:对于希望深入了解Linux...
通过理解Slackware的包管理机制和Shell脚本的工作原理,以及PyCrypto库提供的加密服务,IT专业人员可以更好地维护系统安全,开发安全的加密应用程序。在实际操作中,还应注意遵循最佳实践,如定期更新脚本以获取最新...
Fedora Core/Redhat早期因其RPM包管理机制受到批评,而现在FC以其丰富的功能和较快的更新速度吸引用户,但有时可能运行速度较慢,适合愿意尝试新特性的用户。 Linux From Scratch(LFS)提供了一种自定义构建操作系统...
对于Slackware Linux,一个以简洁和稳定著称的发行版,它的默认包管理系统相对基础,主要依赖命令行工具如`installpkg`和`removepkg`。然而,Slackpack 的出现,为Slackware用户提供了一个更直观、友好的交互方式来...
在大多数Linux发行版中,SCIM可以通过包管理器(如`apt`或`yum`)进行安装。安装完成后,需要配置系统以启动SCIM,并将其与桌面环境集成。例如,在Gnome或KDE环境下,通常需要设置SCIM作为默认的输入法框架,并在...
在Linux世界里,各种不同的发行版有着各自的软件包管理机制,如RPM(Red Hat Package Manager)用于Fedora、CentOS等系统,DEB(Debian Package)则服务于Ubuntu、Debian等。这种多样性为用户带来了便利,但同时也...
对于那些想要深入了解Linux包管理机制或者希望改善现有工具的人来说,SWareT的源代码是一个宝贵的资源。 总之,SWareT是Slackware用户的一大福音,它使得这个以手动操作为主的发行版变得更加现代化和易用。通过这个...
首先,让我们深入了解Slackware的更新机制。Slackware使用打包管理系统,如`pkgtools`,其中包括`installpkg`和`removepkg`等工具,用于安装和卸载软件包。然而,由于Slackware的哲学,它并不提供像其他Linux发行版...
`sbin`和`install`目录中的内容则揭示了工具的运行机制和安装流程,展示了Slackware软件包管理的细节。通过深入理解和使用这些资源,无论是开发者还是系统管理员,都能更好地掌握Slackware的软件包管理,提升系统...
1. **包管理**:该工具提供了一套完整的包管理机制,允许用户轻松地安装、更新和移除32位软件包,类似于其他Linux发行版中的包管理器(如`apt`或`yum`)。 2. **依赖处理**:自动处理32位软件包的依赖关系,确保...
5. **软件包管理**:由于Slackware没有像其他Linux发行版那样的包管理系统(如apt或yum),SlackBuilds提供了一种有效的替代方式,使得用户能方便地获取和安装软件,同时保持系统的纯净和可控。 6. **安全性与可靠...
它们遵循一定的结构和规范,以确保与 Slackware 的包管理系统兼容。通过使用 SlackBuild 脚本,用户无需详细了解编译过程,只需运行脚本,即可完成软件的安装。 在描述中提到的“我的 SlackBuild 脚本集”,可能是...
综合以上内容,我们可以看到Linux系统具有多样的发行版,提供了灵活的桌面环境选择,功能强大的shell操作以及完善的用户账户管理机制。这些知识点覆盖了Linux系统的基础架构、图形界面、用户交互、系统安全和管理等...
总之,Google Chrome在Linux上的安装和使用涉及到了Linux文件系统的理解、脚本的执行以及对可能的依赖库的管理。通过正确操作,Linux用户可以在享受Chrome带来的强大浏览功能的同时,充分利用Linux系统的稳定性和...
Packware,一款专为Slackware Linux设计的开源软件包管理工具,它以其强大的功能和灵活性在Linux社区中独树一帜。作为Slackware Linux的扩展,Packware旨在简化软件的安装、升级和卸载过程,提供了一个更为高效且...
总的来说,配置Linux下的DDNS服务涉及DNS服务器软件(如BIND-DNS)与DHCP服务器的协作,以及安全机制的建立,包括密钥的生成和配置文件的正确修改。这个过程对于自动化网络设备的IP地址管理和保持DNS记录的实时更新...
- **Slackware vs Debian**:不同的Linux发行版有不同的init实现方式,Slackware使用简单的脚本,而Debian则使用更复杂的机制。 #### 四、引导过程 引导过程是指从系统加电开始直到操作系统完全启动的过程。了解这...
这些改进主要得益于NPTL对内核特性的充分利用,以及对用户级线程管理机制的优化。对于追求高性能的服务器系统而言,NPTL无疑是一个值得期待和采用的选择。然而,值得注意的是,NPTL的这些优势在一定程度上依赖于内核...