Changeset 0d7900a for introduction/important
- Timestamp:
- 02/11/2013 06:51:17 PM (11 years ago)
- Branches:
- 10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
- Children:
- 8f83eeb
- Parents:
- a161de9
- Location:
- introduction/important
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
introduction/important/libraries.xml
ra161de9 r0d7900a 29 29 systems they are the only type available.</para> 30 30 31 <para>On almost all Linux platforms there are also shared libraries 32 (libfoo.so) - one copy of the library is loaded into virtual memory, and 33 shared by all the programs which call any of its functions. This is space 31 <para>On almost all Linux platforms there are also shared libraries 32 (libfoo.so) - one copy of the library is loaded into virtual memory, and 33 shared by all the programs which call any of its functions. This is space 34 34 efficient.</para> 35 35 … … 55 55 program is (re)started (provided the library major version is unchanged, 56 56 e.g. going from libfoo.so.2.0 to libfoo.so.2.1. Going to libfoo.so.3 57 will require recompilation - <command>ldd</command> can be used to find 58 which programs use the old version). If a program is linked to a static 59 library, the program always has to be recompiled. If you know which 60 programs are linked to a particular static library, this is merely an 61 annoyance. But usually you will <emphasis>not</emphasis> know which 57 will require recompilation - <command>ldd</command> can be used to find 58 which programs use the old version). If a program is linked to a static 59 library, the program always has to be recompiled. If you know which 60 programs are linked to a particular static library, this is merely an 61 annoyance. But usually you will <emphasis>not</emphasis> know which 62 62 programs to recompile.</para> 63 63 … … 65 65 moving a shared library to <filename class="directory">/lib</filename> 66 66 accidentally breaking the <literal>.so</literal> symlink in 67 <filename class="directory">/usr/lib</filename> while keeping the static 68 library in <filename class="directory">/lib</filename>, the static library 67 <filename class="directory">/usr/lib</filename> while keeping the static 68 library in <filename class="directory">/lib</filename>, the static library 69 69 will be silently linked into the programs which need it.</para> 70 70 … … 72 72 at the end of the installation of every package. Write a script to find all 73 73 the static libraries in <filename class="directory">/usr/lib</filename> or 74 wherever you are installing to, and either move them to another directory so 75 that they are no longer found by the linker, or rename them so that libfoo.a 76 becomes e.g. libfoo.a.hidden. The static library can then be temporarily 77 restored if it is ever needed, and the package needing it can be 78 identified. You may choose to exclude some of the static libraries from 74 wherever you are installing to, and either move them to another directory so 75 that they are no longer found by the linker, or rename them so that libfoo.a 76 becomes e.g. libfoo.a.hidden. The static library can then be temporarily 77 restored if it is ever needed, and the package needing it can be 78 identified. You may choose to exclude some of the static libraries from 79 79 glibc if you do this (<filename>libc_nonshared.a, libg.a, libieee.a, libm.a, 80 libpthread_nonshared.a, librpcsvc.a, libsupc++.a</filename>) to simplify 80 libpthread_nonshared.a, librpcsvc.a, libsupc++.a</filename>) to simplify 81 81 compilation.</para> 82 82 83 83 <!-- versions hardcoded in this para, it's a comment on those versions --> 84 <para>If you use this approach, you may discover that more packages than 84 <para>If you use this approach, you may discover that more packages than 85 85 you were expecting use a static library. That was the case with 86 <application>nettle-2.4</application> in its default static-only 86 <application>nettle-2.4</application> in its default static-only 87 87 configuration: It was required by <application>GnuTLS-3.0.19</application>, 88 but also linked into package(s) which used 89 <application>GnuTLS</application>, such as 88 but also linked into package(s) which used 89 <application>GnuTLS</application>, such as 90 90 <application>glib-networking-2.32.3</application>.</para> 91 91 92 92 <para>Many packages put some of their common functions into a static 93 93 library which is only used by the programs within the package and, 94 crucially, the library is <emphasis>not</emphasis> installed as a 95 standalone library. These internal libraries are not a problem - if the 96 package has to be rebuilt to fix a bug or vulnerability, nothing else is 94 crucially, the library is <emphasis>not</emphasis> installed as a 95 standalone library. These internal libraries are not a problem - if the 96 package has to be rebuilt to fix a bug or vulnerability, nothing else is 97 97 linked to them.</para> 98 98 99 <para>When BLFS mentions system libraries, it means shared versions of 100 libraries. Some packages such as <xref linkend="firefox"/> and 101 <xref linkend="gs"/> include many other libraries. When they link to them, 102 they link statically so this also makes the programs bigger. The version 103 they ship is often older than the version used in the system, so it may 104 contain bugs - sometimes developers go to the trouble of fixing bugs in 99 <para>When BLFS mentions system libraries, it means shared versions of 100 libraries. Some packages such as <xref linkend="firefox"/> and 101 <xref linkend="gs"/> include many other libraries. When they link to them, 102 they link statically so this also makes the programs bigger. The version 103 they ship is often older than the version used in the system, so it may 104 contain bugs - sometimes developers go to the trouble of fixing bugs in 105 105 their included libraries, other times they do not.</para> 106 106 … … 109 109 <xref linkend="libpng"/> if used for <xref linkend="firefox"/>). 110 110 Occasionally, a package ships an old library and can no longer link to 111 the current version, but can link to an older version. In this case, BLFS 112 will usually just use the shipped version. Sometimes the included library 113 is no longer developed separately, or its upstream is now the same as the 114 package's upstream and you have no other packages which will use it. 111 the current version, but can link to an older version. In this case, BLFS 112 will usually just use the shipped version. Sometimes the included library 113 is no longer developed separately, or its upstream is now the same as the 114 package's upstream and you have no other packages which will use it. 115 115 In those cases, you might decide to use the included static library even if 116 116 you usually prefer to use system libraries.</para> -
introduction/important/locale-issues.xml
ra161de9 r0d7900a 113 113 this causes problems with UTF-8 encoded TeX documents created in 114 114 Linux. On Windows, most applications will assume that these documents 115 have been created using the default Windows 8-bit encoding. 115 have been created using the default Windows 8-bit encoding. 116 116 </para> 117 117
Note:
See TracChangeset
for help on using the changeset viewer.