diff options
Diffstat (limited to 'misc/slackbook/html/package-management-making-packages.html')
-rw-r--r-- | misc/slackbook/html/package-management-making-packages.html | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/misc/slackbook/html/package-management-making-packages.html b/misc/slackbook/html/package-management-making-packages.html new file mode 100644 index 00000000..f5812775 --- /dev/null +++ b/misc/slackbook/html/package-management-making-packages.html @@ -0,0 +1,120 @@ +<!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>Making Packages</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="Package Utilities" +href="package-management-package-utilities.html" /> +<link rel="NEXT" title="Making Tags and Tagfiles (for setup)" +href="package-management-making-tags-and-tagfiles.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-package-utilities.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-tags-and-tagfiles.html" accesskey="N">Next</a></td> +</tr> +</table> + +<hr align="LEFT" width="100%" /> +</div> + +<div class="SECT1"> +<h1 class="SECT1"><a id="PACKAGE-MANAGEMENT-MAKING-PACKAGES" +name="PACKAGE-MANAGEMENT-MAKING-PACKAGES">18.3 Making Packages</a></h1> + +<p>Making Slackware packages can be either easy or difficult. There is no specific method +for building a package. The only requirement is that the package be a tar gzipped file +and if there is a postinstallation script, it must be <tt +class="FILENAME">/install/doinst.sh</tt>.</p> + +<p>If you are interested in making packages for your system or for a network that you +manage, you should have a look at the various build scripts in the Slackware source tree. +There are several methods we use for making packages.</p> + +<div class="SECT2"> +<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-EXPLODEPKG" +name="PACKAGE-MANAGEMENT-EXPLODEPKG">18.3.1 <tt class="COMMAND">explodepkg</tt></a></h2> + +<p><tt class="COMMAND">explodepkg</tt>(8) will do the same thing that <tt +class="COMMAND">installpkg</tt> does to extract the package, but it doesn't actually +install it and it doesn't record it in the packages database. It simply extracts it to +the current directory.</p> + +<p>If you look at the Slackware source tree, you will see how we use this command for +“framework” packages. These packages contain a skeleton of what the final +package will look like. They hold all the necessary filenames (zero-length), permissions, +and ownerships. The build script will cat the package contents from the source directory +to the package build directory.</p> +</div> + +<div class="SECT2"> +<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-MAKEPKG" +name="PACKAGE-MANAGEMENT-MAKEPKG">18.3.2 <tt class="COMMAND">makepkg</tt></a></h2> + +<p><tt class="COMMAND">makepkg</tt>(8) will package up the current directory into a valid +Slackware package. It will search the tree for any symbolic links and add a creation +block to the postinstallation script for creating them during the package install. It +also warns of any zero-length files in the package tree.</p> + +<p>This command is typically run after you have created your package tree.</p> +</div> + +<div class="SECT2"> +<h2 class="SECT2"><a id="PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS" +name="PACKAGE-MANAGEMENT-SLACKBUILD-SCRIPTS">18.3.3 SlackBuild Scripts</a></h2> + +<p>Slackware packages are built in many different ways by necessity. Not all software +packages are written by their programmers to compile the same way. Many have compile time +options that are not all included in the packages Slackware uses. Perhaps you need some +of this functionality; you'll need to compile your own package then. Fortunately for many +Slackware packages, you can find SlackBuild scripts in the package's source code.</p> + +<p>So what is a SlackBuild script? SlackBuild scripts are executable shell scripts that +you run as <tt class="USERNAME">root</tt> to configure, compile, and create Slackware +packages. You can freely modify these scripts in the source directory and run them to +create your own versions of the default Slackware packages.</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-package-utilities.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-tags-and-tagfiles.html" accesskey="N">Next</a></td> +</tr> + +<tr> +<td width="33%" align="left" valign="top">Package Utilities</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 Tags and Tagfiles (for setup)</td> +</tr> +</table> +</div> +</body> +</html> + |