source: introduction/important/beyond.xml@ ccded7e

11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since ccded7e was 55aa03c, checked in by Ken Moffat <ken@…>, 3 years ago

Change debian pool link in Going Beyond LFS -

Unsurprisingly, ftp to ftp.uk.debian.org no longer works.
Change to http: because the https certificate is for hands.com and subdomains
firefox reports it is NOT valid for ftk.uk.debian.org.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23886 af4574ff-66df-0310-9fd7-8a98e5e911e0

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