slackware-current/slackbook/html/package-management-package-utilities.html
Patrick J Volkerding 75a4a592e5 Slackware 13.37
Mon Apr 25 13:37:00 UTC 2011
Slackware 13.37 x86_64 stable is released!

Thanks to everyone who pitched in on this release: the Slackware team,
the folks producing upstream code, and linuxquestions.org for providing
a great forum for collaboration and testing.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

As always, thanks to the Slackware community for testing, suggestions,
and feedback.  :-)

Have fun!
2018-05-31 22:45:18 +02:00

330 lines
12 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>Package Utilities</title>
<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" />
<link rel="HOME" title="Slackware Linux Essentials" href="index.html" />
<link rel="UP" title="Slackware Package Management" href="package-management.html" />
<link rel="PREVIOUS" title="Slackware Package Management"
href="package-management.html" />
<link rel="NEXT" title="Making Packages"
href="package-management-making-packages.html" />
<link rel="STYLESHEET" type="text/css" href="docbook.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"
alink="#0000FF">
<div class="NAVHEADER">
<table summary="Header navigation table" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<th colspan="3" align="center">Slackware Linux Essentials</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href="package-management.html"
accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom">Chapter 18 Slackware Package
Management</td>
<td width="10%" align="right" valign="bottom"><a
href="package-management-making-packages.html" accesskey="N">Next</a></td>
</tr>
</table>
<hr align="LEFT" width="100%" />
</div>
<div class="SECT1">
<h1 class="SECT1"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES">18.2 Package Utilities</a></h1>
<p>There are four main utilities for package management. They perform installation,
removal, and upgrades of packages.</p>
<div class="SECT2">
<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-PKGTOOL">18.2.1 pkgtool</a></h2>
<p><tt class="COMMAND">pkgtool</tt>(8) is a menu-driven program that allows installation
and removal of packages. The main menu is shown in <a
href="package-management-package-utilities.html#PKGTOOL-MAIN-MENU">Figure 18-1</a>.</p>
<div class="FIGURE"><a id="PKGTOOL-MAIN-MENU" name="PKGTOOL-MAIN-MENU"></a>
<p><b>Figure 18-1. Pkgtool's main menu.</b></p>
<p><img src="package-management/pkgtool-w.png" /></p>
</div>
<p>Installation is offered from the current directory, another directory, or from floppy
disks. Simply select the installation method you want and pkgtool will search that
location for valid packages to install.</p>
<p>You may also view a list of installed packages, as shown in <a
href="package-management-package-utilities.html#PKGTOOL-VIEW-MODE">Figure 18-2</a>.</p>
<div class="FIGURE"><a id="PKGTOOL-VIEW-MODE" name="PKGTOOL-VIEW-MODE"></a>
<p><b>Figure 18-2. Pkgtool view mode</b></p>
<p><img src="package-management/pkgtool-view-w.png" /></p>
</div>
<p>If you want to remove packages, select the remove option and you will be presented
with a checklist of all the installed packages. Flag the ones you want to remove and
select OK. <tt class="COMMAND">pkgtool</tt> will remove them.</p>
<p>Some users prefer this utility to the command line utilities. However, it should be
noted that the command line utilities offer many more options. Also, the ability to
upgrade packages is only offered through the command line utilities.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-INSTALLPKG">18.2.2 installpkg</a></h2>
<p><tt class="COMMAND">installpkg</tt>(8) handles installation of new packages on the
system. The syntax is as follows:</p>
<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">#</samp> <kbd class="USERINPUT">installpkg option package_name</kbd>
</pre>
</td>
</tr>
</table>
<p>Three options are provided for <tt class="COMMAND">installpkg</tt>. Only one option
can be used at a time.</p>
<div class="TABLE"><a id="AEN6446" name="AEN6446"></a>
<p><b>Table 18-1. <tt class="COMMAND">installpkg</tt> Options</b></p>
<table border="0" frame="void" class="CALSTABLE">
<col width="1*" />
<col width="3*" />
<thead>
<tr>
<th align="LEFT">Option</th>
<th align="LEFT">Effects</th>
</tr>
</thead>
<tbody>
<tr>
<td>-m</td>
<td>Performs a makepkg operation on the current directory.</td>
</tr>
<tr>
<td>-warn</td>
<td>Shows what would happen if you installed the specified package. This is useful for
production systems so you can see exactly what would happen before installing
something.</td>
</tr>
<tr>
<td>-r</td>
<td>Recursively install all packages in the current directory and down. The package name
can use wildcards, which would be used as the search mask when recursively
installing.</td>
</tr>
</tbody>
</table>
</div>
<p>If you pass the <tt class="ENVAR">ROOT</tt> environment variable before <tt
class="COMMAND">installpkg</tt>, that path will be used for the root directory. This is
useful for setting up new drives for your root directory. They will typically be mounted
to <tt class="FILENAME">/mnt</tt> or something other than <tt
class="FILENAME">/</tt>.</p>
<p>The installed package database entry is stored in <tt
class="FILENAME">/var/log/packages</tt>. The entry is really just a plain text file, one
for each package. If the package has a postinstallation script, it is written to <tt
class="FILENAME">/var/log/scripts/</tt>.</p>
<p>You may specify several packages or use wildcards for the package name. Be advised
that <tt class="COMMAND">installpkg</tt> will not tell you if you are overwriting an
installed package. It will simply install right on top of the old one. If you want to
ensure that old files from the previous package are safely removed, use <tt
class="COMMAND">upgradepkg</tt>.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-REMOVEPKG">18.2.3 removepkg</a></h2>
<p><tt class="COMMAND">removepkg</tt>(8) handles removing installed packages from the
system. The syntax is as follows:</p>
<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">#</samp> <kbd class="USERINPUT">removepkg option package_name</kbd>
</pre>
</td>
</tr>
</table>
<p>Four options are provided for <tt class="COMMAND">removepkg</tt>. Only one option may
be used at a time.</p>
<div class="TABLE"><a id="AEN6491" name="AEN6491"></a>
<p><b>Table 18-2. <tt class="COMMAND">removepkg</tt> Options</b></p>
<table border="0" frame="void" class="CALSTABLE">
<col width="1*" />
<col width="3*" />
<thead>
<tr>
<th>Option</th>
<th>Effects</th>
</tr>
</thead>
<tbody>
<tr>
<td>-copy</td>
<td>The package is copied to the preserved packages directory. This creates a tree of the
original package without removing it.</td>
</tr>
<tr>
<td>-keep</td>
<td>Saves temporary files created during the removal. Really only useful for debugging
purposes.</td>
</tr>
<tr>
<td>-preserve</td>
<td>The package is removed, but copied to the preserved packages directory at the same
time.</td>
</tr>
<tr>
<td>-warn</td>
<td>Shows what would happen if you removed the package.</td>
</tr>
</tbody>
</table>
</div>
<p>If you pass the <tt class="ENVAR">ROOT</tt> environment variable before <tt
class="COMMAND">removepkg</tt>, that path will be used for the root directory. This is
useful for setting up new drives for your root directory. They will typically be mounted
to <tt class="FILENAME">/mnt</tt> or something other than <tt
class="FILENAME">/</tt>.</p>
<p><tt class="COMMAND">removepkg</tt> looks at the other installed packages and only
removes files unique to the package you specify. It will also scan the postinstallation
script for the specified package and remove any symbolic links that were created by
it.</p>
<p>During the removal process, a status report is displayed. After the removal, the
package database entry is moved to <tt class="FILENAME">/var/log/removed_packages</tt>
and the postinstallation script is moved to <tt
class="FILENAME">/var/log/removed</tt>_scripts.</p>
<p>Just as with <tt class="COMMAND">installpkg</tt>, you can specify several packages or
use wildcards for the package name.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-UPGRADEPKG">18.2.4 upgradepkg</a></h2>
<p><tt class="COMMAND">upgradepkg</tt>(8) will upgrade an installed Slackware package.
The syntax is as follows:</p>
<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">#</samp> <kbd class="USERINPUT">upgradepkg package_name</kbd>
</pre>
</td>
</tr>
</table>
<p>or</p>
<table border="0" bgcolor="#E0E0E0" width="100%">
<tr>
<td>
<pre class="SCREEN">
<samp class="PROMPT">#</samp> <kbd
class="USERINPUT">upgradepkg old_package_name%new_package_name</kbd>
</pre>
</td>
</tr>
</table>
<p><tt class="COMMAND">upgradepkg</tt> works by first installing the new package and then
removing the old package so that old files are no longer around on the system. If the
upgraded package name has changed, use the percent sign syntax to specify the old package
(the one that is installed) and the new package (the one you are upgrading it to).</p>
<p>If you pass the <tt class="ENVAR">ROOT</tt> environment variable before <tt
class="COMMAND">upgradepkg</tt>, that path will be used for the root directory. This is
useful for setting up new drives for your root directory. They will typically be mounted
to <tt class="FILENAME">/mnt</tt> or something other than <tt
class="FILENAME">/</tt>.</p>
<p><tt class="COMMAND">upgradepkg</tt> is not flawless. You should always back up your
configuration files. If they get removed or overwritten, you'll want a copy of the
originals for any needed repair work.</p>
<p>Just as with <tt class="COMMAND">installpkg</tt> and <tt
class="COMMAND">removepkg</tt>, you can specify several packages or use wildcards for the
package name.</p>
</div>
<div class="SECT2">
<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM"
name="PACKAGE-MANAGEMENT-PACKAGE-UTILITIES-RPM">18.2.5 <tt
class="COMMAND">rpm2tgz</tt>/<tt class="COMMAND">rpm2targz</tt></a></h2>
<p>The Red Hat Package Manager is a popular packaging system available today. Many
software distributors are offering their products in RPM format. Since this is not our
native format, we do not recommend people rely on them. However, some things are only
available as an RPM (even the source).</p>
<p>We provide a program that will convert RPM packages to our native <tt
class="FILENAME">.tgz</tt> format. This will allow you to extract the package (perhaps
with <tt class="COMMAND">explodepkg</tt>) to a temporary directory and examine its
contents.</p>
<p>The <tt class="COMMAND">rpm2tgz</tt> program will create a Slackware package with a
<tt class="FILENAME">.tgz</tt> extension, while <tt class="FILENAME">rpm2targz</tt>
creates an archive with a <tt class="FILENAME">.tar.gz</tt> extension.</p>
</div>
</div>
<div class="NAVFOOTER">
<hr align="LEFT" width="100%" />
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="33%" align="left" valign="top"><a href="package-management.html"
accesskey="P">Prev</a></td>
<td width="34%" align="center" valign="top"><a href="index.html"
accesskey="H">Home</a></td>
<td width="33%" align="right" valign="top"><a
href="package-management-making-packages.html" accesskey="N">Next</a></td>
</tr>
<tr>
<td width="33%" align="left" valign="top">Slackware Package Management</td>
<td width="34%" align="center" valign="top"><a href="package-management.html"
accesskey="U">Up</a></td>
<td width="33%" align="right" valign="top">Making Packages</td>
</tr>
</table>
</div>
</body>
</html>