跳转到内容

LPI Linux 认证/从源代码制作和安装程序

来自维基教科书,一个开放的世界开放的书籍

详细目标 (206.1)

[编辑 | 编辑源代码]

(LPIC-2 版本 4.5)


权重 2


描述: 候选人应该能够从源代码构建并安装可执行程序。此目标包括能够解压缩源代码文件。


关键知识领域

  • 使用常见的压缩和归档工具解压缩源代码。
  • 了解调用 make 编译程序的基本知识。
  • 将参数应用于配置脚本。
  • 了解源代码默认存储的位置。


术语和工具

  • /usr/src/
  • gunzip
  • gzip
  • bzip2
  • xz
  • tar
  • configure
  • make
  • uname
  • install
  • patch

源文件

[编辑 | 编辑源代码]

归档文件是一组相关文件,存储在一个文件中。允许您将文件和子目录存储在一个文件中的命令是 tar。

tar function & options files

常用功能:-c:创建一个新的 tar 文件。-t:显示 tar 文件的内容。-x:提取 tar 文件的内容。

常用选项:-f 文件:指定 tar 文件的名称。

示例

tar cvf mybackup.tar ~
tar cvf usr.tar /usr
tar tvf mybackup.tar
tar xvf mybackup.tar

建议使用 .tar 扩展名作为使用 tar 归档的所有文件的扩展名。

文件压缩

[编辑 | 编辑源代码]

压缩节省了存储和文件传输的空间。有多种工具可以进行压缩

  • compress, uncompress # 旧的 Unix 压缩算法
  • gzip, gunzip # 最常见的用法
  • bzip2, bunzip2 # 最佳压缩算法

创建归档文件后,可以对其进行压缩。示例

$ ls -l backup.tar
-rw-r--r-- 1 rarrigon users 22773760 nov 10 11:07 backup.tar
$ gzip -v backup.tar
backup.tar:  53.8% -- replaced with backup.tar.gz
$ ls -l backup.tar.gz
-rw-r--r-- 1 rarrigon users 10507393 nov 10 11:07 backup.tar.gz
gunzip backup.tar.gz
$ bzip2 -v backup.tar
backup.tar:  2.260:1,  3.540 bits/byte, 55.75% saved, 22773760 in, 10077846 out.

文件归档和压缩

[编辑 | 编辑源代码]

在归档文件和子目录时,可以将它们打包并压缩在一个命令中。示例

tar cvzf backup.tgz ~ # Backup of home with gzip
tar cvjf backup.tbz ~ # Backup of home with bzip2
tar xvzf backup.tgz # Extract and gunzip backup.tgz
tar xvjf backup.tbz # Extract and bunzip2 backup.tbz

默认情况下,tar 使用相对路径,但使用 -P 选项可以保存具有绝对路径的文件。以这种模式保存的文件将始终在相同的位置解压缩。
在一条命令行中压缩和归档

$ tar cvf - . | gzip > target.tar.gz

解压缩压缩的归档文件

$ gunzip -c file_name.tar.gz |tar xvf -

GNU 工具链

[编辑 | 编辑源代码]

在 Linux 下,可以使用标准 GNU 工具链构建所有源代码。make 工具用于维护一组程序。使用 Makefile 中定义的规则。

  • gcc ANSI C 编译器
  • g++ C++ 编译器

许多压缩或归档的软件包安装后将包含信息文件(README、INSTALL),这些文件应解释如何构建和安装软件包。Makefile.in 和 configure.in 文件是用于生成最终 Makefile 的基本文件。配置后的文件通常会扫描系统并构建最终的 Makefile。

  1. 对 /bin 和 /sbin 目录进行归档。使用哪种压缩工具可以获得最小的文件大小?使用 -v 获取文件大小缩减的百分比。
  2. 将文件 /usr/src/packages/SOURCES/grub-09.tar.bz2 安装到 /tmp 中,并通过阅读 INSTALL 和 README 构建源代码。
  3. 找到解压缩 .deb 和 .rpm 归档文件的方法,其中包含什么?
  4. 在一行命令中,压缩一个新文件,并在其他地方解压缩这个新文件。


华夏公益教科书