Add a few more details to the package management section, and correct the URL for the LSB specs. Fixes #2073 and #2130.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@8452 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Matthew Burgess 2008-01-19 15:25:26 +00:00
parent 9750afcb58
commit d327d74c87
3 changed files with 33 additions and 11 deletions

View File

@ -36,6 +36,19 @@
</listitem>
-->
<listitem>
<para>2008-01-19</para>
<itemizedlist>
<listitem>
<para>[matthew] - Mention <command>strace</command> as another means
of logging installed files, and correct the URL of the Linux Standard
Base specifications. Fixes
<ulink url="&lfs-ticket-root;2073">#2073</ulink> and
<ulink url="&lfs-ticket-root;2130">#2130</ulink>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>2008-01-04</para>
<itemizedlist>

View File

@ -12,12 +12,14 @@
<para>Package Management is an often requested addition to the LFS Book. A
Package Manager allows tracking the installation of files making it easy to
remove and upgrade packages. Before you begin to wonder, NO&mdash;this section
will not talk about nor recommend any particular package manager. What it
provides is a roundup of the more popular techniques and how they work. The
perfect package manager for you may be among these techniques or may be a
combination of two or more of these techniques. This section briefly mentions
issues that may arise when upgrading packages.</para>
remove and upgrade packages. As well as the binary and library files, a
package manager will handle the installation of configuration files. Before
you begin to wonder, NO&mdash;this section will not talk about nor recommend
any particular package manager. What it provides is a roundup of the more
popular techniques and how they work. The perfect package manager for you may
be among these techniques or may be a combination of two or more of these
techniques. This section briefly mentions issues that may arise when upgrading
packages.</para>
<para>Some reasons why no package manager is mentioned in LFS or BLFS
include:</para>
@ -182,9 +184,13 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
</sect3>
<sect3>
<title>LD_PRELOAD Based</title>
<title>Tracing Installation Scripts</title>
<para>In this approach, a library is preloaded before installation. During
<para>In this approach, the commands that the installation scripts perform
are recorded. There are two techniques that one can use:</para>
<para>The <envar>LD_PRELOAD</envar> environment variable can be set to
point to a library to be preloaded before installation. During
installation, this library tracks the packages that are being installed by
attaching itself to various executables such as <command>cp</command>,
<command>install</command>, <command>mv</command> and tracking the system
@ -195,6 +201,9 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
ensure that the package manager does not break anything and logs all the
appropriate files.</para>
<para>The second technique is to use <command>strace</command>, which
logs all system calls made during the execution of the installation
scripts.</para>
</sect3>
<sect3>
@ -209,7 +218,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen>
<para>This approach is used by most of the package managers found in the
commercial distributions. Examples of package managers that follow this
approach are RPM (which, incidentally, is required by the <ulink
url="http://lsbbook.gforge.freestandards.org/package.html#RPM">Linux
url="http://www.linux-foundation.org/en/Specifications">Linux
Standard Base Specification</ulink>), pkg-utils, Debian's apt, and
Gentoo's Portage system. A hint describing how to adopt this style of
package management for LFS systems is located at <ulink

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ENTITY version "SVN-2008-0104">
<!ENTITY releasedate "January 4, 2007">
<!ENTITY version "SVN-20080119">
<!ENTITY releasedate "January 19, 2007">
<!ENTITY milestone "7.0">
<!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->