diff options
Diffstat (limited to 'chapter06/pkgmgt.xml')
-rw-r--r-- | chapter06/pkgmgt.xml | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/chapter06/pkgmgt.xml b/chapter06/pkgmgt.xml index e6d9bae3f..76ea123e2 100644 --- a/chapter06/pkgmgt.xml +++ b/chapter06/pkgmgt.xml @@ -1,14 +1,15 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" - "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ + "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ <!ENTITY % general-entities SYSTEM "../general.ent"> %general-entities; ]> <sect1 id="ch-system-pkgmgt"> - <title>Package Management</title> <?dbhtml filename="pkgmgt.html"?> + <title>Package Management</title> + <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—this section @@ -18,7 +19,8 @@ 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> + <para>Some reasons why no package manager is mentioned in LFS or BLFS + include:</para> <itemizedlist> <listitem> @@ -37,11 +39,13 @@ the <ulink url="&hints-root;">Hints subproject</ulink> and see if one of them fits your need.</para> - <note><para>As no particular package management technique is mentioned in LFS, - the commands in the remainder of this book must be performed while logged in - as user <emphasis>root</emphasis> and no longer as user - <emphasis>lfs</emphasis>. Also, double check that <envar>$LFS</envar> is set. - </para></note> + <note> + <para>As no particular package management technique is mentioned in LFS, + the commands in the remainder of this book must be performed while logged in + as user <systemitem class="username">root</systemitem> and no longer as user + <systemitem class="username">lfs</systemitem>. Also, double check that + <envar>$LFS</envar> is set.</para> + </note> <sect2> <title>Upgrade Issues</title> @@ -53,16 +57,14 @@ <itemizedlist> <listitem> - <para>If one of the toolchain packages - (<application>Glibc</application>, <application>GCC</application> or - <application>Binutils</application>) needs to be upgraded to a newer - minor version, it is safer to rebuild LFS. Though you - <emphasis>may</emphasis> be able to get by rebuilding all the packages - in their dependency order, we do not recommend it. For example, if - glibc-2.2.x needs to be updated to glibc-2.3.x, it is safer to rebuild. - For micro version updates, a simple reinstallation usually works, but - is not guaranteed. For example, upgrading from glibc-2.3.4 to - glibc-2.3.5 will not usually cause any problems.</para> + <para>If one of the toolchain packages (Glibc, GCC or Binutils) needs + to be upgraded to a newer minor version, it is safer to rebuild LFS. + Though you <emphasis>may</emphasis> be able to get by rebuilding all + the packages in their dependency order, we do not recommend it. For + example, if glibc-2.2.x needs to be updated to glibc-2.3.x, it is safer + to rebuild. For micro version updates, a simple reinstallation usually + works, but is not guaranteed. For example, upgrading from glibc-2.3.4 + to glibc-2.3.5 will not usually cause any problems.</para> </listitem> <listitem> @@ -109,6 +111,7 @@ and know what files are installed by each package. Some users also do not need any package management because they plan on rebuilding the entire system when a package is changed.</para> + </sect3> <sect3> @@ -129,6 +132,7 @@ <envar>INFOPATH</envar> and <envar>CPPFLAGS</envar> need to be expanded to include <filename>/usr/pkg/foo</filename>. For more than a few packages, this scheme becomes unmanageable.</para> + </sect3> <sect3> @@ -168,11 +172,11 @@ make install</userinput></screen> make make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> - <para>Most packages support this approach, but there are some which do - not. For the non-compliant packages, you may either need to manually - install the package, or you may find that it is easier to install some - problematic packages into <filename class='directory'>/opt</filename>. - </para> + <para>Most packages support this approach, but there are some which do not. + For the non-compliant packages, you may either need to manually install the + package, or you may find that it is easier to install some problematic + packages into <filename class='directory'>/opt</filename>.</para> + </sect3> <sect3> @@ -190,6 +194,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> the package manager. Also, this scheme can only be used when one package is installed at a time. The logs are not reliable if two packages are being installed on two different consoles.</para> + </sect3> <sect3> @@ -205,6 +210,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> installation. Therefore, it is advised that one performs some tests to ensure that the package manager does not break anything and logs all the appropriate files.</para> + </sect3> <sect3> @@ -214,8 +220,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> tree as described in the Symlink style package management. After the installation, a package archive is created using the installed files. This archive is then used to install the package either on the local - machine or can even be used to install the package on other machines. - </para> + machine or can even be used to install the package on other machines.</para> <para>This approach is used by most of the package managers found in the commercial distributions. Examples of package managers that follow this @@ -225,6 +230,7 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> Gentoo's Portage system. A hint describing how to adopt this style of package management for LFS systems is located at <ulink url="&hints-root;/fakeroot.txt"/>.</para> + </sect3> <sect3> @@ -236,8 +242,8 @@ make DESTDIR=/usr/pkg/libfoo/1.1 install</userinput></screen> standard locations. Files belonging to a package are easily identified by checking the user ID. The features and shortcomings of this approach are too complex to describe in this section. For the details please see the - hint at <ulink - url="&hints-root;/more_control_and_pkg_man.txt"/>.</para> + hint at <ulink url="&hints-root;/more_control_and_pkg_man.txt"/>.</para> + </sect3> </sect2> |