123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 |
- msgid ""
- msgstr ""
- "Project-Id-Version: PACKAGE VERSION\n"
- "POT-Creation-Date: 2020-08-08 19:28+0800\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
- "Language-Team: LANGUAGE <LL@li.org>\n"
- "Language: zh_CN\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- "X-Generator: Translate Toolkit 2.2.5\n"
- #. type: Content of: <sect1><sect1info><address>
- #, no-wrap
- msgid "&glibc-url;"
- msgstr "&glibc-url;"
- #. type: Content of: <sect1><sect1info>
- msgid ""
- "<productname>glibc</productname> <productnumber>&glibc-version;</"
- "productnumber> <placeholder type=\"address\" id=\"0\"/>"
- msgstr ""
- "<productname>glibc</productname> <productnumber>&glibc-version;</"
- "productnumber> <placeholder type=\"address\" id=\"0\"/>"
- #. type: Content of: <sect1><title>
- msgid "Glibc-&glibc-version;"
- msgstr "Glibc-&glibc-version;"
- #. type: Content of: <sect1><indexterm><primary>
- msgid "Glibc"
- msgstr "Glibc"
- #. type: Content of: <sect1><indexterm><secondary>
- msgid "tools"
- msgstr "工具"
- #. type: Content of: <sect1><sect2><segmentedlist><segtitle>
- msgid "&buildtime;"
- msgstr "&buildtime;"
- #. type: Content of: <sect1><sect2><segmentedlist><segtitle>
- msgid "&diskspace;"
- msgstr "&diskspace;"
- #. type: Content of: <sect1><sect2><segmentedlist><seglistitem><seg>
- msgid "&glibc-tmp-sbu;"
- msgstr "&glibc-tmp-sbu;"
- #. type: Content of: <sect1><sect2><segmentedlist><seglistitem><seg>
- msgid "&glibc-tmp-du;"
- msgstr "&glibc-tmp-du;"
- #. type: Content of: <sect1><sect2><title>
- msgid "Installation of Glibc"
- msgstr "安装 Glibc"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "First, create a symbolic link for LSB compliance. Additionally, for x86_64, "
- "create a compatibility symbolic link required for proper operation of the "
- "dynamic library loader:"
- msgstr ""
- "首先,创建一个 LSB 兼容性符号链接。另外,对于 x86_64,创建一个动态链接器正常"
- "工作所必须的符号链接:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid ""
- "<userinput remap=\"pre\">case $(uname -m) in\n"
- " i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3\n"
- " ;;\n"
- " x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64\n"
- " ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3\n"
- " ;;\n"
- "esac</userinput>"
- msgstr ""
- "<userinput remap=\"pre\">case $(uname -m) in\n"
- " i?86) ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3\n"
- " ;;\n"
- " x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64\n"
- " ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3\n"
- " ;;\n"
- "esac</userinput>"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "Some of the Glibc programs use the non-FHS compliant <filename class="
- "\"directory\">/var/db</filename> directory to store their runtime data. "
- "Apply the following patch to make such programs store their runtime data in "
- "the FHS-compliant locations:"
- msgstr ""
- "一些 Glibc 程序使用与 FHS 不兼容的 <filename class=\"directory\">/var/db</"
- "filename> 目录存放它们的运行时数据。下面应用一个补丁,使得这些程序在 FHS 兼容"
- "的位置存放运行时数据:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid "<userinput remap=\"pre\">patch -Np1 -i ../glibc-&glibc-version;-fhs-1.patch</userinput>"
- msgstr "<userinput remap=\"pre\">patch -Np1 -i ../glibc-&glibc-version;-fhs-1.patch</userinput>"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "The Glibc documentation recommends building Glibc in a dedicated build "
- "directory:"
- msgstr "Glibc 文档推荐在一个专用目录中构建 Glibc:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid ""
- "<userinput remap=\"pre\">mkdir -v build\n"
- "cd build</userinput>"
- msgstr ""
- "<userinput remap=\"pre\">mkdir -v build\n"
- "cd build</userinput>"
- #. type: Content of: <sect1><sect2><para>
- msgid "Next, prepare Glibc for compilation:"
- msgstr "下面,准备编译 Glibc:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid ""
- "<userinput remap=\"configure\">../configure \\\n"
- " --prefix=/usr \\\n"
- " --host=$LFS_TGT \\\n"
- " --build=$(../scripts/config.guess) \\\n"
- " --enable-kernel=&min-kernel; \\\n"
- " --with-headers=$LFS/usr/include \\\n"
- " libc_cv_slibdir=/lib</userinput>"
- msgstr ""
- "<userinput remap=\"configure\">../configure \\\n"
- " --prefix=/usr \\\n"
- " --host=$LFS_TGT \\\n"
- " --build=$(../scripts/config.guess) \\\n"
- " --enable-kernel=&min-kernel; \\\n"
- " --with-headers=$LFS/usr/include \\\n"
- " libc_cv_slibdir=/lib</userinput>"
- #. type: Content of: <sect1><sect2><variablelist><title>
- msgid "The meaning of the configure options:"
- msgstr "配置选项的含义:"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><term>
- msgid ""
- "<parameter>--host=$LFS_TGT, --build=$(../scripts/config.guess)</parameter>"
- msgstr ""
- "<parameter>--host=$LFS_TGT, --build=$(../scripts/config.guess)</parameter>"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><listitem><para>
- msgid ""
- "The combined effect of these switches is that Glibc's build system "
- "configures itself to be cross-compiled, using the cross-linker and cross-"
- "compiler in <filename class=\"directory\">$LFS/tools</filename>."
- msgstr ""
- "在它们的共同作用下,Glibc 的构建系统将自身配置为使用 <filename class="
- "\"directory\">$LFS/tools</filename> 中的交叉链接器和交叉编译器,进行交叉编"
- "译。"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><term>
- msgid "<parameter>--enable-kernel=&min-kernel;</parameter>"
- msgstr "<parameter>--enable-kernel=&min-kernel;</parameter>"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><listitem><para>
- msgid ""
- "This tells Glibc to compile the library with support for &min-kernel; and "
- "later Linux kernels. Workarounds for older kernels are not enabled."
- msgstr ""
- "该选项告诉 Glibc 编译出支持 &min-kernel; 版或者更新的 Linux 内核,这样就不会"
- "使用那些为更老内核准备的替代方案。"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><term>
- msgid "<parameter>--with-headers=$LFS/usr/include</parameter>"
- msgstr "<parameter>--with-headers=$LFS/usr/include</parameter>"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><listitem><para>
- msgid ""
- "This tells Glibc to compile itself against the headers recently installed to "
- "the $LFS/usr/include directory, so that it knows exactly what features the "
- "kernel has and can optimize itself accordingly."
- msgstr ""
- "该选项告诉 Glibc 在编译过程中,使用 $LFS/usr/include 目录中的头文件,这样它就"
- "知道内核拥有哪些特性,并据此对自身进行优化。"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><term>
- msgid "<parameter>libc_cv_slibdir=/lib</parameter>"
- msgstr "<parameter>libc_cv_slibdir=/lib</parameter>"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><listitem><para>
- msgid ""
- "This ensures that the library is installed in /lib instead of the default /"
- "lib64 on 64 bit machines."
- msgstr "在 64 位机器上,这保证将库安装到 /lib,而不是默认的 /lib64。"
- #. type: Content of: <sect1><sect2><para>
- msgid "During this stage the following warning might appear:"
- msgstr "在当前阶段,可能出现下列警告:"
- #. type: Content of: <sect1><sect2><blockquote><screen>
- #, no-wrap
- msgid ""
- "<computeroutput>configure: WARNING:\n"
- "*** These auxiliary programs are missing or\n"
- "*** incompatible versions: msgfmt\n"
- "*** some features will be disabled.\n"
- "*** Check the INSTALL file for required versions.</computeroutput>"
- msgstr ""
- "<computeroutput>configure: WARNING:\n"
- "*** These auxiliary programs are missing or\n"
- "*** incompatible versions: msgfmt\n"
- "*** some features will be disabled.\n"
- "*** Check the INSTALL file for required versions.</computeroutput>"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "The missing or incompatible <command>msgfmt</command> program is generally "
- "harmless. This <command>msgfmt</command> program is part of the Gettext "
- "package which the host distribution should provide."
- msgstr ""
- "<command>msgfmt</command> 程序的缺失或不兼容一般是无害的。<command>msgfmt</"
- "command> 程序是 Gettext 软件包的一部分,宿主发行版应该提供它。"
- #. type: Content of: <sect1><sect2><note><para>
- msgid ""
- "There have been reports that this package may fail when building as a "
- "\"parallel make\". If this occurs, rerun the make command with a \"-j1\" "
- "option."
- msgstr ""
- "有报告称该软件包在并行构建时可能失败,如果发生了这种情况,加上 \"-j1\" 选项重"
- "新执行 make 命令。"
- #. type: Content of: <sect1><sect2><para>
- msgid "Compile the package:"
- msgstr "编译该软件包:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid "<userinput remap=\"make\">make</userinput>"
- msgstr "<userinput remap=\"make\">make</userinput>"
- #. type: Content of: <sect1><sect2><para>
- msgid "Install the package:"
- msgstr "安装该软件包:"
- #. type: Content of: <sect1><sect2><warning><para>
- msgid ""
- "If <envar>LFS</envar> is not properly set, and despite the recommendations, "
- "you are building as root, the next command will install the newly built "
- "glibc to your host system, which most likely will render it unusable. So "
- "double check that the environment is correctly set for user <systemitem "
- "class=\"username\">lfs</systemitem>."
- msgstr ""
- "如果 <envar>LFS</envar> 没有正确设定,而且您不顾本书的建议以 root 用户身份进"
- "行构建,下面的命令会将新构建的 glibc 安装到您的宿主系统中,这很可能导致宿主系"
- "统完全无法使用。因此,请再次检查该环境变量是否已经为 <systemitem class="
- "\"username\">lfs</systemitem> 用户设定好。"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid "<userinput remap=\"install\">make DESTDIR=$LFS install</userinput>"
- msgstr "<userinput remap=\"install\">make DESTDIR=$LFS install</userinput>"
- #. type: Content of: <sect1><sect2><variablelist><title>
- msgid "The meaning of the <command>make install</command> option:"
- msgstr "<command>make install</command> 选项的含义:"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><term>
- msgid "<parameter>DESTDIR=$LFS</parameter>"
- msgstr "<parameter>DESTDIR=$LFS</parameter>"
- #. type: Content of: <sect1><sect2><variablelist><varlistentry><listitem><para>
- msgid ""
- "The <envar>DESTDIR</envar> make variable is used by almost all packages to "
- "define the location where the package should be installed. If it is not set, "
- "it defaults to the root (<filename class=\"directory\">/</filename>) "
- "directory. Here we specify that the package be installed in <filename class="
- "\"directory\">$LFS </filename>, which will become the root after <xref "
- "linkend= \"ch-tools-chroot\"/>."
- msgstr ""
- "多数软件包使用 <envar>DESTDIR</envar> 变量指定软件包应该安装的位置。如果不设"
- "定它,默认值为根 (<filename class=\"directory\">/</filename>) 目录。这里我们"
- "指定将软件包安装到 <filename class=\"directory\">$LFS</filename>,它在<xref "
- "linkend=\"ch-tools-chroot\"/>之后将成为根目录。"
- #. type: Content of: <sect1><sect2><caution><para>
- msgid ""
- "At this point, it is imperative to stop and ensure that the basic functions "
- "(compiling and linking) of the new toolchain are working as expected. To "
- "perform a sanity check, run the following commands:"
- msgstr ""
- "现在我们不可避免地要停下确认新工具链的各基本功能 (编译和链接) 能如我们所预期"
- "的那样工作。执行以下命令进行完整性检查:"
- #. type: Content of: <sect1><sect2><caution><screen>
- #, no-wrap
- msgid ""
- "<userinput>echo 'int main(){}' > dummy.c\n"
- "$LFS_TGT-gcc dummy.c\n"
- "readelf -l a.out | grep '/ld-linux'</userinput>"
- msgstr ""
- "<userinput>echo 'int main(){}' > dummy.c\n"
- "$LFS_TGT-gcc dummy.c\n"
- "readelf -l a.out | grep '/ld-linux'</userinput>"
- #. type: Content of: <sect1><sect2><caution><para>
- msgid ""
- "If everything is working correctly, there should be no errors, and the "
- "output of the last command will be of the form:"
- msgstr ""
- "如果一切正常,那么应该没有错误消息,而且最后一行命令应该输出下列格式的内容:"
- #. type: Content of: <sect1><sect2><caution><screen>
- #, no-wrap
- msgid "<computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput>"
- msgstr "<computeroutput>[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]</computeroutput>"
- #. type: Content of: <sect1><sect2><caution><para>
- msgid ""
- "Note that for 32-bit machines, the interpreter name will be <filename>/lib/"
- "ld-linux.so.2</filename>."
- msgstr ""
- "注意,对于 32 位机器,解释器的名字将会是 <filename>/lib/ld-linux.so.2</"
- "filename>。"
- #. type: Content of: <sect1><sect2><caution><para>
- msgid ""
- "If the output is not shown as above or there was no output at all, then "
- "something is wrong. Investigate and retrace the steps to find out where the "
- "problem is and correct it. This issue must be resolved before continuing on."
- msgstr ""
- "如果输出不像上面描述的那样,或者根本没有输出,就说明出了问题。检查并重新跟踪"
- "各个步骤,找到出问题的地方并修正它。在继续构建之前,必须解决这个问题。"
- #. type: Content of: <sect1><sect2><caution><para>
- msgid "Once all is well, clean up the test files:"
- msgstr "检验步骤顺利完成后,清理测试文件:"
- #. type: Content of: <sect1><sect2><caution><screen>
- #, no-wrap
- msgid "<userinput>rm -v dummy.c a.out</userinput>"
- msgstr "<userinput>rm -v dummy.c a.out</userinput>"
- #. type: Content of: <sect1><sect2><note><para>
- msgid ""
- "Building packages in the next chapter will serve as an additional check that "
- "the toolchain has been built properly. If some package, especially binutils-"
- "pass2 or gcc-pass2, fails to build, it is an indication that something has "
- "gone wrong with the previous Binutils, GCC, or Glibc installations."
- msgstr ""
- "在下一章中,构建各软件包的过程可以作为对工具链是否正常构建的额外检查。如果 一"
- "些软件包,特别是第二遍的 Binutils 或者 GCC 不能构建,说明在之前安装 "
- "Binutils,GCC,或者 Glibc 时出了问题。"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "Now that our cross-toolchain is complete, finalize the installation of the "
- "limits.h header. For doing so, run a utility provided by the GCC developers:"
- msgstr ""
- "现在我们的交叉工具链已经构建完成,可以完成 limits.h 头文件的安装。为此,运行 "
- "GCC 开发者提供的一个工具:"
- #. type: Content of: <sect1><sect2><screen>
- #, no-wrap
- msgid "<userinput>$LFS/tools/libexec/gcc/$LFS_TGT/&gcc-version;/install-tools/mkheaders</userinput>"
- msgstr "<userinput>$LFS/tools/libexec/gcc/$LFS_TGT/&gcc-version;/install-tools/mkheaders</userinput>"
- #. type: Content of: <sect1><sect2><para>
- msgid ""
- "Details on this package are located in <xref linkend=\"contents-glibc\" role="
- "\".\"/>"
- msgstr "该软件包的详细信息可以在<xref linkend=\"contents-glibc\"/>中找到。"
|