summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chapter_16.xml158
1 files changed, 148 insertions, 10 deletions
diff --git a/chapter_16.xml b/chapter_16.xml
index 3503a44..388ab96 100644
--- a/chapter_16.xml
+++ b/chapter_16.xml
@@ -5,15 +5,49 @@
<chapter>
<title>Package Management</title>
+<para>
+Package management is an essential part of any Linux distribution.
+Every piece of software included by Slackware, along with many
+third-party tools are distributed as source code that can be compiled,
+but compiling all those thousands of different applications and
+libraries is tedious and time consuming. That's why many people prefer
+to install pre-compiled software packages. In fact, when you installed
+Slackware, the <application>setup</application> program primarily
+worked by running package management tools on a list of packages. Here
+we'll look at the various tools used for handling Slackware packages.
+</para>
+
<section>
<title><application>pkgtool</application></title>
<para>
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
-minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
-ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
-voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+The simplest way to perform package maintenance tasks is to invoke
+<application>pkgtool</application>(8), a menu-driven interface to some of
+the other tools. <application>pkgtool</application> allows you to
+install or remove packages as well as view the contents of those
+packages and the list of currently installed packages in a
+user-friendly ncurses interface.
+</para>
+
+<para>
+PICTURE OF PKGTOOL MAIN SCREEN.
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+FILL THIS IN!!!!!!
+</para>
+
+<para>
+<application>pkgtool</application> is a convenient and easy way to
+perform the most basic tasks, but for more advanced work more flexible
+tools are needed.
</para>
</section>
@@ -22,11 +56,115 @@ voluptate velit esse cillum dolore eu fugiat nulla pariatur.
<title>Installing, Removing, and Upgrading Packages</title>
<para>
-Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
-eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
-minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
-ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
-voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+While <application>pkgtool</application> scores points for convenience,
+<application>installpkg</application>(8) is much more capable of
+handling odd tasks, such as quickly installing a single package,
+installing an entire disk set of packages, or scripting an install.
+<application>installpkg</application> takes a list of packages to
+install, and simply installs them without asking any questions. Like
+all Slackware package management tools, it assumes that you know what
+you're doing and doesn't pretend to be smarter than you. In its
+simplest form, <application>installpkg</application> simply takes a
+list of packages to install, and does exactly what you would expect.
+</para>
+
+<screen><prompt>darkstar:~# </prompt><userinput>installpkg blackbox-0.70.1-i486-2.txz</userinput>
+Verifying package blackbox-0.70.1-i486-2.txz.
+Installing package blackbox-0.70.1-i486-2.txz:
+PACKAGE DESCRIPTION:
+# blackbox (Blackbox window manager)
+#
+# Blackbox is that fast, light window manager you have been looking for
+# without all those annoying library dependencies.
+#
+# Also included in this package is the bbkeys utility for controlling
+# keyboard shortcut commands from within Blackbox.
+#
+# The Blackbox home page is http://blackboxwm.sourceforge.net
+#
+Package blackbox-0.70.1-i486-2.txz installed.</screen>
+
+<para>
+You can of course install multiple packages at a time, and in fact use
+shell wild cards. The following installs all of the "N" series
+packages from a mounted CD-ROM.
+</para>
+
+<screen><prompt>darkstar:~# </prompt><userinput>installpkg /mnt/cdrom/slackware/n/*.txz</userinput>
+
+<para>
+Removing a package is every bit as easy as installing one. As you might
+expect, the command to do this is
+<application>removepkg</application>(8). Simply tell it which packages
+to remove, and <application>removepkg</application> will check the
+contents of the package database and remove all the files and
+directories for that package with one caveat. If that file is included
+in multiple installed packages, it will be skipped and if a directory
+has new files in it, the directory will be left in place. Because of
+this, removing packages takes a good while longer than installing them.
+</para>
+
+<screen><prompt>darkstar:~# </prompt><userinput>removepkg blackbox-0.70.1-i486-2.txz</userinput>
+</screen>
+
+<para>
+Finally, upgrading is just as easy with (you guessed it),
+<application>upgradepkg</application>(8) which first installs a new
+package, then removes whatever files and directories are left-over from
+the old package. One important thing to remember is that
+<application>upgradepkg</application> doesn't check to see if the
+previously installed package has a higher version number than the "new"
+package, so it can also be used to downgrade to older versions.
+</para>
+
+
+
+<screen><prompt>darkstar:~# </prompt><userinput>upgradepkg blackbox-0.70.1-i486-2.txz</userinput>
+
++==============================================================================
+| Upgrading blackbox-0.65.0-x86_64-4 package using
+./blackbox-0.70.1-i486-2.txz
++==============================================================================
+
+Pre-installing package blackbox-0.70.1-i486-2...
+
+Removing package
+/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51...
+ --> Deleting symlink /usr/share/blackbox/nls/POSIX
+ --> Deleting symlink /usr/share/blackbox/nls/US_ASCII
+ --> Deleting symlink /usr/share/blackbox/nls/de
+ --> Deleting symlink /usr/share/blackbox/nls/en
+ --> Deleting symlink /usr/share/blackbox/nls/en_GB
+...
+Package blackbox-0.65.0-x86_64-4 upgraded with new package
+./blackbox-0.70.1-i486-2.txz.</screen>
+
+<para>
+All of these tools have useful arguments. For example, the
+<arg>--root</arg> to <application>installpkg</application> will install
+packages into an arbitrary directory. The <arg>--dry-run</arg> argument
+will instruct <application>upgradepkg<application> to simply tell you
+what it would attempt without actually making any changes to the
+system. For complete details, you should (as always) refer to the man
+pages.
+</para>
+
+</section>
+
+<section>
+<title>Package Compression Formats</title>
+
+<para>
+We won't go in depth into the details of package formats, but a few
+words should be given here. In the past, all Slackware packages were
+compressed with the <application>gzip</application>(1) compression
+utility, which was a good compromise between compression speed and
+size. Recently, new compression schemes have been added and the
+package management tools have been upgraded to handle these. Today,
+official Slackware packages are compressed with the
+<application>xz</application> utility and end with .txz extensions.
+Older packages (and many third party packages) still use the .tgz
+extension.
</para>
</section>