source: introduction/important/beyond.xml@ eede1a3

11.0 ken/refactor-virt lazarus qt5new trunk upgradedb
Last change on this file since eede1a3 was 4a570af1, checked in by Xi Ruoyao <xry111@…>, 9 months ago

secure url

  • Property mode set to 100644
File size: 11.2 KB
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
8<sect1 id="beyond" xreflabel="Going Beyond BLFS">
9 <?dbhtml filename="beyond.html"?>
11 <sect1info>
12 <date>$Date$</date>
13 </sect1info>
15 <title>Going Beyond BLFS</title>
17 <para>The packages that are installed in this book are only the tip of the
18 iceberg. We hope that the experience you gained with the LFS book and
19 the BLFS book will give you the background needed to compile, install
20 and configure packages that are not included in this book.</para>
22 <para>When you want to install a package to a location other than
23 <filename class='directory'>/</filename>, or
24 <filename class='directory'>/usr</filename>, you are installing
25 outside the default environment settings on most machines. The following
26 examples should assist you in determining how to correct this situation.
27 The examples cover the complete range of settings that may need
28 updating, but they are not all needed in every situation.</para>
30 <itemizedlist>
31 <listitem>
32 <para>Expand the <envar>PATH</envar> to include
33 <filename class='directory'>$PREFIX/bin</filename>.</para>
34 </listitem>
35 <listitem>
36 <para>Expand the <envar>PATH</envar> for
37 <systemitem class="username">root</systemitem> to include
38 <filename class='directory'>$PREFIX/sbin</filename>.</para>
39 </listitem>
40 <listitem>
41 <para>Add <filename class='directory'>$PREFIX/lib</filename>
42 to <filename>/etc/</filename> or expand
43 <envar>LD_LIBRARY_PATH</envar> to include it. Before using the latter
44 option, check out <ulink
45 url=""/>.
46 If you modify <filename>/etc/</filename>, remember to update
47 <filename>/etc/</filename> by executing
48 <command>ldconfig</command> as the
49 <systemitem class="username">root</systemitem> user.</para>
50 </listitem>
51 <listitem>
52 <para>Add <filename class='directory'>$PREFIX/man</filename>
53 to <filename>/etc/man_db.conf</filename> or expand
54 <envar>MANPATH</envar>.</para>
55 </listitem>
56 <listitem>
57 <para>Add <filename class='directory'>$PREFIX/info</filename>
58 to <envar>INFOPATH</envar>.</para>
59 </listitem>
60 <listitem>
61 <para>Add <filename class='directory'>$PREFIX/lib/pkgconfig</filename>
62 to <envar>PKG_CONFIG_PATH</envar>. Some packages are now installing
63 <filename class='extension'>.pc</filename> files in
64 <filename class='directory'>$PREFIX/share/pkgconfig</filename>, so you may
65 have to include this directory also.</para>
66 </listitem>
67 <listitem>
68 <para>Add <filename class='directory'>$PREFIX/include</filename> to
69 <envar>CPPFLAGS</envar> when compiling packages that depend on
70 the package you installed.</para>
71 </listitem>
72 <listitem>
73 <para>Add <filename class='directory'>$PREFIX/lib</filename> to
74 <envar>LDFLAGS</envar> when compiling packages that depend on a library
75 installed by the package.</para>
76 </listitem>
77 </itemizedlist>
79 <para>If you are in search of a package that is not in the book, the following
80 are different ways you can search for the desired package.</para>
82 <itemizedlist>
83 <listitem>
84 <para>If you know the name of the package, then search Freecode for
85 it at <ulink url=""/>. Also search Google at
86 <ulink url=""/>. Sometimes a search for the
87 <filename class='extension'>rpm</filename> at
88 <ulink url=""/> or the
89 <filename class='extension'>deb</filename> at
90 <ulink url=""/> can
91 also lead to a link to the package.</para>
92 </listitem>
93 <listitem>
94 <para>If you know the name of the executable, but not the package
95 that the executable belongs to, first try a Google search with the name
96 of the executable. If the results are overwhelming, try searching for the
97 given executable in the Debian repository at <ulink
98 url=""/>.</para>
99 </listitem>
100 </itemizedlist>
102 <para>Some general hints on handling new packages:</para>
104 <itemizedlist>
105 <listitem>
106 <para>Many of the newer packages follow the <command>./configure
107 &amp;&amp; make &amp;&amp; make install</command> process.
108 Help on the options accepted by configure can be obtained via the
109 command <command>./configure --help</command>.</para>
110 </listitem>
111 <listitem>
112 <para>Most of the packages contain documentation on compiling and
113 installing the package. Some of the documents are excellent, some not so
114 excellent. Check out the homepage of the package for any additional and
115 updated hints for compiling and configuring the package.</para>
116 </listitem>
117 <listitem>
118 <para>If you are having a problem compiling the package, try
119 searching the LFS archives at
120 <ulink url="https://www.&lfs-domainname;/search.html"/> for the error or if
121 that fails, try searching Google. Often, a distribution will have already
122 solved the problem (many of them use development versions of packages, so
123 they see the changes sooner than those of us who normally use stable released
124 versions). But be cautious - all builders tend to carry patches which are no
125 longer necessary, and to have fixes which are only required because of their
126 particular choices in how they build a package. You may have to search
127 deeply to find a fix for the package version you are trying to use, or even
128 to find the package (names are sometimes not what you might expect, e.g.
129 <application>ghostscript</application> often has a prefix or a suffix in its
130 name), but the following notes might help, particularly for those who, like
131 the editors, are trying to build the latest versions and encountering
132 problems:</para>
133 <itemizedlist>
134 <listitem>
135 <para>Arch <ulink url=""/> - enter
136 the package name in the 'Keywords' box, select the package name,
137 select the 'Source Files' field, and then select the
138 <filename>PKGBUILD</filename> entry to see how they build this
139 package.</para>
140 </listitem>
141 <listitem>
142 <para>Debian
143 <!-- 2020-11-11 : ftp hangs trying to connect, presumably removed.
144 Use http becasue firefox says the certificate at this gb site is
145 not valid for -->
146 <ulink url=""/> (use your country's
147 version if there is one) - the source will be in .tar.gz tarballs (either
148 the original upstream <filename class='extension'>.orig</filename> source,
149 or else a <filename>dfsg</filename> containing those parts which comply
150 with debian's free software guidelines) accompanied by versioned .diff.gz
151 or .tar.gz additions. These additions often show how the package is built,
152 and may contain patches. In the .diff.gz versions, any patches create files
153 in <filename class="directory">debian/patches</filename>.</para>
154 </listitem>
155 <listitem>
156 <para>Fedora package source gets reorganized from time to time.
157 At the moment the package source for rpms is at <ulink
158 url=""/> and from there
159 you can try putting a package name in the search box. If the package is
160 found you can look at the files (specfile to control the build, various
161 patches) or the commits. If that fails, you can download
162 an srpm (source rpm) and using <application>rpm2cpio</application> (see
163 the Tip at the bottom of the page). For rpms go to <ulink
164 url=""/> and then choose
165 which repo you wish to look at - development/rawhide is the latest
166 development, or choose releases for what was shipped in a release,
167 updates for updates to a release, or updates/testing for the latest
168 updates which might work or might have problems.
169 </para>
170 </listitem>
171 <listitem>
172 <para>Gentoo - the mirrors for ebuilds and patches seem to be well-hidden,
173 and they change frequently. Also, if you have found a mirror, you need to
174 know which directory the application has been assigned to. The ebuilds
175 themselves can be found at <ulink url=""/> -
176 use the search field. If there are any patches, a mirror will have them
177 in the <filename class="directory">files/</filename> directory. Depending
178 on your browser, or the mirror, you might need to download the ebuild to
179 be able to read it. Treat the ebuild as a sort of pseudo-code / shell
180 combination - look in particular for <command>sed</command> commands and
181 patches, or hazard a guess at the meanings of the functions such as
182 <command>dodoc</command>.</para>
183 </listitem>
184 <listitem>
185 <para>openSUSE provide a rolling release, some package versions are in
186 <ulink url=""/>
187 but others are in ../update/openSUSE-current/src - the
188 source only seems to be available in source rpms.</para>
189 </listitem>
190 <listitem>
191 <para>Slackware - the official package browser is currently broken. The
192 site at <ulink url=""/> has current and previous
193 versions in their unofficial repository with links to homepages, downloads,
194 and some individual files, particularly the <filename>.SlackBuild</filename>
195 files.</para>
196 </listitem>
197 <listitem>
198 <para>Ubuntu <ulink url=""/> - see the
199 debian notes above.</para>
200 </listitem>
201 </itemizedlist>
202 <para>If everything else fails, try the blfs-support mailing-list.</para>
203 </listitem>
204 </itemizedlist>
206 <tip>
207 <para>If you have found a package that is only available in
208 <filename class='extension'>.deb</filename> or
209 <filename class='extension'>.rpm</filename>
210 format, there are two small scripts, <command>rpm2targz</command> and
211 <command>deb2targz</command> that are available at
212 <ulink url="&downloads-project;/deb2targz.tar.bz2"/> and
213 <ulink url="&downloads-project;/rpm2targz.tar.bz2"/> to convert the archives
214 into a simple <filename>tar.gz</filename> format.</para>
215 <para>You may also find an rpm2cpio script useful. The Perl version in the
216 linux kernel archives at <ulink
217 url=""/>
218 works for most source rpms. The rpm2targz script will use an rpm2cpio script
219 or binary if one is on your path. Note that rpm2cpio will unpack a source
220 rpm in the current directory, giving a tarball, a spec file, and perhaps patches
221 or other files.</para>
222 </tip>
Note: See TracBrowser for help on using the repository browser.