msgid "" msgstr "" "X-Pootle-Revision: 9999999\n" "X-Pootle-Path: /zh_CN/lfs/chapter07/stripping.po\n" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2020-09-02 17:31+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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: msgid "Cleaning up and Saving the Temporary System" msgstr "清理和备份临时系统" #. type: Content of: <sect1><para> msgid "" "The libtool .la files are only useful when linking with static libraries. " "They are unneeded, and potentially harmful, when using dynamic shared " "libraries, specially when using non-autotools build systems. While still in " "chroot, remove those files now:" msgstr "" "libtool .la 文件仅在链接到静态库时有用。在使用动态共享库时它们没有意义,甚至" "有害,特别是对于非 autotools 构建系统。仍然在 chroot 环境中,运行命令删除它" "们:" #. type: Content of: <sect1><screen> #, no-wrap msgid "<userinput>find /usr/{lib,libexec} -name \\*.la -delete</userinput>" msgstr "<userinput>find /usr/{lib,libexec} -name \\*.la -delete</userinput>" #. type: Content of: <sect1><para> msgid "" "Remove the documentation of the temporary tools, to prevent them from ending " "up in the final system, and save about 35 MB:" msgstr "删除临时工具的文档,以防止它们进入最终构建的系统,并节省大约 35 MB:" #. type: Content of: <sect1><screen> #, no-wrap msgid "<userinput>rm -rf /usr/share/{info,man,doc}/*</userinput>" msgstr "<userinput>rm -rf /usr/share/{info,man,doc}/*</userinput>" #. type: Content of: <sect1><note><para> msgid "" "All the remaining steps in this section are optional. Nevertheless, as soon " "as you begin installing packages in <xref linkend=\"chapter-building-system" "\"/>, the temporary tools will be overwritten. So it may be a good idea to " "do a backup of the temporary tools as described below. The other steps are " "only needed if you are really short on disk space." msgstr "" "本节中的其余步骤都是可选的。不过,一旦您开始在<xref linkend=\"chapter-" "building-system\"/>中安装软件包,临时工具就会被覆盖。因此,按照下面描述的步骤" "备份临时工具可能是个好主意。其余步骤只有在您的磁盘空间非常紧张时才需要执行。" #. type: Content of: <sect1><para> msgid "" "The following steps are performed from outside the chroot environment. That " "means, you have to leave the chroot environment first before continuing. The " "reason for that is to:" msgstr "" "以下步骤在 chroot 环境之外进行。换句话说,您需要在继续操作之前退出 chroot 环" "境。这样做的主要原因是:" #. type: Content of: <sect1><para><itemizedlist><listitem><para> msgid "make sure that objects are not in use while they are manipulated." msgstr "保证在操作时,目标文件不会被使用。" #. type: Content of: <sect1><para><itemizedlist><listitem><para> msgid "" "get access to file system locations outside of the chroot environment to " "store/read the backup archive which should not be placed within the " "<filename class=\"directory\">$LFS</filename> hierarchy for safety reasons." msgstr "" "访问 chroot 环境之外的文件系统位置,以写入或读取备份档案,备份档案不应存放在 " "<filename class=\"directory\">$LFS</filename> 目录树中,以保证安全。" #. type: Content of: <sect1><para> msgid "" "Leave the chroot environment and unmount the kernel virtual file systems:" msgstr "退出 chroot 环境,并解除挂载内核虚拟文件系统:" #. type: Content of: <sect1><note><para> msgid "" "All of the following instructions are executed by <systemitem class=" "\"username\">root</systemitem>. Take extra care about the commands you're " "going to run as mistakes here can modify your host system. Be aware that the " "environment variable <envar>LFS</envar> is set for user <systemitem class=" "\"username\">lfs</systemitem> by default but it might <emphasis>not</" "emphasis> be set for <systemitem class=\"username\">root</systemitem>. " "Whenever commands are to be executed by <systemitem class=\"username\">root</" "systemitem>, make sure you have set <envar>LFS</envar> accordingly. This " "has been discussed in <xref linkend='ch-partitioning-aboutlfs'/>." msgstr "" "以下给出的所有步骤都以 <systemitem class=\"username\">root</systemitem> 身份" "执行。请非常小心地执行命令,错误的命令可能修改您的宿主系统。特别注意环境变量 " "<envar>LFS</envar> 会自动为用户 <systemitem class=\"username\">lfs</" "systemitem> 设定,但可能<emphasis>没有</emphasis>为 <systemitem class=" "\"username\">root</systemitem> 设定。无论何时,只要准备以 <systemitem class=" "\"username\">root</systemitem> 身份执行命令,一定要确认 <envar>LFS</envar> 变" "量正确设定。<xref linkend='ch-partitioning-aboutlfs'/>已经讨论了这个问题。" #. type: Content of: <sect1><screen> #, no-wrap msgid "" "<userinput>exit\n" "umount $LFS/dev{/pts,}\n" "umount $LFS/{sys,proc,run}</userinput>" msgstr "" "<userinput>exit\n" "umount $LFS/dev{/pts,}\n" "umount $LFS/{sys,proc,run}</userinput>" #. type: Content of: <sect1><sect2><title> msgid "Stripping" msgstr "移除无用内容" #. type: Content of: <sect1><sect2><para> msgid "" "If the LFS partition is rather small, it is good to know that unnecessary " "items can be removed. The executables and libraries built so far contain a " "little over 90 MB of unneeded debugging symbols." msgstr "" "如果 LFS 分区比较小,好消息是,有些无用的内容可以删除。到现在为止,已经构建的" "可执行文件和库包含大约 90MB 的无用调试符号。" #. type: Content of: <sect1><sect2><para> msgid "Strip off debugging symbols from binaries:" msgstr "从二进制文件移除调试符号:" #. type: Content of: <sect1><sect2><screen> #, no-wrap msgid "" "<userinput>strip --strip-debug $LFS/usr/lib/*\n" "strip --strip-unneeded $LFS/usr/{,s}bin/*\n" "strip --strip-unneeded $LFS/tools/bin/*</userinput>" msgstr "" "<userinput>strip --strip-debug $LFS/usr/lib/*\n" "strip --strip-unneeded $LFS/usr/{,s}bin/*\n" "strip --strip-unneeded $LFS/tools/bin/*</userinput>" #. Note that we use the <command> #. strip</command> program built in #. <quote>Binutils pass 2</quote>, since it is the one that knows how to strip #. our cross-compiled programs. #. type: Content of: <sect1><sect2><para> msgid "" "These commands will skip a number of files reporting that it does not " "recognize their file format. Most of these are scripts instead of binaries." msgstr "" "以上命令会跳过一些文件,并报告说无法识别它们的格式。这些文件大多数都是脚本文" "件,而不是二进制文件。" #. type: Content of: <sect1><sect2><para> msgid "" "Take care <emphasis>NOT</emphasis> to use <parameter>--strip-unneeded</" "parameter> on the libraries. The static ones would be destroyed and the " "toolchain packages would need to be built all over again." msgstr "" "注意<emphasis>不要</emphasis>对库文件使用 <parameter>--strip-unneeded</" "parameter> 选项。这会损坏静态库,结果工具链软件包都要重新构建。" #. type: Content of: <sect1><sect2><para> msgid "" "At this point, you should have at least 5 GB of free space on the chroot " "partition that can be used to build and install Glibc and GCC in the next " "phase. If you can build and install Glibc, you can build and install the " "rest too. You can check the free disk space with the command <command>df -h " "$LFS</command>." msgstr "" "现在,您应该保证 chroot 分区有至少 5 GB 的可用空间,以在下一阶段构建和安装 " "Glibc 和 GCC。如果空间足够构建和安装 Glibc,那么构建和安装剩余的软件包就不成" "问题。您可以使用命令 <command>df -h $LFS</command> 查询磁盘可用空间。" #. type: Content of: <sect1><sect2><title> msgid "Backup" msgstr "备份" #. type: Content of: <sect1><sect2><para> msgid "" "Now that the essential tools have been created, its time to think about a " "backup. When every check has passed successfully in the previously built " "packages, your temporary tools are in a good state and might be backed up " "for later reuse. In case of fatal failures in the subsequent chapters, it " "often turns out that removing everything and starting over (more carefully) " "is the best option to recover. Unfortunately, all the temporary tools will " "be removed, too. To avoid spending extra time to redo something which has " "been built successfully, prepare a backup." msgstr "" "现在已经建立了必要的工具,可以考虑备份它们。如果对之前构建的软件包进行的各项" "检查都没有发现问题,即可判定您的临时工具状态良好,可以将它们备份起来供以后重" "新使用。如果在后续章节发生了无法挽回的错误,通常来说,最好的办法是删除所有东" "西,然后 (更小心地) 从头开始。不幸的是,这也会删除所有临时工具。为了避免浪费" "时间对已经构建成功的部分进行返工,可以准备一个备份。" #. type: Content of: <sect1><sect2><para> msgid "" "Make sure you have at least 600 MB free disk space (the source tarballs will " "be included in the backup archive) in the home directory of user <systemitem " "class=\"username\">root</systemitem>." msgstr "" "确认在 <systemitem class=\"username\">root</systemitem> 的主目录中,有至少 " "600 MB 的可用存储空间 (源代码压缩包也会被包含在备份档案中)。" #. type: Content of: <sect1><sect2><para> msgid "Create the backup archive by running the following command:" msgstr "运行以下命令,创建备份档案:" #. type: Content of: <sect1><sect2><screen> #, no-wrap msgid "" "<userinput>cd $LFS &&\n" "tar -cJpf $HOME/lfs-temp-tools-&version;.tar.xz .</userinput>" msgstr "" "<userinput>cd $LFS &&\n" "tar -cJpf $HOME/lfs-temp-tools-&version;.tar.xz .</userinput>" #. type: Content of: <sect1><sect2><screen> #, no-wrap msgid "" "<userinput>cd $LFS &&\n" "tar -cJpf $HOME/lfs-temp-tools-&versiond;.tar.xz .</userinput>" msgstr "" "<userinput>cd $LFS &&\n" "tar -cJpf $HOME/lfs-temp-tools-&versiond;.tar.xz .</userinput>" #. type: Content of: <sect1><sect2><para> msgid "" "Replace <envar>$HOME</envar> by a directory of your choice if you do not " "want to have the backup stored in <systemitem class=\"username\">root</" "systemitem>'s home directory." msgstr "" "可以将 <envar>$HOME</envar> 替换成您选择的其他目录,如果您不想将备份存储在 " "<systemitem class=\"username\">root</systemitem> 的主目录中:" #. type: Content of: <sect1><sect2><title> msgid "Restore" msgstr "还原" #. type: Content of: <sect1><sect2><para> msgid "" "In case some mistakes have been made and you need to start over, you can use " "this backup to restore the temporary tools and save some recovery time. " "Since the sources are located under <filename class=\"directory\">$LFS</" "filename>, they are included in the backup archive as well, so they do not " "need to be downloaded again. After checking that <envar>$LFS</envar> is set " "properly, restore the backup by executing the following commands:" msgstr "" "如果您犯下了一些错误,并不得不重新开始构建,您可以使用备份档案还原临时工具," "节约一些工作时间。由于源代码在 <filename class=\"directory\">$LFS</filename> " "中,它们也包含在备份档案内,因此不需要重新下载它们。在确认 <envar>$LFS</" "envar>设定正确后,运行以下命令从备份档案进行还原:" #. Make the following look different so users don't blindly run the #. restore when they don't need to. #. type: Content of: <sect1><sect2><screen> #, no-wrap msgid "" "<computeroutput>cd $LFS &&\n" "rm -rf ./* &&\n" "tar -xpf $HOME/lfs-temp-tools-&version;.tar.xz</computeroutput>" msgstr "" "<computeroutput>cd $LFS &&\n" "rm -rf ./* &&\n" "tar -xpf $HOME/lfs-temp-tools-&version;.tar.xz</computeroutput>" #. type: Content of: <sect1><sect2><screen> #, no-wrap msgid "" "<computeroutput>cd $LFS &&\n" "rm -rf ./* &&\n" "tar -xpf $HOME/lfs-temp-tools-&versiond;.tar.xz</computeroutput>" msgstr "" "<computeroutput>cd $LFS &&\n" "rm -rf ./* &&\n" "tar -xpf $HOME/lfs-temp-tools-&versiond;.tar.xz</computeroutput>" #. type: Content of: <sect1><sect2><para> msgid "" "Again, double check that the environment has been setup properly and " "continue building the rest of the system." msgstr "再一次复查环境是否配置正确,即可继续构建系统。" #. type: Content of: <sect1><sect2><important><para> msgid "" "If you left the chroot environment either to strip off debug symbols, create " "a backup, or restart building using a restore, remember to mount the kernel " "virtual filesystems now again as described in <xref linkend='ch-tools-" "kernfs'/> and re-enter the chroot environment (see <xref linkend='ch-tools-" "chroot'/>) again before continuing." msgstr "" "如果您在移除调试符号,进行备份,或从备份进行恢复时退出了 chroot 环境,记得按" "照<xref linkend='ch-tools-kernfs'/>的描述重新挂载内核虚拟文件系统,并重新进" "入 chroot 环境 (参阅<xref linkend='ch-tools-chroot'/>),再继续进行构建。"