Index: general/prog/rust.xml
===================================================================
--- general/prog/rust.xml	(revision 4cc77fbdb8ee689e83a874ec83af21641bb70a4d)
+++ general/prog/rust.xml	(revision d396c65272c1d795eb9af21d47b72ebe2f8186ac)
@@ -74,17 +74,23 @@
     <note>
       <para>
-        When you upgrade to a newer version, the new libraries will have various
-        hashes in their names and therefore there will be a mix of versions but
-        only one of each will be usable. A binary distribution would use its
-        package manager to delete all the old <application>rust</application>
-        installation before updating. You may wish to do the same to save space.
-      </para>
-
-      <para>
-        One alternative when working with multiple versions or just updating
-        to a new version is to place the files in the 
-        <filename class="directory">/opt</filename> directory.  The instructions
-        below provide optional commands to support better control of
-        new package versions or reinstallation of the current version.
+        Although BLFS usually installs in <filename
+        class="directory">/usr</filename>, when you later upgrade to a newer
+        version of <application>rust</application> the old libraries in <filename
+        class="directory">/usr/lib/rustlib</filename> will remain, with various
+        hashes in their names, but will not be usable and will waste space. The
+        editors recommend placing the files in the <filename
+        class="directory">/opt</filename> directory.  In particular, if you
+        have reason to rebuild with a modified configuration (e.g. using the
+        shipped LLVM after building with shared LLVM, but perhaps also the
+        reverse situation) it it possible for the install to leave a broken
+        <command>cargo</command> program. In such a situation, either remove
+        the existing installation first, or use a different prefix such as
+        /opt/rustc-&rust-version;-build2.
+      </para>
+
+      <para>
+        If you prefer, you can of course change the prefix to <filename
+        class="directory">/usr</filename> and omit the
+        <command>ldconfig</command> and the actions to add rustc to the PATH.
       </para>
     </note>
@@ -105,5 +111,5 @@
         Rustc defaults to building for ALL supported architectures, using a
         shipped copy of LLVM. In BLFS the build is only for the X86 architecture.
-        If you intend to develop rust crates, this build may not be good 
+        If you intend to develop rust crates, this build may not be good
         enough for your purposes.
       </para>
@@ -188,14 +194,14 @@
 
     <para>
-      If you are going to install into the
-      <filename class="directory">/opt</filename> directory, remove
-      conflicting entries and recreate the required entries. 
+      To install into the
+      <filename class="directory">/opt</filename> directory, remove the symlink
+      and create a new directory (i.e. with a different name if trying a
+      modified build).
       As the <systemitem class="username">root</systemitem> 
       user:
     </para>
 
-<screen role="root"><userinput>rm -rf /opt/rustc /opt/rustc-&rust-version; &amp;&amp;
-mkdir /opt/rustc-&rust-version;             &amp;&amp;
-ln -sv rustc-&rust-version; /opt/rustc</userinput></screen>
+<screen role="root"><userinput>mkdir /opt/rustc-&rust-version;             &amp;&amp;
+ln -svfin rustc-&rust-version; /opt/rustc</userinput></screen>
 
     <note>
@@ -338,4 +344,11 @@
   <sect2 role="commands">
     <title>Command Explanations</title>
+
+    <para>
+      <command>ln -svfn rustc-&rust-version; /opt/rustc</command>: if this is
+      not the first use of the <filename class="directory">/opt/rustc</filename>
+      symlink, overwrite it by forcing, and use the '-n' flag to avoid getting
+      confusing results from e.g. <command>ls -l</command>.
+    </para>
 
     <para>
Index: introduction/welcome/changelog.xml
===================================================================
--- introduction/welcome/changelog.xml	(revision 4cc77fbdb8ee689e83a874ec83af21641bb70a4d)
+++ introduction/welcome/changelog.xml	(revision d396c65272c1d795eb9af21d47b72ebe2f8186ac)
@@ -45,4 +45,15 @@
       <para>January 24th, 2019</para>
       <itemizedlist>
+        <listitem>
+          <para>[ken] - For rust, strongly recommend installing in /opt - this
+          allows multiple versions to be used (fallback, testing a different
+          config, trying a newer version) by merely (re-)running ldconfig after
+          updating the symlink. It also prevents libraries from a previous version
+          taking up space in /usr/lib/rustlib/ (previous /opt versions can easily
+          be removed). Using a new prefix should also prevent the situation where
+          changing the config.toml (e.g. from sys llvm to shipped llvm) builds
+          fine but leaves a broken installation because cargo can no longer find
+          the matching versions of the libraries.</para>
+        </listitem>
         <listitem>
           <para>[ken] - Tweak the details of which rust tests might fail.</para>
