16.4. 安装步骤

  • Configuration

安装过程的第一步是为系统配置源代码树,然后选择所需的选项。这是通过运行configure脚本完成的。对于默认安装,只需 Importing:

./configure

该脚本将运行许多测试,以确定各种系统相关变量的值并检测 os 的任何怪癖,最后将在构建树中创建几个文件来记录发现的内容。如果要将构建目录分开,也可以在源树之外的目录中运行configure。此过程也称为 * VPATH *构建。这是如何做:

mkdir build_dir
cd build_dir
/path/to/source/tree/configure [options go here]
make

默认配置将构建服务器和 Util,以及仅需要 C 编译器的所有 Client 端应用程序和接口。默认情况下,所有文件都将安装在/usr/local/pgsql下。

您可以通过向configure提供以下一个或多个命令行选项来自定义构建和安装过程:

  • --prefix=PREFIX

    • 将所有文件安装在目录PREFIX 而不是/usr/local/pgsql下。实际文件将被安装到各个子目录中。没有文件将直接安装到 PREFIX *目录中。

如果您有特殊需要,还可以使用以下选项来自定义各个子目录。但是,如果将它们保留为默认值,则安装将可重定位,这意味着您可以在安装后移动目录。 (mandoc位置不受此影响.)

对于可重定位的安装,您可能需要使用configure--disable-rpath选项。另外,您将需要告诉 os 如何找到共享库。

  • --exec-prefix=EXEC-PREFIX

    • 可以将与体系结构相关的文件安装在与PREFIX 设置为不同的前缀 EXEC-PREFIX 下。这对于在主机之间共享与体系结构无关的文件很有用。如果您省略此设置,则 EXEC-PREFIX 等于 PREFIX *,并且与体系结构相关的文件和与文件无关的文件都将安装在同一棵树下,这可能就是您想要的。
  • --bindir=DIRECTORY

    • 指定可执行程序的目录。默认值为EXEC-PREFIX/bin,通常表示/usr/local/pgsql/bin
  • --sysconfdir=DIRECTORY

    • 设置各种配置文件的目录,默认情况下为PREFIX/etc
  • --libdir=DIRECTORY

    • 设置安装库和可动态加载模块的位置。默认值为EXEC-PREFIX/lib
  • --includedir=DIRECTORY

    • 设置用于安装 C 和 C 头文件的目录。默认值为PREFIX/include
  • --datarootdir=DIRECTORY

    • 为各种类型的只读数据文件设置根目录。这仅为以下某些选项设置默认值。默认值为PREFIX/share
  • --datadir=DIRECTORY

    • 设置已安装程序使用的只读数据文件的目录。默认值为DATAROOTDIR。请注意,这与数据库文件的放置位置无关。
  • --localedir=DIRECTORY

    • 设置用于安装区域设置数据的目录,尤其是消息翻译目录文件。默认值为DATAROOTDIR/locale
  • --mandir=DIRECTORY

    • PostgreSQL 随附的手册页将安装在该目录下的各自的manx子目录下。默认值为DATAROOTDIR/man
  • --docdir=DIRECTORY

    • 设置用于安装文档文件的根目录,“ man”页面除外。这仅为以下选项设置默认值。此选项的默认值为DATAROOTDIR/doc/postgresql
  • --htmldir=DIRECTORY

    • PostgreSQL 的 HTML 格式文档将安装在此目录下。默认值为DATAROOTDIR

Note

采取了谨慎措施,使得可以将 PostgreSQL 安装到共享安装位置(例如/usr/local/include)而不会干扰系统其余部分的名称空间。首先,除非完全扩展的目录名称已经包含字符串“ postgres”或“ pgsql”,否则字符串“ /postgresql”会自动附加到datadirsysconfdirdocdir。例如,如果选择/usr/local作为前缀,则文档将安装在/usr/local/doc/postgresql中,但是如果前缀是/opt/postgres,则它将位于/opt/postgres/doc中。Client 端接口的公共 C 头文件安装在includedir中,并且名称空间干净。内部头文件和服务器头文件安装在includedir下的专用目录中。有关如何访问其头文件的信息,请参见每个接口的文档。最后,如果合适,还将在libdir下为可动态加载的模块创建一个私有子目录。

  • --with-extra-version=STRING

    • 在 PostgreSQL 版本号后附加* STRING *。例如,您可以使用它来标记由未发布的 Git 快照构建的二进制文件,或包含带有额外版本字符串(例如git describe标识符或分发软件包发行版号)的自定义补丁程序的二进制文件。
  • --with-includes=DIRECTORIES

      • DIRECTORIES *是用冒号分隔的目录列表,它将添加到编译器搜索头文件的列表中。如果在非标准位置安装了可选软件包(例如 GNU Readline),则必须使用此选项,并且可能还要使用相应的--with-libraries选项。

例如:--with-includes=/opt/gnu/include:/usr/sup/include

  • --with-libraries=DIRECTORIES

      • DIRECTORIES *是用冒号分隔的目录列表,用于搜索库。如果您将软件包安装在非标准位置,则可能必须使用此选项(以及相应的--with-includes选项)。

例如:--with-libraries=/opt/gnu/lib:/usr/sup/lib

  • --enable-nls[=LANGUAGES]

    • 启用本机语言支持(NLS),即以英语以外的其他语言显示程序消息的功能。 * LANGUAGES *是一个可选的用空格分隔的列表,列出要支持的语言代码,例如--enable-nls='de fr'。 (将自动计算列表与实际提供的翻译集之间的交集.)如果不指定列表,则将安装所有可用的翻译。

要使用此选项,您将需要实现 Gettext API。往上看。

  • --with-pgport=NUMBER

    • 将* NUMBER *设置为服务器和 Client 端的默认端口号。默认值为 5432.此后始终可以更改端口,但是如果在此处指定端口,则服务器和 Client 端都将具有相同的默认编译值,这非常方便。通常,选择非默认值的唯一很好的理由是,如果您打算在同一台计算机上运行多个 PostgreSQL 服务器。
  • --with-perl

    • 构建 PL/Perl 服务器端语言。
  • --with-python

    • 构建 PL/Python 服务器端语言。
  • --with-tcl

    • 构建 PL/Tcl 服务器端语言。
  • --with-tclconfig=DIRECTORY

    • Tcl 安装文件tclConfig.sh,其中包含构建与 Tcl 接口的模块所需的配置信息。通常会在一个众所周知的位置自动找到此文件,但是如果您想使用其他版本的 Tcl,则可以指定在其中查找文件的目录。
  • --with-gssapi

    • 构建对 GSSAPI 身份验证的支持。在许多系统上,GSSAPI(通常是 Kerberos 安装的一部分)系统未安装在默认搜索的位置(例如/usr/include/usr/lib),因此除此选项外,还必须使用选项--with-includes--with-librariesconfigure将 continue 检查所需的头文件和库,以确保您的 GSSAPI 安装足够。
  • --with-krb-srvnam=NAME

    • GSSAPI 使用的 Kerberos 服务主体的默认名称。 postgres是默认值。除非您具有 Windows 环境,否则通常没有理由更改此设置,在这种情况下,必须将其设置为大写POSTGRES
  • --with-llvm

    • 支持基于 LLVM 的 JIT 编译(请参见Chapter 32)。这需要安装 LLVM 库。当前最低要求的 LLVM 版本是 3.9.

llvm-config 将用于查找所需的编译选项。将在PATH上搜索llvm-config,然后搜索llvm-config-$major-$minor以获取所有受支持的版本。如果那不能产生正确的二进制文件,请使用LLVM_CONFIG指定到正确的llvm-config的路径。例如

./configure ... --with-llvm LLVM_CONFIG='/path/to/llvm/bin/llvm-config'

LLVM 支持需要兼容的clang编译器(必要时使用CLANG环境变量指定)和工作的 C 编译器(必要时使用CXX环境变量指定)。

  • --with-icu

    • 构建对 ICU 库的支持。这需要安装 ICU4C 软件包。当前,ICU4C 的最低要求版本为 4.2.

默认情况下,将使用 pkg-config 查找所需的编译选项。 ICU4C 4.6 版和更高版本支持此功能。对于较旧的版本,或者如果 pkg-config 不可用,则可以将变量ICU_CFLAGSICU_LIBS指定为configure,例如以下示例:

./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'

(如果 ICU4C 在编译器的默认搜索路径中,则仍需要指定一个非空字符串,以避免使用 pkg-config,例如ICU_CFLAGS=' '.)

  • --with-openssl

    • 构建对 SSL(加密)连接的支持。这需要安装 OpenSSL 软件包。 configure将 continue 检查所需的头文件和库,以确保您的 OpenSSL 安装足够。
  • --with-pam

    • 使用 PAM (可插入身份验证模块)支持进行构建。
  • --with-bsd-auth

    • 带有 BSD 身份验证支持。 (BSD 身份验证框架当前仅在 OpenBSD 上可用.)
  • --with-ldap

    • 使用 LDAP 构建以支持身份验证和连接参数查找(有关更多信息,请参见Section 34.17Section 20.10 )。在 Unix 上,这需要安装 OpenLDAP 软件包。在 Windows 上,使用默认的 WinLDAP 库。 configure将在 continue 之前检查所需的头文件和库,以确保您的 OpenLDAP 安装足够。
  • --with-systemd

    • 支持 systemd 服务通知。如果服务器二进制文件是在 systemd 下启动的,则可以提高集成度,否则不会产生任何影响。有关更多信息,请参见Section 18.3。需要安装 libsystemd 及其关联的头文件,才能使用此选项。
  • --without-readline

    • 禁止使用 Readline 库(以及 libedit)。此选项禁用 psql 中的命令行编辑和历史记录,因此不建议使用。
  • --with-libedit-preferred

    • 赞成使用 BSD 许可的 libedit 库,而不是 GPL 许可的 Readline。仅当您同时安装了两个库时,此选项才有意义。在这种情况下,默认设置是使用 Readline。
  • --with-bonjour

    • 在 Bonjour 支持下进行构建。这需要您的 os 中的 Bonjour 支持。在 macOS 上推荐。
  • --with-uuid=LIBRARY

    • 使用指定的 UUID 库构建uuid-ossp模块(该模块提供生成 UUID 的功能)。 * LIBRARY *必须是以下之一:
  • bsd使用在 FreeBSD,NetBSD 和某些其他 BSD 派生的系统中找到的 UUID 函数

  • e2fs使用e2fsprogs项目创建的 UUID 库;该库存在于大多数 Linux 系统和 macOS 中,并且也可以在其他平台上获得

  • ossp使用OSSP UUID 库

  • --with-ossp-uuid

    • 已过时的等效--with-uuid=ossp
  • --with-libxml

    • 使用 libxml2 构建,从而启用 SQL/XML 支持。此功能需要 Libxml2 版本 2.6.23 或更高版本。

为了检测所需的编译器和链接器选项,PostgreSQL 将查询pkg-config(如果已安装并且知道 libxml2)。否则,将找到 libxml2 安装的程序xml2-config。最好使用pkg-config,因为它可以更好地处理多体系结构安装。

要使用位于异常位置的 libxml2 安装,可以设置pkg-config相关的环境变量(请参见其文档),或者将环境变量XML2_CONFIG设置为指向属于 libxml2 安装的xml2-config程序,或者设置变量XML2_CFLAGSXML2_LIBS。 (如果安装了pkg-config,则必须设置XML2_CONFIG或将XML2_CFLAGSXML2_LIBS都设置为非空字符串,以覆盖其关于 libxml2 所在位置的想法.)

  • --with-libxslt

    • 构建xml2模块时,请使用 libxslt。 xml2 依靠此库执行 XML 的 XSL 转换。
  • --disable-float4-byval

    • 禁用“按值”传递 float4 值,从而使它们“按引用”传递。此选项会降低性能,但可能需要与使用 C 编写并使用“版本 0”调用约定的旧用户定义函数兼容。更好的长期解决方案是更新所有此类功能,以使用“版本 1”调用约定。
  • --disable-float8-byval

    • 禁用“按值”传递 float8 值,从而使它们“按引用”传递。此选项会降低性能,但可能需要与使用 C 编写并使用“版本 0”调用约定的旧用户定义函数兼容。更好的长期解决方案是更新所有此类功能,以使用“版本 1”调用约定。请注意,此选项不仅影响 float8,还影响 int8 和一些相关类型,例如时间戳。在 32 位平台上,默认值为--disable-float8-byval,不允许选择--enable-float8-byval
  • --with-segsize=SEGSIZE

    • 设置* segment size *(以 GB 为单位)。大表分为多个 os 文件,每个文件的大小等于段的大小。这避免了许多平台上存在的文件大小限制问题。默认段大小为 1 GB,在所有受支持的平台上都是安全的。如果您的 os 支持“大文件”(如今大多数情况下),则可以使用更大的段大小。这对于减少使用非常大的表时所消耗的文件 Descriptors 的数量可能会有所帮助。但是请注意不要选择大于平台和打算使用的文件系统支持的值。您可能希望使用的其他工具(例如 tar)也可以设置可用文件大小的限制。建议(尽管不是绝对必需的)此值应为 2 的幂。请注意,更改此值需要 initdb。
  • --with-blocksize=BLOCKSIZE

    • 设置块大小,以千字节为单位。这是表中存储和 I/O 的单位。默认值 8 KB 适用于大多数情况。但是其他值在特殊情况下可能会有用。该值必须是 1 到 32(千字节)之间的 2 的幂。请注意,更改此值需要一个 initdb。
  • --with-wal-blocksize=BLOCKSIZE

    • 设置* WAL 块大小*,以千字节为单位。这是 WAL 日志中存储和 I/O 的单位。默认值 8 KB 适用于大多数情况。但是其他值在特殊情况下可能会有用。该值必须是 1 到 64(千字节)之间的 2 的幂。请注意,更改此值需要一个 initdb。
  • --disable-spinlocks

    • 即使 PostgreSQL 不支持平台的 CPU 自旋锁,也要允许构建成功。缺少自旋锁支持将导致性能不佳;因此,仅当构建中止并通知您平台缺乏自旋锁支持时,才应使用此选项。如果在您的平台上构建 PostgreSQL 需要此选项,请将该问题报告给 PostgreSQL 开发人员。
  • --disable-strong-random

    • 即使 PostgreSQL 在平台上不支持强随机数,也要允许构建成功。对于某些身份验证协议以及pgcrypto模块中的某些例程,需要一个随机数源。 --disable-strong-random禁用需要密码上强的随机数的功能,并用弱的伪随机数生成器代替认证盐值和查询取消键的生成。这可能会使身份验证的安全性降低。
  • --disable-thread-safety

    • 禁用 Client 端库的线程安全。这样可以防止 libpq 和 ECPG 程序中的并发线程安全地控制其专用连接句柄。
  • --with-system-tzdata=DIRECTORY

    • PostgreSQL 包括自己的时区数据库,它需要日期和时间操作。实际上,该时区数据库与许多 os(如 FreeBSD,Linux 和 Solaris)提供的 IANA 时区数据库兼容,因此再次安装将是多余的。使用此选项时,将使用* DIRECTORY *中系统提供的时区数据库,而不是 PostgreSQL 源代码分发中包含的数据库。 * DIRECTORY *必须指定为绝对路径。 /usr/share/zoneinfo在某些 os 上可能是目录。请注意,安装例程将不会检测到不匹配或错误的时区数据。如果使用此选项,建议您运行回归测试以验证您所指向的时区数据可在 PostgreSQL 上正常使用。

此选项主要针对非常了解其目标 os 的二进制软件包发行商。使用此选项的主要优点是,只要更改许多本地夏时制规则中的任何规则,就无需升级 PostgreSQL 软件包。另一个优点是,如果在安装过程中不需要构建时区数据库文件,则可以更直接地交叉编译 PostgreSQL。

  • --without-zlib

    • 禁止使用 Zlib 库。这将禁用对 pg_dump 和 pg_restore 中压缩 Files 的支持。此选项仅适用于无法使用此库的罕见系统。
  • --enable-debug

    • 用调试符号编译所有程序和库。这意味着您可以在调试器中运行程序以分析问题。这会大大增加已安装的可执行文件的大小,并且在非 GCC 编译器上,它通常还会禁用编译器优化,从而导致速度降低。但是,提供可用的符号对于解决可能出现的任何问题非常有帮助。当前,仅当您使用 GCC 时,才建议将此选项用于生产安装。但是,如果您正在从事开发工作或正在运行 Beta 版本,则应始终启用它。
  • --enable-coverage

    • 如果使用 GCC,则所有程序和库都将使用代码覆盖率测试工具进行编译。运行时,它们在构建目录中生成带有代码覆盖率 Metrics 的文件。有关更多信息,请参见Section 33.5。此选项仅适用于 GCC 以及进行开发工作时。
  • --enable-profiling

    • 如果使用 GCC,则将编译所有程序和库,以便对其进行概要分析。在后端 Export,将创建一个子目录,其中包含用于分析的gmon.out文件。此选项仅适用于 GCC 以及进行开发工作时。
  • --enable-cassert

    • 在服务器中启用* asserttion *assert 检查,该检查将测试许多“不可能发生”的情况。对于代码开发而言,这是非常宝贵的,但是测试会大大降低服务器的速度。另外,打开测试并不一定会增强服务器的稳定性!assert 检查未按严重性分类,因此,如果触发 assert 失败,则可能是相对无害的错误仍将导致服务器重新启动。不建议将此选项用于生产环境,但在进行开发工作或运行 Beta 版本时,应启用此选项。
  • --enable-depend

    • 启用自动依赖项跟踪。使用此选项,将设置 makefile,以便在更改任何头文件时将重建所有受影响的目标文件。如果您要进行开发工作,这将很有用,但是如果您只打算编译一次并安装,那么这只会浪费您的开销。目前,此选项仅适用于 GCC。
  • --enable-dtrace

    • 编译支持动态跟踪工具 DTrace 的 PostgreSQL。有关更多信息,请参见Section 28.5

要指向dtrace程序,可以设置环境变量DTRACE。这通常是必要的,因为dtrace通常安装在/usr/sbin下,而该路径可能不在路径中。

可以在环境变量DTRACEFLAGS中指定dtrace程序的其他命令行选项。在 Solaris 上,要在 64 位二进制文件中包含 DTrace 支持,必须指定DTRACEFLAGS="-64"进行配置。例如,使用 GCC 编译器:

./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...

使用 Sun 的编译器:

./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' ...
  • --enable-tap-tests

    • 使用 Perl TAP 工具启用测试。这需要安装 Perl 和 Perl 模块IPC::Run。有关更多信息,请参见Section 33.4

如果您喜欢的 C 编译器不同于configure选择的 C 编译器,则可以将环境变量CC设置为您选择的程序。默认情况下,configure将选择gcc(如果有),否则选择平台的默认值(通常是cc)。同样,如果需要,可以使用CFLAGS变量覆盖默认的编译器标志。

您可以在configure命令行上指定环境变量,例如:

./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'

这是可以以这种方式设置的重要变量的列表:

  • BISON

    • Bison program
  • CC

    • C compiler
  • CFLAGS

    • 传递给 C 编译器的选项
  • CLANG

    • clang程序的路径,该程序用于处理使用--with-llvm进行编译时内联的源代码
  • CPP

    • C preprocessor
  • CPPFLAGS

    • 传递给 C 预处理器的选项
  • CXX

    • C++ compiler
  • CXXFLAGS

    • 传递给 C 编译器的选项
  • DTRACE

    • dtrace程序的位置
  • DTRACEFLAGS

    • 传递给dtrace程序的选项
  • FLEX

    • Flex program
  • LDFLAGS

    • 链接可执行文件或共享库时使用的选项
  • LDFLAGS_EX

    • 仅用于链接可执行文件的其他选项
  • LDFLAGS_SL

    • 仅用于链接共享库的其他选项
  • LLVM_CONFIG

    • llvm-config用于查找 LLVM 安装的程序。
  • MSGFMT

    • msgfmt本地语言支持程序
  • PERL

    • Perl 解释程序。这将用于确定构建 PL/Perl 的依赖性。默认值为perl
  • PYTHON

    • Python 解释器程序。这将用于确定构建 PL/Python 的依赖关系。同样,是否在此处指定了 Python 2 或 3(或以其他方式隐式选择)确定了 PL/Python 语言的哪个变体可用。有关更多信息,请参见Section 46.1。如果未设置,则按以下 Sequences 探查以下内容:python python3 python2
  • TCLSH

    • Tcl 解释器程序。这将用于确定构建 PL/Tcl 的依赖关系,并将其替换为 Tcl 脚本。
  • XML2_CONFIG

    • xml2-config用于查找 libxml2 安装的程序

有时,事后将编译器标志添加到configure选择的集合会很有用。一个重要的示例是 gcc 的-Werror选项不能包含在传递给configureCFLAGS中,因为它会破坏configure的许多内置测试。要添加此类标志,请在运行make时将其包括在COPT环境变量中。 COPT的内容同时添加到configure设置的CFLAGSLDFLAGS选项中。例如,您可以

make COPT='-Werror'

or

export COPT='-Werror'
make

Note

在服务器内部开发代码时,建议使用配置选项--enable-cassert(这会打开许多运行时错误检查)和--enable-debug(这会提高调试工具的实用性)。

如果使用 GCC,则最好以至少-O1的优化级别进行构建,因为不使用优化(-O0)会禁用一些重要的编译器警告(例如,使用未初始化的变量)。但是,非零优化级别会使调试复杂化,因为单步执行已编译的代码通常不会与源代码行一一对应。如果您在尝试调试优化的代码时感到困惑,请使用-O0重新编译所需的特定文件。一种简单的方法是传递一个选项:make PROFILE=-O0 file.o

PostgreSQL 的 makefile 实际上对COPTPROFILE环境变量进行了相同的处理。使用哪个选项是一个优先选择的问题,但是开发人员之间的一个普遍习惯是使用PROFILE进行一次标志调整,而COPT可能一直保持设置状态。

  • Build

要开始构建,请键入以下任意一项:

make
make all

(记住要使用 GNU make.)根据您的硬件,构建过程将花费几分钟。显示的最后一行应为:

All of PostgreSQL successfully made. Ready to install.

如果要构建所有可以构建的内容,包括文档(HTML 和手册页)以及其他模块(contrib),请键入:

make world

显示的最后一行应为:

PostgreSQL, contrib, and documentation successfully made. Ready to install.

如果要从另一个生成文件而不是手动调用构建,则必须取消设置MAKELEVEL或将其设置为零,例如:

build-postgresql:
        $(MAKE) -C postgresql MAKELEVEL=0 all

否则可能会导致奇怪的错误消息,通常是有关缺少头文件的错误消息。

  • Regression Tests

如果要在安装新服务器之前对其进行测试,则可以在此时运行回归测试。回归测试是一个测试套件,用于验证 PostgreSQL 是否以开发人员期望的方式在您的计算机上运行。类型:

make check

(这不能以 root 用户的身份;以非特权用户的身份进行.)有关解释测试结果的详细信息,请参见Chapter 33。您可以在以后的任何时间通过发出相同的命令来重复此测试。

  • 安装文件

Note

如果要升级现有系统,请务必阅读Section 18.6,其中包含有关升级集群的说明。

要安装 PostgreSQL,请 Importing:

make install

这会将文件安装到Step 1中指定的目录中。确保您具有写入该区域的适当权限。通常,您需要以 root 用户身份执行此步骤。另外,您可以提前创建目标目录并安排要授予的适当权限。

要安装文档(HTML 和手册页),请 Importing:

make install-docs

如果您在上面构建了世界,请键入:

make install-world

这也将安装文档。

您可以使用make install-strip而不是make install来删除安装的可执行文件和库。这样可以节省一些空间。如果您是使用调试支持构建的,则剥离将有效地删除调试支持,因此仅在不再需要调试时才应这样做。 install-strip试图做一个合理的工作节省空间,但是它不具有如何从可执行文件中剥离每个不需要的字节的完整知识,因此,如果您想节省所有的磁盘空间,则必须进行手动工作。 。

标准安装提供了 Client 端应用程序开发以及服务器端程序开发所需的所有头文件,例如用 C 编写的自定义函数或数据类型。(在 PostgreSQL 8.0 之前,后者需要一个单独的make install-all-headers命令,但此步骤已折叠到标准安装中.)

仅 Client 端安装: 如果只想安装 Client 端应用程序和接口库,则可以使用以下命令:

make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install

src/bin有一些仅用于服务器的二进制文件,但是它们很小。

卸载: 要撤消安装,请使用命令make uninstall。但是,这不会删除任何创建的目录。

清洁: 安装后,您可以通过使用命令make clean从源树中删除已构建的文件来释放磁盘空间。这将保留configure程序创建的文件,以便以后可以使用make重建所有内容。要将源树重置为分发状态,请使用make distclean。如果要在同一源代码树中为多个平台进行构建,则必须执行此操作并为每个平台重新配置。 (或者,为每个平台使用单独的构建树,以使源树保持不变.)

如果执行构建后发现configure选项有误,或者您更改了configure调查的内容(例如,软件升级),那么在重新配置和重建之前最好先进行make distclean。否则,您对配置选择的更改可能不会传播到所需的任何地方。