Tag Qt4, Qt5, and qtchooser and add additional explanations.

Tag autofs and update it's boot script.


git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@11795 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Bruce Dubbs 2013-09-08 04:56:57 +00:00
parent 402f23d37a
commit fb28b3b086
5 changed files with 202 additions and 45 deletions

View File

@ -67,7 +67,7 @@
<!ENTITY lfs-vim-version "7.4">
<!-- End LFS versions -->
<!ENTITY blfs-bootscripts-version "20130725">
<!ENTITY blfs-bootscripts-version "20130908">
<!ENTITY blfs-bootscripts-download "&downloads-root;/blfs-bootscripts-&blfs-bootscripts-version;.tar.bz2">
<!ENTITY blfs-wiki "http://wiki.&lfs-domainname;/blfs/wiki">

View File

@ -33,10 +33,11 @@
<para>
The <application>qtchooser</application> package contains a wrapper used to select
between <application>Qt</application> binary versions.
between <application>Qt</application> binary versions. It is only needed if
both Qt4 and Qt5 are installed for access via the /usr/bin directory.
</para>
&lfs73_checked;
&lfs74_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">

View File

@ -39,7 +39,7 @@
other removable storage devices without requiring the system
administrator to mount the devices.</para>
&lfs73_checked;
&lfs74_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">

View File

@ -105,8 +105,9 @@
<xref linkend="mysql"/>,
<xref linkend="postgresql"/>,
<xref linkend="pulseaudio"/>,
<xref linkend="qtchooser"/> (if also installing Qt5), and
<xref linkend="unixodbc"/>
<xref linkend="unixodbc"/>, and
<xref linkend="qtchooser"/> (runtime, if also installing Qt5 and
installing in /usr)
</para>
<para condition="html" role="usernotes">User Notes:
@ -118,7 +119,6 @@
<title>Installation of Qt</title>
<para>
There are several ways to install a complicated package such as
<application>Qt</application>. The files are not completely position
independent. Installation procedures execute the program
@ -149,6 +149,16 @@
optional <application>qtchooser</application> application.
</para>
<para>
The disadvantage of installing in <filename
class='directory'>/usr</filename> is that the executable filenames
for <application>Qt4</application> and <application>Qt5</application>
conflict if both packages are installed in the
same directory. The instructions below give a workaround for
this problem using the helper program <xref linkend='qtchooser'/>.
This requires renaming the Qt executables with a version suffix.
</para>
<para>
The advantage of installing <application>Qt4</application> in a custom
directory such as <filename
@ -158,26 +168,27 @@
installation and users can easily revert to a previous version by
changing one symbolic link or merely changing the PATH variable. It
also allows a developer to maintain multiple versions of
<application>Qt4</application> for testing.
<application>Qt4</application> or <application>Qt5</application>
for testing.
</para>
<warning>
<caution>
<para>
If you did not install some of the recommended dependencies, examine
<command>./configure --help</command> output to check how to disable
them or use internal versions bundled in the source tarball.
</para>
</warning>
</caution>
<caution>
<warning>
<para>
If <application>Qt</application> is being reinstalled into the
If <application>Qt4</application> is being reinstalled into the
same directory as an existing instance, run the
following commands from a console or non-Qt based window manager.
It overwrites <application>Qt</application> libraries that should
following commands from a console or non-Qt4 based window manager.
It overwrites <application>Qt4</application> libraries that should
not be in use during the install process.
</para>
</caution>
</warning>
<note>
<para>
@ -191,10 +202,16 @@
<bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead>
<para>
Install <application>Qt</application> by running the
Install <application>Qt4</application> by running the
following commands:
</para>
<note><para>
If <emphasis>not</emphasis> also installing <application>Qt5</application>
into the /usr directory, change the entry for -bindir below to /usr/bin.
</para></note>
<screen><userinput>sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
config.tests/unix/libmng/libmng.cpp &amp;&amp;
@ -263,7 +280,8 @@ done
unset file</userinput></screen>
<para>
Symlink the <application>Qt</application> executables into
If also installing Qt5 into /usr,
symlink the <application>Qt4</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
@ -276,6 +294,16 @@ done</userinput></screen>
<bridgehead renderas="sect3">Method 2: Installing in /opt/qt-&qt4-version;</bridgehead>
<para>
This section provides an alternate way to install Qt4 by installing
almost all of the files in the <filename class="directory">/opt</filename>
directory. This allows management of all Qt4 related files in one unit.
For instance, a new version of Qt4 can be installed without over-writing
the existing installation and entire Qt4 instances can be easily removed.
However, it has the disadvantage of needing some extra configuration.
</para>
<para>
Install <application>Qt</application> in /opt/qt-&qt4-version;
by running the following commands:
@ -444,7 +472,7 @@ EOF</userinput></screen>
</para>
<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
<literal># Begin Qt addition
<literal># Begin Qt addition
/opt/qt/lib
@ -453,7 +481,7 @@ EOF
ldconfig</userinput></screen>
<indexterm zone="qt4 qtconfig-qt4">
<indexterm zone="qt4 qt4-config">
<primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
</indexterm>
@ -463,7 +491,7 @@ ldconfig</userinput></screen>
</para>
<screen role="root"><userinput>cat &gt; /etc/profile.d/qt.sh &lt;&lt; EOF
<literal># Begin /etc/profile.d/qt.sh
<literal># Begin /etc/profile.d/qt.sh
QTDIR=/opt/qt
@ -476,7 +504,7 @@ export QTDIR
EOF</userinput></screen>
<para>
For all methods, Create the menu entries for installed applications.
For all methods, create the menu entries for installed applications.
As the <systemitem class="username">root</systemitem> user:
</para>

View File

@ -41,7 +41,7 @@
of <application>Qt</application> is <application>KDE</application>.
</para>
&lfs73_checked;
&lfs74_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
@ -83,7 +83,6 @@
<para role="required">
<xref linkend="alsa-lib"/>,
<xref linkend="mesalib"/>,
<xref linkend="qtchooser"/>,
<xref linkend="xcb-util-image"/>,
<xref linkend="xcb-util-keysyms"/>,
<xref linkend="xcb-util-renderutil"/>, and
@ -114,8 +113,10 @@
<ulink url="http://xkbcommon.org/">libxkbcommon</ulink>,
<xref linkend="mysql"/>,
<xref linkend="postgresql"/>,
<xref linkend="pulseaudio"/>, and
<xref linkend="unixodbc"/>
<xref linkend="pulseaudio"/>,
<xref linkend="unixodbc"/>, and
<xref linkend="qtchooser"/> (runtime, if also installing Qt4 and
installing in /usr)
</para>
<para condition="html" role="usernotes">User Notes:
@ -126,34 +127,104 @@
<sect2 role="installation">
<title>Installation of Qt</title>
<warning>
<para>
There are several ways to install a complicated package such as
<application>Qt</application>. The files are not completely position
independent. Installation procedures execute the program
<command>pkg-config</command> to determine the location of package
executables, libraries, headers, and other files. For
<application>Qt</application>, <command>pkg-config</command> will look
for the appropriate <filename>lib/pkgconfig/Qt*.pc</filename> files
which must be modified if relocating the package. These files are set up
correctly by the build process.
</para>
<para>
The default installation places the files in <filename
class='directory'>/usr/local/qt/</filename>. Many commercial
distributions place the files in the system's <filename
class='directory'>/usr</filename> hierarchy. The package can also be
installed in an arbitrary directory.
</para>
<para>
The advantage of installing in <filename
class='directory'>/usr</filename> is that no updates to the
<filename>/etc/ld.so.conf</filename> or
<filename>/etc/man_db.conf</filename> files are required. The package
files are distributed within several subdirectories of the <filename
class='directory'>/usr</filename> hierarchy. This is the method that
most commercial distributions use.
</para>
<para>
The disadvantage of installing in <filename
class='directory'>/usr</filename> is that the executable filenames
for <application>Qt4</application> and <application>Qt5</application>
conflict if both packages are installed in the
same directory. The instructions below give a workaround for
this problem using the helper program <xref linkend='qtchooser'/>.
This requires renaming the Qt executables with a version suffix.
</para>
<para>
The advantage of installing <application>Qt4</application> in a custom
directory such as <filename
class='directory'>/opt/qt-&qt4-version;</filename> is that it keeps all
the package files consolidated in a dedicated directory hierarchy. By
using this method, an update can be made without overwriting a previous
installation and users can easily revert to a previous version by
changing one symbolic link or merely changing the PATH variable. It
also allows a developer to maintain multiple versions of
<application>Qt4</application> or <application>Qt5</application>
for testing.
</para>
<caution>
<para>
If you did not install some of the recommended dependencies, examine
<command>./configure --help</command> output to check how to disable
them or use internal versions bundled in the source tarball.
</para>
</caution>
<warning>
<para>
If <application>Qt5</application> is being reinstalled into the
same directory as an existing instance, run the
following commands from a console or non-Qt5 based window manager.
It overwrites <application>Qt5</application> libraries that should
not be in use during the install process.
</para>
</warning>
<bridgehead renderas="sect3">Method 1: Installing in /usr</bridgehead>
<para>
Install <application>Qt</application> by running the
Install <application>Qt5</application> by running the
following commands:
</para>
<note><para>
If <emphasis>not</emphasis> also installing <application>Qt4</application>
into the /usr directory, change the entry for -bindir below to /usr/bin.
</para></note>
<screen><userinput>sed -i "s:Context\* context}:&amp;\n%lex-param {YYLEX_PARAM}:" \
qtwebkit/Source/ThirdParty/ANGLE/src/compiler/glslang.y &amp;&amp;
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
qtimageformats/config.tests/libmng/libmng.cpp &amp;&amp;
./configure -prefix /usr \
-sysconfdir /etc/xdg \
-bindir /usr/lib/qt5/bin \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-docdir /usr/share/doc/qt5 \
./configure -prefix /usr \
-sysconfdir /etc/xdg \
-bindir /usr/lib/qt5/bin \
-headerdir /usr/include/qt5 \
-archdatadir /usr/lib/qt5 \
-datadir /usr/share/qt5 \
-docdir /usr/share/doc/qt5 \
-translationdir /usr/share/qt5/translations \
-examplesdir /usr/share/doc/qt5/examples \
-examplesdir /usr/share/doc/qt5/examples \
-confirm-license \
-opensource \
-dbus-linked \
@ -203,7 +274,8 @@ find /usr/lib/*.prl -exec sed -i -e \
'/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;</userinput></screen>
<para>
Symlink the <application>Qt</application> executables into
If also installing Qt4 into /usr,
Symlink the <application>Qt5</application> executables into
<filename class="directory">/usr/bin</filename> by running the
following commands as the
<systemitem class="username">root</systemitem> user:
@ -214,13 +286,10 @@ do
ln -sfv ../lib/qt5/bin/$(basename $file) /usr/bin/$(basename $file)-qt5
done</userinput></screen>
</sect2>
<sect2 role="installation">
<title>Alternate Qt Installation Instructions</title>
<bridgehead renderas="sect3">Method 2: Installing in /opt/qt-&qt5-version;</bridgehead>
<para>
This section provides an alternate way to install Qt by installing
This section provides an alternate way to install Qt4 by installing
almost all of the files in the <filename class="directory">/opt</filename>
directory. This allows management of all Qt related files in one unit.
For instance, a new version of Qt5 can be installed without over-writing
@ -371,10 +440,69 @@ EOF</userinput></screen>
<title>Configuration Information</title>
<para>
Create the menu entries for installed applications.
If you installed <application>Qt</application> in /usr,
create an environment variable needed by certain packages.
As the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>cat &gt; /etc/profile.d/qt.sh &lt;&lt; EOF
<literal># Begin /etc/profile.d/qt.sh
QTDIR=/usr
export QT5DIR
# End /etc/profile.d/qt.sh</literal>
EOF</userinput></screen>
<para>
If you installed <application>Qt5</application> in a location other
than /usr, you need to update the following configuration files so
that <application>Qt5</application> is correctly found by other packages
and system processes.</para>
<para>As the <systemitem class="username">root</systemitem> user, update
the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
run-time cache file:
</para>
<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
<literal># Begin Qt addition
/opt/qt5/lib
# End Qt addition</literal>
EOF
ldconfig</userinput></screen>
<indexterm zone="qt5 qt5-config">
<primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
</indexterm>
<para>
As the <systemitem class="username">root</systemitem> user, create
the <filename>/etc/profile.d/qt.sh</filename> file:
</para>
<screen role="root"><userinput>cat &gt; /etc/profile.d/qt.sh &lt;&lt; EOF
<literal># Begin /etc/profile.d/qt.sh
QT5DIR=/opt/qt5
pathappend /opt/qt5/bin PATH
pathappend /opt/qt5/lib/pkgconfig PKG_CONFIG_PATH
export QT5DIR
# End /etc/profile.d/qt.sh</literal>
EOF</userinput></screen>
<para>
For all methods, create the menu entries for installed applications.
As the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>install -dm755 /usr/share/applications
cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; "EOF"
<literal>[Desktop Entry]
@ -445,7 +573,7 @@ EOF</userinput></screen>
qhelpconverter-qt5, qhelpgenerator-qt5, qmake-qt5, qml1plugindump-qt5,
qmlbundle-qt5, qmlmin-qt5, qmlplugindump-qt5, qmlprofiler-qt5, qmlscene-qt5,
qmltestrunner-qt5, qmlviewer-qt5, rcc-qt5, syncqt.pl-qt5, uic-qt5,
xmlpatterns-qt5 and xmlpatternsvalidator-qt5
xmlpatterns-qt5, and xmlpatternsvalidator-qt5
</seg>
<seg>
libqgsttools_p.so, libQt5Bootstrap.a, libQt5CLucene.so, libQt5Concurrent.so,
@ -457,12 +585,12 @@ EOF</userinput></screen>
libQt5Quick.so, libQt5QuickTest.so, libQt5Script.so, libQt5ScriptTools.so,
libQt5Sensors.so, libQt5SerialPort.so, libQt5Sql.so, libQt5Svg.so, libQt5Test.so,
libQt5UiTools.a, libQt5V8.so, libQt5WebKit.so, libQt5WebKitWidgets.so,
libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so and libQt5Xml.so
libQt5Widgets.so, libQt5X11Extras.so, libQt5XmlPatterns.so, and libQt5Xml.so
</seg>
<seg>
/usr/include/qt5,
/usr/lib/qt5,
/usr/share/doc/qt5 and
/usr/share/doc/qt5, and
/usr/share/qt5
</seg>
</seglistitem>