aboutsummaryrefslogtreecommitdiffstats
path: root/chapter08/pkgmgt.xml
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@mengyan1223.wang>2021-07-26 19:34:27 +0800
committerXi Ruoyao <xry111@mengyan1223.wang>2021-07-26 19:34:27 +0800
commitde28837402798daa420ad065fb9155d308a7767e (patch)
treeaa403eb428916f92fa6d46310b589dbdb0738677 /chapter08/pkgmgt.xml
parentff96923bf37ce4beed6b4d0146c454c7df6da95f (diff)
Hopefully, complete strip workaround
In stripping, /usr/bin/bash, /usr/bin/find, and /usr/bin/strip are running. Strip them, and all libraries used by them in /tmp, then install them back. We can't use this for all libraries or binaries: the process above discouples hard links (for example /usr/bin/perl and perl5.34.0). So unfortunately the stripping instruction is now a stupidly long bash script...
Diffstat (limited to 'chapter08/pkgmgt.xml')
-rw-r--r--chapter08/pkgmgt.xml15
1 files changed, 15 insertions, 0 deletions
diff --git a/chapter08/pkgmgt.xml b/chapter08/pkgmgt.xml
index 228a13378..43b9c57d3 100644
--- a/chapter08/pkgmgt.xml
+++ b/chapter08/pkgmgt.xml
@@ -121,6 +121,21 @@
and rerun that command to confirm nothing is still using the
deleted libraries.
</para></listitem>
+
+ <listitem>
+ <para>If a binary or a shared library is overwrote, the processes
+ using the code or data in the binary or library may crash. The
+ correct way to update a binary or a shared library without causing
+ the process to crash is: remove it first, then install the new
+ version into position. The <command>install</command> command
+ provided by <application>Coreutils</application> has already
+ implemented this and most packages use it to install binaries and
+ libraries. So you won't be troubled by this issue most of the time.
+ However, the install process of some packages (notably Mozilla JS
+ in BLFS) just overwrites the file if it exists and causes crash, so
+ it's safer to save your work and close unneeded running processes
+ before updating a package.</para>
+ </listitem>
</itemizedlist>
</sect2>