Jer*_*via 5 make software-installation configure
我花了一些时间在我的 Mac Os X 10.6.8 上安装更新版本的 Apache2.x。
通过 ./configure 配置 apache 时,我指定了 Darwin 布局。此布局假定现有 apache 安装的路径设置,这是我想要的,因为我的目标是替换旧的。
我跑了make,然后当然是sudo make install。
我通过做检查了apache版本
apachetcl -v
Run Code Online (Sandbox Code Playgroud)
我得到了
Server version: Apache/2.4.1 (Unix)
Server built: Mar 31 2012 01:52:54
Run Code Online (Sandbox Code Playgroud)
哪个好。但这里是奇怪的部分。我检查了 /etc/apache2 中的“旧”httpd.conf 文件,它有一个旧的修改日期。
直到我尝试运行 apache 之后,我才真正弄清楚这一点。Apache 尝试加载一些与新版本不兼容的扩展。
这让我检查了 /usr/libexec/apache2 目录,我看到除了两三个模块外,这些模块最近没有被修改。基本上 sudo make install 并没有覆盖所有可能的文件。
What is the convention here? Should make install overwrite everything or not?
Run Code Online (Sandbox Code Playgroud)
我假设这仅取决于开发人员如何编写配置脚本和 Makefile。
在再次运行 make install 之前,我最终在我知道的任何现有 apache 目录上执行了一些 rm -rf 。在那之后,一切都是新鲜的。
关于在Makefile
其中定义的唯一发生的事情或运行的伴随脚本,您是正确的。从源代码升级软件时的“最佳实践”通常是使用该uninstall
选项,如果您没有运行make clean
或删除原始源安装目录。
但是,您必须小心,如果程序在外部安装了文件,/usr/local
您可能会删除包管理器添加的文件。通常像 Apache 的主要配置文件不会被破坏,并且在安装过程中被简单地删除,它们可以或被保留。虽然情况并非总是如此。您可以使用-b
或--backup
选项备份每个目标以进行安装。
编辑:
查看它Makefile.in
的当前版本httpd
看起来像他们的几个cp
命令添加了-p
保留所有权和时间戳的开关。
归档时间: |
|
查看次数: |
14035 次 |
最近记录: |